diff options
| author | Tyge Løvset <[email protected]> | 2022-05-16 16:39:36 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-05-16 16:39:36 +0200 |
| commit | 70cb78ba41aa6b184b2ed8bece0603153b245ad9 (patch) | |
| tree | 9ce951f3ff203cb20de2cf11bc6b4470512e42f7 | |
| parent | 688a828e3bfaa1d56d50e132b31930d964e26c5d (diff) | |
| download | STC-modified-70cb78ba41aa6b184b2ed8bece0603153b245ad9.tar.gz STC-modified-70cb78ba41aa6b184b2ed8bece0603153b245ad9.zip | |
Changed contructor names in carr2/carr3 to be more consistent with other containers.
| -rw-r--r-- | docs/carray_api.md | 22 | ||||
| -rw-r--r-- | examples/demos.c | 2 | ||||
| -rw-r--r-- | examples/new_arr.c | 6 | ||||
| -rw-r--r-- | include/stc/carr2.h | 20 | ||||
| -rw-r--r-- | include/stc/carr3.h | 20 |
5 files changed, 36 insertions, 34 deletions
diff --git a/docs/carray_api.md b/docs/carray_api.md index cab5cb4c..fba152c6 100644 --- a/docs/carray_api.md +++ b/docs/carray_api.md @@ -22,9 +22,9 @@ See the c++ class [boost::multi_array](https://www.boost.org/doc/libs/release/li carr2_X: ```c -carr2_X carr2_X_init(size_t xdim, size_t ydim); -carr2_X carr2_X_with_values(size_t xdim, size_t ydim, i_val val); -carr2_X carr2_X_with_storage(size_t xdim, size_t ydim, i_val* array); +carr2_X carr2_X_with_size(size_t xdim, size_t ydim, i_val val); +carr2_X carr2_X_with_data(size_t xdim, size_t ydim, i_val* array); +carr2_X carr2_X_new_uninit(size_t xdim, size_t ydim); carr2_X carr2_X_clone(carr2_X arr); void carr2_X_copy(carr2_X* self, carr2_X other); i_val* carr2_X_release(carr2_X* self); // release storage (not freed) @@ -39,11 +39,13 @@ carr2_X_iter carr2_X_begin(const carr2_X* self); carr2_X_iter carr2_X_end(const carr2_X* self); void carr2_X_next(carr2_X_iter* it); ``` +The **carr2** elements can be accessed with `arr.data[x][y];` or with `carr2_i_at(&arr, x, y)`. + carr3: ```c -carr3_X carr3_X_init(size_t xdim, size_t ydim, size_t zdim); -carr3_X carr3_X_with_values(size_t xdim, size_t ydim, size_t zdim, i_val val); -carr3_X carr3_X_with_storage(size_t xdim, size_t ydim, size_t zdim, i_val* array); +carr3_X carr3_X_with_size(size_t xdim, size_t ydim, size_t zdim, i_val val); +carr3_X carr3_X_with_data(size_t xdim, size_t ydim, size_t zdim, i_val* array); +carr3_X carr3_X_new_uninit(size_t xdim, size_t ydim, size_t zdim); carr3_X carr3_X_clone(carr3_X arr); void carr3_X_copy(carr3_X* self, carr3_X other); i_val* carr3_X_release(carr3_X* self); // release storage (not freed) @@ -58,6 +60,8 @@ carr3_X_iter carr3_X_begin(const carr3_X* self); carr3_X_iter carr3_X_end(const carr3_X* self); void carr3_X_next(carr3_X_iter* it); ``` +The **carr3** elements can be accessed with `arr.data[x][y][z];` or with `carr3_i_at(&arr, x, y, z)`. + ## Types | Type name | Type definition | Used to represent... | @@ -70,8 +74,6 @@ void carr3_X_next(carr3_X_iter* it); | `carr3_X_value` | `i_val` | The value type | | `carr3_X_iter` | `struct { i_val *ref; }` | Iterator type | -The **carr3** elements can be accessed like `carr3_i arr = ...; int val = arr.data[x][y][z];`, or with `carr3_i_at(&arr, x, y, z)`. - ## Example ```c #include <stdio.h> @@ -89,7 +91,7 @@ int main() // Ex1 int xd = 30, yd = 20, zd = 10; // define arr3[30][20][10], initialized with zeros. - c_autovar (carr3_f arr3 = carr3_f_with_values(xd, yd, zd, 0.0f), + c_autovar (carr3_f arr3 = carr3_f_with_size(xd, yd, zd, 0.0f), carr3_f_drop(&arr3)) { arr3.data[5][4][3] = 3.14f; @@ -103,7 +105,7 @@ int main() // Ex2 int w = 256, h = 128; - c_autovar (carr2_i image = carr2_i_init(w, h), carr2_i_drop(&image)) { + c_autovar (carr2_i image = carr2_i_new_uninit(w, h), carr2_i_drop(&image)) { int n = 0; c_foreach (i, carr2_i, image) { uint32_t t = n++ % 256; diff --git a/examples/demos.c b/examples/demos.c index 022735a5..ac7cd810 100644 --- a/examples/demos.c +++ b/examples/demos.c @@ -191,7 +191,7 @@ void mapdemo3() void arraydemo1()
{
printf("\nARRAYDEMO1\n");
- c_autovar (carr3_f arr3 = carr3_f_with_values(30, 20, 10, 0.0f),
+ c_autovar (carr3_f arr3 = carr3_f_with_size(30, 20, 10, 0.0f),
carr3_f_drop(&arr3))
{
arr3.data[5][4][3] = 10.2f;
diff --git a/examples/new_arr.c b/examples/new_arr.c index b44474c9..0561764a 100644 --- a/examples/new_arr.c +++ b/examples/new_arr.c @@ -14,7 +14,7 @@ int main() { int w = 7, h = 5, d = 3; - c_autovar (carr2_int volume = carr2_int_init(w, h), + c_autovar (carr2_int volume = carr2_int_new_uninit(w, h), carr2_int_drop(&volume)) { int *dat = carr2_int_data(&volume); @@ -31,7 +31,7 @@ int main() puts("\n"); } - c_autovar (carr3_int volume = carr3_int_init(w, h, d), + c_autovar (carr3_int volume = carr3_int_new_uninit(w, h, d), carr3_int_drop(&volume)) { int *dat = carr3_int_data(&volume); @@ -49,7 +49,7 @@ int main() puts(""); } - c_autovar (carr2_str text2d = carr2_str_with_values(h, d, cstr_init()), + c_autovar (carr2_str text2d = carr2_str_with_size(h, d, cstr_init()), carr2_str_drop(&text2d)) { cstr_assign(&text2d.data[2][1], "hello"); diff --git a/include/stc/carr2.h b/include/stc/carr2.h index 2910a086..dc35893a 100644 --- a/include/stc/carr2.h +++ b/include/stc/carr2.h @@ -35,7 +35,7 @@ int main() { int w = 7, h = 5; - c_autovar (carr2_int image = carr2_int_init(w, h), carr2_int_drop(&image)) + c_autovar (carr2_int image = carr2_int_new_uninit(w, h), carr2_int_drop(&image)) { int *dat = carr2_int_data(&image); for (int i = 0; i < carr2_int_size(image); ++i) @@ -61,8 +61,8 @@ int main() { _cx_deftypes(_c_carr2_types, _cx_self, i_key); #endif -STC_API _cx_self _cx_memb(_with_values)(size_t xdim, size_t ydim, i_key value); -STC_API _cx_self _cx_memb(_with_storage)(size_t xdim, size_t ydim, _cx_value* storage); +STC_API _cx_self _cx_memb(_with_size)(size_t xdim, size_t ydim, i_key null); +STC_API _cx_self _cx_memb(_with_data)(size_t xdim, size_t ydim, _cx_value* storage); STC_API _cx_value* _cx_memb(_release)(_cx_self* self); STC_API void _cx_memb(_drop)(_cx_self* self); #if !defined _i_no_clone @@ -70,8 +70,8 @@ STC_API _cx_self _cx_memb(_clone)(_cx_self src); STC_API void _cx_memb(_copy)(_cx_self *self, _cx_self other); #endif -STC_INLINE _cx_self _cx_memb(_init)(size_t xdim, size_t ydim) { - return _cx_memb(_with_storage)(xdim, ydim, c_alloc_n(_cx_value, xdim*ydim)); +STC_INLINE _cx_self _cx_memb(_new_uninit)(size_t xdim, size_t ydim) { + return _cx_memb(_with_data)(xdim, ydim, c_alloc_n(_cx_value, xdim*ydim)); } STC_INLINE size_t _cx_memb(_size)(_cx_self arr) { return arr.xdim*arr.ydim; } @@ -100,24 +100,24 @@ STC_INLINE void _cx_memb(_next)(_cx_iter* it) /* -------------------------- IMPLEMENTATION ------------------------- */ #if defined(i_implement) -STC_DEF _cx_self _cx_memb(_with_storage)(size_t xdim, size_t ydim, _cx_value* block) { +STC_DEF _cx_self _cx_memb(_with_data)(size_t xdim, size_t ydim, _cx_value* block) { _cx_self _arr = {c_alloc_n(_cx_value*, xdim), xdim, ydim}; for (size_t x = 0; x < xdim; ++x, block += ydim) _arr.data[x] = block; return _arr; } -STC_DEF _cx_self _cx_memb(_with_values)(size_t xdim, size_t ydim, i_key value) { - _cx_self _arr = _cx_memb(_init)(xdim, ydim); +STC_DEF _cx_self _cx_memb(_with_size)(size_t xdim, size_t ydim, i_key null) { + _cx_self _arr = _cx_memb(_new_uninit)(xdim, ydim); for (_cx_value* p = _arr.data[0], *e = p + xdim*ydim; p != e; ++p) - *p = value; + *p = null; return _arr; } #if !defined _i_no_clone STC_DEF _cx_self _cx_memb(_clone)(_cx_self src) { - _cx_self _arr = _cx_memb(_init)(src.xdim, src.ydim); + _cx_self _arr = _cx_memb(_new_uninit)(src.xdim, src.ydim); for (_cx_value* p = _arr.data[0], *q = src.data[0], *e = p + _cx_memb(_size)(src); p != e; ++p, ++q) *p = i_keyclone((*q)); return _arr; diff --git a/include/stc/carr3.h b/include/stc/carr3.h index 4c380161..bbd3a065 100644 --- a/include/stc/carr3.h +++ b/include/stc/carr3.h @@ -35,7 +35,7 @@ int main() { int w = 7, h = 5, d = 3; - c_autovar (carr3_int image = carr3_int_init(w, h, d), carr3_int_drop(&image)) + c_autovar (carr3_int image = carr3_int_new_uninit(w, h, d), carr3_int_drop(&image)) { int *dat = carr3_int_data(&image); for (int i = 0; i < carr3_int_size(image); ++i) @@ -63,8 +63,8 @@ int main() { _cx_deftypes(_c_carr3_types, _cx_self, i_key); #endif -STC_API _cx_self _cx_memb(_with_values)(size_t xdim, size_t ydim, size_t zdim, i_key value); -STC_API _cx_self _cx_memb(_with_storage)(size_t xdim, size_t ydim, size_t zdim, _cx_value* storage); +STC_API _cx_self _cx_memb(_with_size)(size_t xdim, size_t ydim, size_t zdim, i_key null); +STC_API _cx_self _cx_memb(_with_data)(size_t xdim, size_t ydim, size_t zdim, _cx_value* storage); STC_API _cx_value* _cx_memb(_release)(_cx_self* self); STC_API void _cx_memb(_drop)(_cx_self* self); #if !defined _i_no_clone @@ -72,8 +72,8 @@ STC_API _cx_self _cx_memb(_clone)(_cx_self src); STC_API void _cx_memb(_copy)(_cx_self *self, _cx_self other); #endif -STC_INLINE _cx_self _cx_memb(_init)(size_t xdim, size_t ydim, size_t zdim) { - return _cx_memb(_with_storage)(xdim, ydim, zdim, c_alloc_n(_cx_value, xdim*ydim*zdim)); +STC_INLINE _cx_self _cx_memb(_new_uninit)(size_t xdim, size_t ydim, size_t zdim) { + return _cx_memb(_with_data)(xdim, ydim, zdim, c_alloc_n(_cx_value, xdim*ydim*zdim)); } STC_INLINE size_t _cx_memb(_size)(_cx_self arr) @@ -103,7 +103,7 @@ STC_INLINE void _cx_memb(_next)(_cx_iter* it) /* -------------------------- IMPLEMENTATION ------------------------- */ #if defined(i_implement) -STC_DEF _cx_self _cx_memb(_with_storage)(size_t xdim, size_t ydim, size_t zdim, _cx_value* block) { +STC_DEF _cx_self _cx_memb(_with_data)(size_t xdim, size_t ydim, size_t zdim, _cx_value* block) { _cx_self _arr = {c_alloc_n(_cx_value**, xdim*(ydim + 1)), xdim, ydim, zdim}; _cx_value** p = (_cx_value**) &_arr.data[xdim]; for (size_t x = 0, y; x < xdim; ++x, p += ydim) @@ -112,17 +112,17 @@ STC_DEF _cx_self _cx_memb(_with_storage)(size_t xdim, size_t ydim, size_t zdim, return _arr; } -STC_DEF _cx_self _cx_memb(_with_values)(size_t xdim, size_t ydim, size_t zdim, i_key value) { - _cx_self _arr = _cx_memb(_init)(xdim, ydim, zdim); +STC_DEF _cx_self _cx_memb(_with_size)(size_t xdim, size_t ydim, size_t zdim, i_key null) { + _cx_self _arr = _cx_memb(_new_uninit)(xdim, ydim, zdim); for (_cx_value* p = **_arr.data, *e = p + xdim*ydim*zdim; p != e; ++p) - *p = value; + *p = null; return _arr; } #if !defined _i_no_clone STC_DEF _cx_self _cx_memb(_clone)(_cx_self src) { - _cx_self _arr = _cx_memb(_init)(src.xdim, src.ydim, src.zdim); + _cx_self _arr = _cx_memb(_new_uninit)(src.xdim, src.ydim, src.zdim); for (_cx_value* p = **_arr.data, *q = **src.data, *e = p + _cx_memb(_size)(src); p != e; ++p, ++q) *p = i_keyclone((*q)); return _arr; |
