13 #ifndef Real2dDftData_H 14 #define Real2dDftData_H 33 template<std::
size_t N>
36 Index ndim = nsams.size();
37 for (
Index idim=0; idim<ndim; ++idim ) {
38 Index nsam = nsams[idim];
49 virtual void clear() =0;
65 if ( idim >
rank() )
return 0;
84 double badDouble = std::numeric_limits<double>::quiet_NaN();
85 return Complex(badDouble, badDouble);
101 for ( ifrqs[0]=0; ifrqs[0]<
size(0); ++ifrqs[0] ) {
102 for ( ifrqs[1]=0; ifrqs[1]<
size(1); ++ifrqs[1] ) {
virtual const IndexArray & nSamples() const =0
bool isNyquist(Index idim, Index ifrq) const
std::array< Index, 2 > IndexArray
virtual F phase(const IndexArray &ifrqs) const
virtual F real(const IndexArray &ifrqs) const
virtual Complex value(const IndexArray &ifrqs) const =0
virtual Norm normalization() const =0
virtual F imag(const IndexArray &ifrqs) const
virtual ~Real2dDftData()=default
virtual bool isValid() const
virtual void reset(const IndexArray &nsams)=0
static Index dataSize(const std::array< Index, N > &nsams)
Index size(Index idim) const
bool inRange(Index idim, Index ifrq) const
auto norm(Vector const &v)
Return norm of the specified vector.
bool isZero(Index ifrq) const
std::complex< Float > Complex
virtual Index nSample(Index idim) const
virtual F power(const IndexArray &ifrqs) const
virtual F amplitude(const IndexArray &ifrqs) const