summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-08-09 22:47:53 +0200
committerTyge Løvset <[email protected]>2020-08-09 22:47:53 +0200
commit2e51101a5d4846cd47679505378dcf862d72ccec (patch)
treee2758a7111c48395e38f19001553a2b3ff8c45fa /examples
parent37ac780f49f1ec56c443b034a3f37df5b5af2b5b (diff)
downloadSTC-modified-2e51101a5d4846cd47679505378dcf862d72ccec.tar.gz
STC-modified-2e51101a5d4846cd47679505378dcf862d72ccec.zip
Simplified carray API.
Diffstat (limited to 'examples')
-rw-r--r--examples/complex.c6
-rw-r--r--examples/demos.c21
2 files changed, 14 insertions, 13 deletions
diff --git a/examples/complex.c b/examples/complex.c
index 6a6a268b..cd8a6d78 100644
--- a/examples/complex.c
+++ b/examples/complex.c
@@ -20,17 +20,17 @@ int main() {
carray2f table = carray2f_make(ydim, xdim, 0.f);
printf("table: (%zu, %zu)\n", carray2_ydim(table), carray2_xdim(table));
clist_t2 tableList = clist_init;
+ // Put in some data.
cmap_il listMap = cmap_init;
- // Put in some data.
- carray2f_data(table, y)[x] = 3.1415927; // table[y][x]
+ *carray2f_at(&table, y, x) = 3.1415927; // table[y][x]
clist_t2_push_back(&tableList, table);
cmap_il_put(&listMap, tableKey, tableList);
cmap_sm_put(&theMap, strKey, listMap);
}
{ // Access the data entry
carray2f table = clist_back(cmap_il_find(&cmap_sm_find(&theMap, strKey)->value, tableKey)->value);
- printf("value (%d, %d) is: %f\n", y, x, carray2f_value(table, y, x));
+ printf("value (%d, %d) is: %f\n", y, x, *carray2f_at(&table, y, x));
}
cmap_sm_destroy(&theMap); // free up the whole shebang!
diff --git a/examples/demos.c b/examples/demos.c
index 458806c3..47ba52aa 100644
--- a/examples/demos.c
+++ b/examples/demos.c
@@ -179,20 +179,21 @@ declare_carray(f, float);
void arraydemo1()
{
printf("\nARRAYDEMO1\n");
- carray3f a3 = carray3f_make(30, 20, 10, 0.f);
- carray3f_data(a3, 5, 4)[3] = 10.2f; // a3[5][4][3]
- carray2f a2 = carray3f_at(a3, 5); // sub-array reference (no data copy).
+ carray3f a3 = carray3f_make(30, 20, 10, 0.0f);
+ *carray3f_at(&a3, 5, 4, 3) = 10.2f; // a3[5][4][3]
+ carray2f a2 = carray3f_at1(&a3, 5); // sub-array reference: a2 = a3[5]
+ carray1f a1 = carray3f_at2(&a3, 5, 4); // sub-array reference: a1 = a3[5][4]
printf("a3: %zu: (%zu, %zu, %zu) = %zu\n", sizeof(a3), carray3_xdim(a3), carray3_ydim(a3), carray3_zdim(a3), carray3_size(a3));
printf("a2: %zu: (%zu, %zu) = %zu\n", sizeof(a2), carray2_xdim(a2), carray2_ydim(a2), carray2_size(a2));
- printf("%f\n", carray2f_value(a2, 4, 3)); // readonly lookup a2[4][3] (=10.2f)
- printf("%f\n", carray2f_data(a2, 4)[3]); // same, but this is writable.
- printf("%f\n", carray2f_at(a2, 4).data[3]); // same, via sub-array access.
-
- printf("%f\n", carray3f_value(a3, 5, 4, 3)); // same data location, via a3 array.
- printf("%f\n", carray3f_data(a3, 5, 4)[3]);
- printf("%f\n", carray3f_at2(a3, 5, 4).data[3]);
+ printf("%f\n", a1.data[3]); // lookup a1[3] (=10.2f)
+ printf("%f\n", *carray2f_at(&a2, 4, 3)); // lookup a2[4][3] (=10.2f)
+ printf("%f\n", *carray3f_at(&a3, 5, 4, 3)); // lookup a3[5][4][3] (=10.2f)
+
+ c_foreach (i, carray3f, a3)
+ *i.item = 1.0f;
+ printf("%f\n", *carray3f_at(&a3, 29, 19, 9));
carray2f_destroy(&a2); // does nothing, since it is a sub-array.
carray3f_destroy(&a3); // also invalidates a2.