Data Structures | Enumerations | Functions

src/coramf/matrix.h File Reference

Go to the source code of this file.

Data Structures

struct  MATRIX
struct  VECTOR

Enumerations

enum  MatrixType { REAL, COMPLEX, BOOL }
enum  MatrixOrder { ROW_MAJOR, COL_MAJOR }

Functions

MATRIX newMatrix (int r, int c)
MATRIX newMatrixI (int r, int c, void *Idata, MatrixType mType)
MATRIX newComplexMatrix (int r, int c)
MATRIX newMatrixG (int r, int c, MatrixType mType)
MATRIX newMatrixGI (int r, int c, void *Idata, MatrixType mType)
void freeMatrix (MATRIX m)
VECTOR newVector (int n)
void freeVector (VECTOR v)
MATRIX matrix_copy (MATRIX m)
unsigned int setRandomSeedToTime ()
unsigned int setRandomSeed (unsigned int seed)
MATRIX newRandomMatrix (int r, int c)
VECTOR multiplyMV (MATRIX m, VECTOR v)
MATRIX multiplyMM2 (char TransA, char TransB, MATRIX A, MATRIX B)
MATRIX multiplyMM2NoForceC (char TransA, char TransB, MATRIX A, MATRIX B)
MATRIX multiplyMMFull (char TransA, char TransB, Float alpha, Float beta, MATRIX A, MATRIX B)
MATRIX multiplyMD (MATRIX m, VECTOR d)
MATRIX multiplyDM (VECTOR d, MATRIX m)
VECTOR multiplyDV (VECTOR d, VECTOR v)
MATRIX multiplyScalar (MATRIX m, Float scalar)
MATRIX multiplyScalarZ (MATRIX m, FloatComplex scalar)
MATRIX starMultiply (MATRIX P, MATRIX Q)
MATRIX multiplyMMplusC (MATRIX A, MATRIX B, Float beta, MATRIX C)
MATRIX multiplyMMplusCZ (MATRIX A, MATRIX B, Float beta, MATRIX C)
MATRIX multiplyABplusC (char TransA, char TransB, MATRIX A, MATRIX B, Float beta, MATRIX C)
MATRIX toMatrix (fits2d f)
VECTOR toVector (fits2d f)
fits2d toFitsObject (VECTOR v)
fits2d MatrixToFitsObject (MATRIX m)
fits3d MatrixToFits3dObject (MATRIX m)
FloattoRowMajor (Float *A, int R, int C)
FloattoColumnMajor (Float *A, int R, int C)
MATRIX toRowMajor2 (MATRIX m)
MATRIX toColumnMajor2 (MATRIX m)
MATRIX expandDiagonalMatrix (VECTOR v)
MATRIX transpose (MATRIX m)
MATRIX conjugate (MATRIX m)
MATRIX inverseD (MATRIX m)
MATRIX inverse (MATRIX m)
MATRIX inverseOld (MATRIX m)
MATRIX Cholesky (MATRIX m)
bool isIdentity (MATRIX m)
MATRIX ConvertToReal (MATRIX m)
MATRIX ConvertToComplex (MATRIX m)
VECTOR MatrixToVector (MATRIX m)
MATRIX VectorToMatrix_Column (VECTOR v)
MATRIX reduceMatrix (MATRIX from, VECTOR depths, int areRows)
void insertVector (Float *to, VECTOR from)
void APlusLambdaB (MATRIX A, Float lambda, MATRIX B, MATRIX C)
FloatComplex Norm2 (MATRIX m)
MATRIX BItimesV (MATRIX B, MATRIX V)
int matrix_equal (MATRIX a, MATRIX b)
void setToNaN (VECTOR v)
void setToNaNMatrix (MATRIX m)
MATRIX pad (MATRIX a, int newRow, int newCol, Float value)
MATRIX embed (MATRIX a, int factor)
void splitMatrix (MATRIX m, MATRIX *real, MATRIX *imag)
void mergeMatrix (MATRIX *m, MATRIX real, MATRIX imag)
MATRIX zeroScatterer (MATRIX K, int scatterer, int Nz, int NBeta)
MATRIX scaleScatterer (MATRIX K, Float factor, int scatterer, int Nz, int NBeta)
MATRIX scaleNonScatterer (MATRIX K, Float factor, int scatterer, int Nz, int NBeta)
void addToDiagonal (MATRIX *m, Float epsilon)
Float calcCondNum (MATRIX ak)
VECTOR readText (char *filename)
void print_matrix (char *desc, int m, int n, Float *a, int lda, MatrixOrder order)
void print_matrix2 (char *desc, MATRIX m, MatrixOrder order)
void print_matrixNoI (char *desc, MATRIX m, MatrixOrder order)
void print_matrixML (char *desc, MATRIX m, MatrixOrder order)
void print_matrix2toFile (char *desc, MATRIX m, MatrixOrder order)
int testTranspose ()

Function Documentation

void addToDiagonal ( MATRIX m,
Float  epsilon 
)

Add epsilon to each diagonal element of matrix A.

Parameters:
[in,out] m Pointer to a MATRIX.
[in] epsilon Value added to each diagonal element
Float calcCondNum ( MATRIX  ak  ) 
MATRIX embed ( MATRIX  a,
int  factor 
)

embed a matrix within a larger matrix of zeros.

Parameters:
[in] a A matrix object.
[in] factor Increase rows and columns by this factor.
Returns:
The new embedded matrix.
MATRIX inverseOld ( MATRIX  m  ) 
int matrix_equal ( MATRIX  a,
MATRIX  b 
)

Compare two matrices for equality.

Parameters:
[in] a A matrix object.
[in] b A matrix object.
Returns:
TRUE if matrix values are equal.
MATRIX multiplyABplusC ( char  TransA,
char  TransB,
MATRIX  A,
MATRIX  B,
Float  beta,
MATRIX  C 
)
MATRIX multiplyDM ( VECTOR  d,
MATRIX  m 
)
VECTOR multiplyDV ( VECTOR  d,
VECTOR  v 
)
MATRIX multiplyMD ( MATRIX  m,
VECTOR  d 
)

Multiply a matrix, m, by a diagonal matrix represented by its diagonal elements in vector, d

MATRIX multiplyMM2NoForceC ( char  TransA,
char  TransB,
MATRIX  A,
MATRIX  B 
)
MATRIX multiplyMMplusC ( MATRIX  A,
MATRIX  B,
Float  beta,
MATRIX  C 
)
MATRIX multiplyMMplusCZ ( MATRIX  A,
MATRIX  B,
Float  beta,
MATRIX  C 
)
VECTOR multiplyMV ( MATRIX  m,
VECTOR  v 
)
MATRIX pad ( MATRIX  a,
int  newRow,
int  newCol,
Float  value 
)

Pad a matrix with a scalar value, i.e. expand and fill the matrix with a specific value.

Parameters:
[in] a A matrix object.
[in] newRow Number of rows in expanded matrix.
[in] newCol Number of columns in expanded matrix.
[in] value Numeric value for empty elements.
Returns:
A new matrix with padded values.
void print_matrixML ( char *  desc,
MATRIX  m,
MatrixOrder  order 
)
void print_matrixNoI ( char *  desc,
MATRIX  m,
MatrixOrder  order 
)
MATRIX reduceMatrix ( MATRIX  from,
VECTOR  depths,
int  areRows 
)
MATRIX scaleNonScatterer ( MATRIX  K,
Float  factor,
int  scatterer,
int  Nz,
int  NBeta 
)

Multiply all elements of non-scatterer by factor.

Parameters:
[in] K A MATRIX, usually K
[in] factor A scalar value
[in] scatterer The scatterer of interest. All elements (rows and columns) for this scatterer are untouched. All other elements are scaled by the factor.
[in] Nz the Nz dimension of the kernels
[in] NBeta the number of scatterers.
Returns:
A copy of the K matrix with elements for non-scatterers scaled by the factor.
MATRIX scaleScatterer ( MATRIX  K,
Float  factor,
int  scatterer,
int  Nz,
int  NBeta 
)

Multiply all elements (maps and Nz's) of scatterer by a scale factor.

Parameters:
[in] K The MATRIX, to scale.
[in] factor A scalar value.
[in] scatterer The scatterer of interest. All elements (rows and columns) for this scatterer are scaled.
[in] Nz the Nz dimension of the kernels.
[in] NBeta the number of scatterers.
Returns:
A new matrix with scatterer elements of K scaled.
unsigned int setRandomSeed ( unsigned int  seed  ) 

Not used

unsigned int setRandomSeedToTime (  ) 

Set seed for random number generator to system time

Returns:
Seed value.
MATRIX starMultiply ( MATRIX  P,
MATRIX  Q 
)
int testTranspose (  ) 
MATRIX zeroScatterer ( MATRIX  K,
int  scatterer,
int  Nz,
int  NBeta 
)

Set all elements for scatterer to zero.

Parameters:
[in] K A MATRIX, usually Theta (a matrix defining the overlap).
[in] scatterer The scatterer of interest. All elements (rows and columns) for this scatterer are set to zero.
[in] Nz the Nz dimension of the kernels
[in] NBeta the number of scatterers.
Returns:
A copy of the Theta matrix with elements for scatterer set to zero.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines