Data Structures | Functions

src/coramf/SuperY.h File Reference

Go to the source code of this file.

Data Structures

struct  SuperVectorY

Functions

void InitSuperVectorY (SuperVectorY *y, MAP_DEPTH_MATRIX m)
void RealToDoubleComplex (double *rData, int nelements, double complex *cData)
BOOLEAN DoubleComplexToReal (double complex *cData, int nelements, double *rData)
void unpackSuperY (const SuperVectorY *superY, MAP_DEPTH_MATRIX *AvgKern, MAP_DEPTH_MATRIX *noise, BOOLEAN waveSpace)
BOOLEAN packSuperY (const MAP_DEPTH_MATRIX *AvgKern, const MAP_DEPTH_MATRIX *noise, SuperVectorY *superY, BOOLEAN realSpace)

Function Documentation

BOOLEAN DoubleComplexToReal ( double complex *  cData,
int  nelements,
double *  rData 
)

Convert from double complex to double

Parameters:
[in] cData Pointer to array of double complex data; cannot be empty.
[in] nelements Number of elements in cData.
[in,out] rData Pointer to array of doubles; must be allocated. Real form of complex data returned in this array.
Returns:
FALSE if error; TRUE if successful
void InitSuperVectorY ( SuperVectorY y,
MAP_DEPTH_MATRIX  m 
)

Initialize super vector Y.

Parameters:
[in,out] y Pointer to SuperVectorY with allocated space; return initialized vector.
[in] m Defining kernel matrix in wave space
BOOLEAN packSuperY ( const MAP_DEPTH_MATRIX AvgKern,
const MAP_DEPTH_MATRIX noise,
SuperVectorY superY,
BOOLEAN  realSpace 
)

Condense averaging kernel and noise matrices into packed super vector Y. [AvgKern; noise] averaging kernel is at the top of Y, noise is in the bottom.

Parameters:
[in,out] AvgKern is in real space. Data is overwritten.
[in,out] noise is in real space. Data is overwritten.
[in] superY is in column-major order. ?? Send already allocated matrix. y must be in real space, NOT wave space.
[in] realSpace If true, then averaging kernel and noise are in real space; NOT IMPLEMENTED! otherwise, they are in wave space.
Returns:
false if packing failed; true if successful.
void RealToDoubleComplex ( double *  rData,
int  nelements,
double complex *  cData 
)

Convert super vector Y (which is double) to double complex.

Parameters:
[in] rData Pointer to double array for real data; must be allocated.
[in] nelements Number of elements in rData.
[in,out] cData Pointer to double complex data; must be allocated. Complex form of real data returned in this array.
void unpackSuperY ( const SuperVectorY superY,
MAP_DEPTH_MATRIX AvgKern,
MAP_DEPTH_MATRIX noise,
BOOLEAN  waveSpace 
)

Reconstitute averaging kernel and noise matrices from packed super vector Y.

Parameters:
[in] superY is in column-major order. y must be in real space, NOT wave space.
[in,out] AvgKern is in real space. Data is overwritten. Send already allocated matrix.
[in,out] noise is in real space. Data is overwritten. Send already allocated matrix.
[in] waveSpace If true, then averaging kernel and noise are in wave space; NOT IMPLEMENTED! otherwise, they are in real space.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines