Defines | Functions

src/coramf/matrix.c File Reference

Defines

#define DEBUG   0
#define NAN   (0.0/0.0)
#define MIN(X, Y)   (( X > Y ) ? Y : X)

Functions

void dgetrf_ (const int *M, const int *N, double *A, const int *lda, int *ipiv, int *info)
void zgetrf_ (const int *M, const int *N, double complex *A, const int *lda, int *ipiv, int *info)
int dgetri_ (int *n, double *a, int *lda, int *ipiv, double *work, int *lwork, int *info)
int zgetri_ (int *n, double complex *a, int *lda, int *ipiv, double complex *work, int *lwork, int *info)
int dgemm_ (const char *transA, const char *transB, const int *M, const int *N, const int *K, const double *alpha, const double *A, const int *ldA, const double *B, const int *ldB, const double *beta, double *C, const int *ldC)
int zgemm_ (const char *transA, const char *transB, const int *M, const int *N, const int *K, const double complex *alpha, const double complex *A, const int *ldA, const double complex *B, const int *ldB, const double complex *beta, double complex *C, const int *ldC)
void dpotrf_ (const char *uplo, const int *N, double *A, const int *lda, int *info)
void zpotrf_ (const char *uplo, const int *N, double complex *A, const int *lda, int *info)
void ATL_dgeadd (const int M, const int N, const double alpha, const double *A, const int lda, const double beta, double *C, const int ldc)
void ATL_zgeadd (const int M, const int N, const double complex *alpha, const double complex *A, const int lda, const double complex *beta, double complex *C, const int ldc)
VECTOR linearEqSolve (MATRIX A, VECTOR v)
MATRIX newMatrix (int r, int c)
MATRIX newMatrixI (int r, int c, double *Idata)
MATRIX newComplexMatrix (int r, int c)
VECTOR newVector (int n)
void freeMatrix (MATRIX m)
void freeVector (VECTOR v)
unsigned int setRandomSeed (unsigned int seed)
double gaussrand ()
unsigned int setRandomSeedToTime ()
MATRIX newRandomMatrix (int r, int c)
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, double alpha, double beta, MATRIX A, MATRIX B)
MATRIX multiplyScalar (MATRIX m, double scalar)
MATRIX multiplyScalarZ (MATRIX m, double complex scalar)
MATRIX starMultiply (MATRIX P, MATRIX Q)
double * toRowMajor (double *A, int R, int C)
double * toColumnMajor (double *AT, int R, int C)
MATRIX toColumnMajor2 (MATRIX m)
MATRIX toRowMajor2 (MATRIX m)
MATRIX multiplyMMplusCZ (MATRIX A, MATRIX B, double beta, MATRIX C)
MATRIX multiplyAlphaABplusC (char TransA, char TransB, MATRIX A, MATRIX B, double alpha, double beta, MATRIX C)
MATRIX multiplyABplusC (char TransA, char TransB, MATRIX A, MATRIX B, double 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)
VECTOR MatrixToVector (MATRIX m)
MATRIX VectorToMatrix_Column (VECTOR v)
MATRIX reduceMatrix (MATRIX from, VECTOR depths, int areRows)
void insertVector (double *to, VECTOR from)
void APlusLambdaB (MATRIX A, double lambda, MATRIX B, MATRIX C)
double complex 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, double factor, int scatterer, int Nz, int NBeta)
MATRIX scaleNonScatterer (MATRIX K, double factor, int scatterer, int Nz, int NBeta)
MATRIX pad (MATRIX a, int newRow, int newCol, double value)
MATRIX embed (MATRIX a, int factor)
VECTOR readText (char *inputFilename)
void print_matrix (char *desc, int m, int n, double *a, int lda, enum matrixOrder order)
void print_matrix2 (char *desc, MATRIX m, enum matrixOrder order)
void print_matrix2toFile (char *desc, MATRIX m, enum matrixOrder order)

Define Documentation

#define DEBUG   0
#define MIN (   X,
  Y 
)    (( X > Y ) ? Y : X)

return the lesser of two values

#define NAN   (0.0/0.0)

Function Documentation

void ATL_dgeadd ( const int  M,
const int  N,
const double  alpha,
const double *  A,
const int  lda,
const double  beta,
double *  C,
const int  ldc 
)

External ATLAS BLAS function

void ATL_zgeadd ( const int  M,
const int  N,
const double complex *  alpha,
const double complex *  A,
const int  lda,
const double complex *  beta,
double complex *  C,
const int  ldc 
)
int dgemm_ ( const char *  transA,
const char *  transB,
const int *  M,
const int *  N,
const int *  K,
const double *  alpha,
const double *  A,
const int *  ldA,
const double *  B,
const int *  ldB,
const double *  beta,
double *  C,
const int *  ldC 
)

External LAPACK function

void dgetrf_ ( const int *  M,
const int *  N,
double *  A,
const int *  lda,
int *  ipiv,
int *  info 
)

External LAPACK function

int dgetri_ ( int *  n,
double *  a,
int *  lda,
int *  ipiv,
double *  work,
int *  lwork,
int *  info 
)

External LAPACK function

void dpotrf_ ( const char *  uplo,
const int *  N,
double *  A,
const int *  lda,
int *  info 
)

External LAPACK function

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.
double 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,
double  beta,
MATRIX  C 
)

ORIGINAL Attempt to generalize matrix multiplication and make this really a facade for the lapack library dgemm and zgemm

MATRIX multiplyAlphaABplusC ( char  TransA,
char  TransB,
MATRIX  A,
MATRIX  B,
double  alpha,
double  beta,
MATRIX  C 
)

Attempt to generalize matrix multiplication and make this really a facade for the lapack library dgemm and zgemm

MATRIX multiplyMMplusCZ ( MATRIX  A,
MATRIX  B,
double  beta,
MATRIX  C 
)
MATRIX pad ( MATRIX  a,
int  newRow,
int  newCol,
double  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.
MATRIX reduceMatrix ( MATRIX  from,
VECTOR  depths,
int  areRows 
)
MATRIX scaleNonScatterer ( MATRIX  K,
double  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,
double  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.
int zgemm_ ( const char *  transA,
const char *  transB,
const int *  M,
const int *  N,
const int *  K,
const double complex *  alpha,
const double complex *  A,
const int *  ldA,
const double complex *  B,
const int *  ldB,
const double complex *  beta,
double complex *  C,
const int *  ldC 
)

External LAPACK function

void zgetrf_ ( const int *  M,
const int *  N,
double complex *  A,
const int *  lda,
int *  ipiv,
int *  info 
)

External LAPACK function

int zgetri_ ( int *  n,
double complex *  a,
int *  lda,
int *  ipiv,
double complex *  work,
int *  lwork,
int *  info 
)

External LAPACK function

void zpotrf_ ( const char *  uplo,
const int *  N,
double complex *  A,
const int *  lda,
int *  info 
)

External LAPACK function

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines