The present implementation of the janus.fft module define transforms with cryptic tuple attributes called shape, rshape and cshape.
Transform objects could in fact be seen as operators (as defined in the janus.operators module). Then the shape attributes should be renamed as follows
rshape -> ishape
cshape -> oshape
shape -> global_ishape
An additional attribute global_oshape should also be created (see Issue #7).
This has a few consequences on the janus.operators module itself. Indeed, FFT objects could not be considered as structured operators, since for such operators, we have (3D example)
ishape = (n0, n1, n2, in3)
oshape = (n0, n1, n2,out3)
While for FFT objects, the last dimension should be 1, and the dimension before last of the input and output might differ (this is certainly true of real transforms).
This probably entails the creation of a super-class of StructuredOperator.
The present implementation of the
janus.fft
module define transforms with cryptic tuple attributes calledshape
,rshape
andcshape
.Transform objects could in fact be seen as operators (as defined in the
janus.operators
module). Then the shape attributes should be renamed as followsrshape -> ishape
cshape -> oshape
shape -> global_ishape
An additional attribute
global_oshape
should also be created (see Issue #7).This has a few consequences on the
janus.operators
module itself. Indeed, FFT objects could not be considered as structured operators, since for such operators, we have (3D example)ishape = (n0, n1, n2, in3)
oshape = (n0, n1, n2,out3)
While for FFT objects, the last dimension should be 1, and the dimension before last of the input and output might differ (this is certainly true of real transforms).
This probably entails the creation of a super-class of
StructuredOperator
.