summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-05-16 16:39:36 +0200
committerTyge Løvset <[email protected]>2022-05-16 16:39:36 +0200
commit70cb78ba41aa6b184b2ed8bece0603153b245ad9 (patch)
tree9ce951f3ff203cb20de2cf11bc6b4470512e42f7
parent688a828e3bfaa1d56d50e132b31930d964e26c5d (diff)
downloadSTC-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.md22
-rw-r--r--examples/demos.c2
-rw-r--r--examples/new_arr.c6
-rw-r--r--include/stc/carr2.h20
-rw-r--r--include/stc/carr3.h20
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;