
On 02/16/2012 06:40 PM, Larry Evans wrote:
Although it is probably slower if the array us unrotated; if rotation is needed, as in array_dyn.diff_pde.cpp, then it may be faster since, using something like nt2 or multi_array would, AFAICT, require copying the array to a new storage order. Petros (see the match=multi=array+pdes above) has somehow solved the problem; however I don't know how. Petros? OTOH, maybe you have some ideas of how the rotated axes problem can be solved with nt2 and used to solve the pde examples in array_dyn.diff_pde.cpp. -regards, Larry
storage order adaptation never trigger copy in NT2, it changes how the for loop nest is generated around the computation unless you do : a = as_< storage_order_stuff>(b) , where the copy is ofc explicit. NT2 core primitive is a loop nest generator on which we have some sort of control from the user land. Currently we dont support storage order of arbitrary complexity but storage order could be defined as a permutation of the dimensions.