ComplexData< N_rank > Class Template Reference
[Classes of the ODIN data processing framework (odindata library)]

#include <complexdata.h>

Inheritance diagram for ComplexData< N_rank >:

Inheritance graph
[legend]
Collaboration diagram for ComplexData< N_rank >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ComplexData ()
 ComplexData (const STD_string &filename, const STD_string &datatype, bool readonly, const TinyVector< int, N_rank > &shape_firstblock, LONGEST_INT offset=0)
 ComplexData (const TinyVector< int, N_rank > &dimvec, const STD_complex &val=0)
 ComplexData (int extent1)
 ComplexData (int extent1, int extent2)
 ComplexData (int extent1, int extent2, int extent3)
 ComplexData (int extent1, int extent2, int extent3, int extent4)
 ComplexData (int extent1, int extent2, int extent3, int extent4, int extent5)
 ComplexData (int extent1, int extent2, int extent3, int extent4, int extent5, int extent6)
 ComplexData (int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7)
 ComplexData (int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8)
 ComplexData (int extent1, int extent2, int extent3, int extent4, int extent5, int extent6, int extent7, int extent8, int extent9)
 ComplexData (const ComplexData< N_rank > &cd)
 ComplexData (const Data< STD_complex, N_rank > &a)
 ~ComplexData ()
ComplexData< N_rank > & operator= (const ComplexData< N_rank > &d)
ComplexData< N_rank > & operator= (const Array< STD_complex, N_rank > &a)
ComplexData< N_rank > & operator= (const STD_complex &val)
template<class T_expr>
ComplexData< N_rank > & operator= (BZ_ETPARM(_bz_ArrayExpr< T_expr >) expr)
Array< STD_complex, N_rank > operator+ (const ComplexData< N_rank > &b) const
Array< STD_complex, N_rank > operator- (const ComplexData< N_rank > &b) const
Array< STD_complex, N_rank > operator * (const ComplexData< N_rank > &b) const
Array< STD_complex, N_rank > operator/ (const ComplexData< N_rank > &b) const
bool filemap (const STD_string &filename, const STD_string &datatype, bool readonly, const TinyVector< int, N_rank > &shape_firstblock, LONGEST_INT offset=0)
bool load_block (const TinyVector< int, N_rank > &blockshape, LONGEST_INT offset)
void fft (bool forward=true, bool cyclic_shift=true)
void partial_fft (const TinyVector< bool, N_rank > &do_fft, bool forward=true, bool cyclic_shift=true)
void modulate_offset (const TinyVector< float, N_rank > &rel_offset)
void shift_subpixel (const TinyVector< float, N_rank > &shiftvec)
Data< float, N_rank > & phasemap () const
bool has_raw_data () const

Detailed Description

template<int N_rank>
class ComplexData< N_rank >

This template class holds multidimensional complex data, most suitable for NMR signal. In addition to functionality provided by the Data Array class, it offers advanced numerical routines (FFT) and block-wise processing of large data files.

Definition at line 43 of file complexdata.h.


Constructor & Destructor Documentation

template<int N_rank>
ComplexData< N_rank >::ComplexData (  )  [inline]

Default constructor

Definition at line 50 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::ComplexData ( const STD_string &  filename,
const STD_string &  datatype,
bool  readonly,
const TinyVector< int, N_rank > &  shape_firstblock,
LONGEST_INT  offset = 0 
)

Associates this array with the complex signal data in 'filename' and the following extra arguments:

Definition at line 249 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::ComplexData ( const TinyVector< int, N_rank > &  dimvec,
const STD_complex &  val = 0 
) [inline]

Constructs a complex array with the given dimensionality

Definition at line 68 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::ComplexData ( int  extent1  )  [inline]

Constructor with a variable list of arguments to specify the extend in each dimension, the number of args must match N_rank

Definition at line 76 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::ComplexData ( const ComplexData< N_rank > &  cd  )  [inline]

Copy constructor

Definition at line 90 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::ComplexData ( const Data< STD_complex, N_rank > &  a  )  [inline]

Copy constructor from Data

Definition at line 96 of file complexdata.h.

template<int N_rank>
ComplexData< N_rank >::~ComplexData (  ) 

Destructor

Definition at line 307 of file complexdata.h.


Member Function Documentation

template<int N_rank>
ComplexData<N_rank>& ComplexData< N_rank >::operator= ( const ComplexData< N_rank > &  d  )  [inline]

Assignment operator

Definition at line 108 of file complexdata.h.

template<int N_rank>
ComplexData<N_rank>& ComplexData< N_rank >::operator= ( const Array< STD_complex, N_rank > &  a  )  [inline]

Assignment operator from Blitz::Array

Reimplemented from Data< STD_complex, N_rank >.

Definition at line 114 of file complexdata.h.

template<int N_rank>
ComplexData<N_rank>& ComplexData< N_rank >::operator= ( const STD_complex &  val  )  [inline]

Fills all elements with 'val'

Reimplemented from Data< STD_complex, N_rank >.

Definition at line 120 of file complexdata.h.

template<int N_rank>
template<class T_expr>
ComplexData<N_rank>& ComplexData< N_rank >::operator= ( BZ_ETPARM(_bz_ArrayExpr< T_expr >)  expr  )  [inline]

Assignment operator for expression templates

Reimplemented from Data< STD_complex, N_rank >.

Definition at line 127 of file complexdata.h.

template<int N_rank>
Array<STD_complex,N_rank> ComplexData< N_rank >::operator+ ( const ComplexData< N_rank > &  b  )  const [inline]

Element-wise + operator for 2 arrays

Definition at line 137 of file complexdata.h.

template<int N_rank>
Array<STD_complex,N_rank> ComplexData< N_rank >::operator- ( const ComplexData< N_rank > &  b  )  const [inline]

Element-wise - operator for 2 arrays

Definition at line 144 of file complexdata.h.

template<int N_rank>
Array<STD_complex,N_rank> ComplexData< N_rank >::operator * ( const ComplexData< N_rank > &  b  )  const [inline]

Element-wise * operator for 2 arrays

Definition at line 151 of file complexdata.h.

template<int N_rank>
Array<STD_complex,N_rank> ComplexData< N_rank >::operator/ ( const ComplexData< N_rank > &  b  )  const [inline]

Element-wise / operator for 2 arrays

Definition at line 158 of file complexdata.h.

template<int N_rank>
bool ComplexData< N_rank >::filemap ( const STD_string &  filename,
const STD_string &  datatype,
bool  readonly,
const TinyVector< int, N_rank > &  shape_firstblock,
LONGEST_INT  offset = 0 
)

Associates this array with the complex signal data in 'filename' and the following extra arguments:

Definition at line 259 of file complexdata.h.

template<int N_rank>
bool ComplexData< N_rank >::load_block ( const TinyVector< int, N_rank > &  blockshape,
LONGEST_INT  offset 
)

Loads the block with extent vector 'blockshape' from file into the array, starting 'offset' bytes in the file, returns true if successful

Definition at line 345 of file complexdata.h.

template<int N_rank>
void ComplexData< N_rank >::fft ( bool  forward = true,
bool  cyclic_shift = true 
)

Performs an in-place FFT with the following properties:

Definition at line 373 of file complexdata.h.

template<int N_rank>
void ComplexData< N_rank >::partial_fft ( const TinyVector< bool, N_rank > &  do_fft,
bool  forward = true,
bool  cyclic_shift = true 
)

Performs an in-place FFT over a partial number of dimensions with the following properties:

Definition at line 401 of file complexdata.h.

template<int N_rank>
void ComplexData< N_rank >::modulate_offset ( const TinyVector< float, N_rank > &  rel_offset  ) 

Modulate a phase gradient onto the array so that after FFT, the data will be shifted in each dimension by 'rel_offset' which is given as a fraction relative to the full size, i.e. a value of 0.5 shifts the array by half its size.

Definition at line 473 of file complexdata.h.

template<int N_rank>
void ComplexData< N_rank >::shift_subpixel ( const TinyVector< float, N_rank > &  shiftvec  ) 

Shift the data by the number of pixels given in 'shiftvec' for each dimension using the FFT, i.e. this is possible even with fractions.

Definition at line 486 of file complexdata.h.

template<int N_rank>
Data< float, N_rank > & ComplexData< N_rank >::phasemap (  )  const

Returns the phase of the complex array, whereby the phase is unwrapped in the last dimension

Definition at line 512 of file complexdata.h.

template<int N_rank>
bool ComplexData< N_rank >::has_raw_data (  )  const [inline]

Returns 'true' if raw data file was sucessfully attached to this complex array.

Definition at line 222 of file complexdata.h.


The documentation for this class was generated from the following file:
Generated on Sat Jun 14 12:31:24 2008 by  doxygen 1.5.1