22 blas::dense_vector_adaptor<T const, blas::continuous_dense_tag, Device> input,
23 blas::dense_vector_adaptor<T, blas::continuous_dense_tag, Device> output,
29 if(orderIn == orderOut){
33 int dimsIn[4] = {int(orderIn)/1000, (int(orderIn) / 100) % 10, (
int(orderIn) / 10) % 10,
int(orderIn) % 10};
34 int dimsOut[4] = {int(orderOut)/1000, (int(orderOut) / 100) % 10, (
int(orderOut) / 10) % 10,
int(orderOut) % 10};
37 int dimPerm[4] = {0,0,0,0};
38 for(
int i = 0; i != 4; ++i){
39 while(dimsIn[dimPerm[i]] != dimsOut[i]) ++dimPerm[i];
43 std::size_t stride[4]={shapeIn.
stride(dimPerm[0]) ,shapeIn.
stride(dimPerm[1]),shapeIn.
stride(dimPerm[2]), shapeIn.
stride(dimPerm[3])};
44 std::size_t size[4]={shapeIn[dimPerm[0]] ,shapeIn[dimPerm[1]],shapeIn[dimPerm[2]], shapeIn[dimPerm[3]]};