summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2023-08-21 18:31:49 +0200
committerTyge Løvset <[email protected]>2023-08-21 18:31:49 +0200
commit2d33308d36063f3726f3652b0b0cbe3668b8bc68 (patch)
tree2f3750a00190e48682b9082a36a5085defa128e0 /docs
parent7b57eb4240ee886278b862ed8c90618376237afc (diff)
downloadSTC-modified-2d33308d36063f3726f3652b0b0cbe3668b8bc68.tar.gz
STC-modified-2d33308d36063f3726f3652b0b0cbe3668b8bc68.zip
Changed 'order' to 'layout' in cspan md.
Neigher the 'C' / 'F' convension from python, nor left / right from std::mdspan are great names => changed to c_ROWMAJOR / c_COLMAJOR like in matlab.
Diffstat (limited to 'docs')
-rw-r--r--docs/cspan_api.md18
1 files changed, 11 insertions, 7 deletions
diff --git a/docs/cspan_api.md b/docs/cspan_api.md
index 39b97473..c3556dc3 100644
--- a/docs/cspan_api.md
+++ b/docs/cspan_api.md
@@ -44,12 +44,15 @@ SpanTypeN_iter SpanType_begin(const SpanTypeN* self);
SpanTypeN_iter SpanType_end(const SpanTypeN* self);
void SpanType_next(SpanTypeN_iter* it);
-SpanTypeN cspan_md(ValueType* data, d1, d2, ...); // make a multi-dim cspan, row-major order.
-SpanTypeN cspan_md_order(char order, ValueType* data, d1, d2, ...); // order='C': row-major, 'F': column-major (FORTRAN).
+ // make a multi-dim cspan
+SpanTypeN cspan_md(ValueType* data, d1, d2, ...); // row-major
+SpanTypeN cspan_md_layout(cspan_layout layout, ValueType* data, d1, d2, ...);
- // transpose a md span (inverse axes). No changes to the underlying array.
+ // transpose a md span. Inverses layout and axes only.
void cspan_transpose(const SpanTypeN* self);
-bool cspan_is_order_F(const SpanTypeN* self);
+cspan_layout cspan_get_layout(const SpanTypeN* self);
+bool cspan_is_rowmajor(const SpanTypeN* self);
+bool cspan_is_colmajor(const SpanTypeN* self);
// create a subspan of input span rank. Like e.g. cspan_slice(Span3, &ms3, {off,off+count}, {c_ALL}, {c_ALL});
SpanType cspan_subspan(const SpanType* span, intptr_t offset, intptr_t count);
@@ -70,8 +73,9 @@ OutSpanN cspan_slice(TYPE OutSpanN, const SpanTypeM* parent, {x0,x1}, {y0
|:------------------|:----------------------------------------------------|:---------------------|
| SpanTypeN | `struct { ValueType *data; uint32_t shape[N]; .. }` | SpanType with rank N |
| SpanTypeN`_value` | `ValueType` | The ValueType |
-| `c_ALL` | Use with `cspan_slice()`. | Full extent |
-| `c_END` | " | End of extent |
+| `c_ALL` | `cspan_slice(&md, {1,3}, {c_ALL})` | Full extent |
+| `c_END` | `cspan_slice(&md, {1,c_END}, {2,c_END})` | End of extent |
+| `cspan_layout` | `enum { c_ROWMAJOR, c_COLMAJOR }` | Multi-dim layout |
## Example 1
@@ -182,7 +186,7 @@ void print_span(myspan2 ms) {
int main(void) {
int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
- myspan3 ms3 = cspan_md_order('C', arr, 2, 3, 4); // row-major ('F' column-major)
+ myspan3 ms3 = cspan_md(arr, 2, 3, 4); // row-major layout
myspan3 ss3 = cspan_slice(myspan3, &ms3, {c_ALL}, {0,3}, {2,c_END});
myspan2 a = cspan_submd3(&ss3, 1);
myspan2 b = a;