Defines | Functions

src/coramf/matrix.c File Reference

Defines

#define DEBUG   0
#define NAN   (0.0/0.0)

Functions

void zgesvd_ (const char *jobu, const char *jobvt, const int *m, const int *n, FloatComplex *a, const int *lda, Float *s, FloatComplex *u, const int *ldu, FloatComplex *vt, const int *ldvt, FloatComplex *work, const int *lwork, Float *rwork, int *info)
VECTOR linearEqSolve (MATRIX A, VECTOR v)
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)
VECTOR newVector (int n)
void freeMatrix (MATRIX m)
void freeVector (VECTOR v)
unsigned int setRandomSeed (unsigned int seed)
Float gaussrand ()
unsigned int setRandomSeedToTime ()
MATRIX newRandomMatrix (int r, int c)
MATRIX multiplyMM2 (char TransA, char TransB, MATRIX A, MATRIX B)
MATRIX multiplyMM2Test (char TransA, char TransB, MATRIX A, MATRIX B)
MATRIX multiplyMMFull (char TransA, char TransB, Float alpha, Float beta, MATRIX A, MATRIX B)
MATRIX multiplyScalar (MATRIX m, Float scalar)
MATRIX multiplyScalarZ (MATRIX m, FloatComplex scalar)
MATRIX starMultiply (MATRIX P, MATRIX Q)
FloattoRowMajor (Float *A, int R, int C)
FloattoColumnMajor (Float *AT, int R, int C)
MATRIX toColumnMajor2 (MATRIX m)
MATRIX toRowMajor2 (MATRIX m)
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)
MATRIX expandDiagonalMatrix (VECTOR v)
MATRIX transpose (MATRIX m)
MATRIX conjugate (MATRIX m)
MATRIX matrix_copy (MATRIX m)
MATRIX inverseD (MATRIX m)
MATRIX inverse (MATRIX m)
MATRIX Cholesky (MATRIX m)
MATRIX ConvertToReal (MATRIX m)
MATRIX ConvertToComplex (MATRIX m)
bool isIdentity (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 splitMatrix (MATRIX m, MATRIX *real, MATRIX *imag)
void mergeMatrix (MATRIX *m, MATRIX real, MATRIX imag)
void setToNaN (VECTOR v)
void setToNaNMatrix (MATRIX m)
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)
MATRIX pad (MATRIX a, int newRow, int newCol, Float value)
Float calcCondNum (MATRIX ak)
MATRIX embed (MATRIX a, int factor)
VECTOR readText (char *inputFilename)
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)

Define Documentation

#define DEBUG   0
#define NAN   (0.0/0.0)

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.
Float gaussrand (  ) 

Generate Gaussian random numbers; mean of zero, variance of 1. Use a method discussed in Knuth and due originally to Marsaglia:

Returns:
Gaussian random number
VECTOR linearEqSolve ( MATRIX  A,
VECTOR  v 
)
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 multiplyMM2Test ( char  TransA,
char  TransB,
MATRIX  A,
MATRIX  B 
)
MATRIX multiplyMMplusCZ ( MATRIX  A,
MATRIX  B,
Float  beta,
MATRIX  C 
)
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 
)
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.
void zgesvd_ ( const char *  jobu,
const char *  jobvt,
const int *  m,
const int *  n,
FloatComplex *  a,
const int *  lda,
Float s,
FloatComplex *  u,
const int *  ldu,
FloatComplex *  vt,
const int *  ldvt,
FloatComplex *  work,
const int *  lwork,
Float rwork,
int *  info 
)

External LAPACK function

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines