diff --git a/src/array.c b/src/array.c index 2c6505b9d6e04..fcae8ac26fa22 100644 --- a/src/array.c +++ b/src/array.c @@ -167,6 +167,18 @@ JL_DLLEXPORT jl_array_t *jl_alloc_array_1d(jl_value_t *atype, size_t nr) return new_array(atype, 1, &nr); } +JL_DLLEXPORT jl_array_t *jl_alloc_array_2d(jl_value_t *atype, size_t nr, size_t nc) +{ + size_t dims[2] = {nr, nc}; + return new_array(atype, 2, &dims[0]); +} + +JL_DLLEXPORT jl_array_t *jl_alloc_array_3d(jl_value_t *atype, size_t nr, size_t nc, size_t z) +{ + size_t dims[3] = {nr, nc, z}; + return new_array(atype, 3, &dims[0]); +} + JL_DLLEXPORT jl_array_t *jl_alloc_array_nd(jl_value_t *atype, size_t *dims, size_t ndims) { return new_array(atype, ndims, dims); diff --git a/src/jl_exported_funcs.inc b/src/jl_exported_funcs.inc index 6ae91f5cc32d6..a3e9942ffe793 100644 --- a/src/jl_exported_funcs.inc +++ b/src/jl_exported_funcs.inc @@ -6,6 +6,9 @@ XX(jl_adopt_thread) \ XX(jl_alignment) \ XX(jl_alloc_array_1d) \ + XX(jl_alloc_array_2d) \ + XX(jl_alloc_array_3d) \ + XX(jl_alloc_array_nd) \ XX(jl_alloc_string) \ XX(jl_alloc_svec) \ XX(jl_alloc_svec_uninit) \ diff --git a/src/julia.h b/src/julia.h index 5198bcab5a2bd..6c16481dd6681 100644 --- a/src/julia.h +++ b/src/julia.h @@ -1821,6 +1821,9 @@ JL_DLLEXPORT jl_array_t *jl_ptr_to_array(jl_value_t *atype, void *data, jl_value_t *dims, int own_buffer); JL_DLLEXPORT jl_array_t *jl_alloc_array_1d(jl_value_t *atype, size_t nr); +JL_DLLEXPORT jl_array_t *jl_alloc_array_2d(jl_value_t *atype, size_t nr, size_t nc); +JL_DLLEXPORT jl_array_t *jl_alloc_array_3d(jl_value_t *atype, size_t nr, size_t nc, size_t z); +JL_DLLEXPORT jl_array_t *jl_alloc_array_nd(jl_value_t *atype, size_t *dims, size_t ndims); JL_DLLEXPORT jl_array_t *jl_pchar_to_array(const char *str, size_t len); JL_DLLEXPORT jl_value_t *jl_pchar_to_string(const char *str, size_t len); JL_DLLEXPORT jl_value_t *jl_cstr_to_string(const char *str);