Hello Sebastien,
On Aug 11, 2006, at 9:31 AM, Sebastien Fortier wrote:
I would like to know if it is possible to use memcpy to copy a float array to a particular dimension of a multi_array.
In some situations you can, but not as your array is currently specified.
[...]
If you change your multi_array so that the third dimension is the first dimension, then the dim1*dim2 elements will be stored contiguously in the array and you will then be able to memcpy them (or pass a pointer to the array buffer and avoid copying altogether).If you require the dimensions of the multi_array to be as you specified, then you will need to specify a different storage order for the array in order to make the dim1*dim2 elements contiguous.
for example:/* switch the dimensions of the array */array_type3D_f_t valueMatrix(boost::extents[dim3][dim1][dim2]);
/* ... */for (int i=0; i != dim3; ++i) {function(valueMatrix[i].origin()); // directly passes the multi_array buffer to the function}HTH,
ron
[...]
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Sébastien Fortier