C++ main module for mmsd Package  1.0
Functions
dfullsymmatrix_functions.h File Reference
#include "lapack_functions.h"
Include dependency graph for dfullsymmatrix_functions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void DoubleFullSymmetricMatrixVectorProduct (const tLVectorIndex &nX, const tLVectorIncrement &incX, const double *x, const tLVectorIndex &nRows, const tLVectorIndex &ldA, const double *A, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nY, const tLVectorIncrement &incY, double *y)
 compute Y=beta.Y + alpha A X More...
 
void DoubleFullSymmetricMatrixMatrixProduct (const tBoolean &isLeftSide, const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, const double *A, const tLVectorIndex &nRowsB, const tLVectorIndex &nColsB, const tLVectorIndex &ldB, const tBoolean &isBSymmetric, const double *B, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nRowsC, const tLVectorIndex &nColsC, const tLVectorIndex &ldC, double *C)
 compute matric matrix product More...
 
void DoubleFullSymmetricMatrixRankSymmetricProduct (const tLVectorIncrement &incX, const double *X, const double &alpha, const tLVectorIndex &nS, const tLVectorIndex &ldS, double *S)
 compute the symmetric matrix S+=alpha X tX More...
 
void DoubleFullSymmetricMatrixKRankSymmetricProduct (const tLVectorIndex &nRowAs, const tLVectorIndex &nColsA, const tLVectorIncrement &incA, const tLVectorIndex &ldA, const tBoolean &isTransA, const double *A, const double &alpha, const double &beta, const tLVectorIndex &nD, const tLVectorIncrement &incD, const double *D, const tLVectorIndex &nS, const tLVectorIncrement &incS, const tLVectorIndex &ldS, double *S)
 compute the symmetric matrix S:= beta.S+alpha* A. tA or S=beta.S+alpha tA . A More...
 
tBoolean DoubleFullSymmetricMatrixEigenValues (const tLVectorIndex &nRowsA, const tLVectorIndex &nColsA, const tLVectorIndex &ldA, double *A, const tLVectorIndex &nU, double *U, const tBoolean &areEigenVectorComputed)
 compute the eigen values of the matrix A in U and store in A the eigen bvectors if areEigneVectorComputed More...
 
tBoolean DoubleFullSymmetricMatrixBoundedEigenValues (const tLVectorIndex &nRowsA, const tLVectorIndex &nColsA, const tLVectorIndex &ldA, double *A, const tLVectorIndex &nU, double *U, const tBoolean &areEigenVectorComputed, const tLVectorIndex &minIndex, const tLVectorIndex &maxIndex, const double &minBound, const double &maxBound, const tLVectorIndex &ldZ, double *Z)
 compute only selected eigen values of the matrix A in U and store in Z the eigen vectors if areEigneVectorComputed More...
 
tBoolean DoubleFullSymmetricMatrixCholeskyFactorization (const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, double *A)
 
tBoolean DoubleFullSymmetricMatrixBunchKaufmanFactorization (const tLVectorIndex &nRows, const tLVectorIndex &ldA, double *A, lapack_int *ipiv)
 
tBoolean DoubleFullSymmetricMatrixInverse (const tLVectorIndex &nRows, const tLVectorIndex &ldA, double *A, const lapack_int *ipiv)
 

Function Documentation

tBoolean DoubleFullSymmetricMatrixBoundedEigenValues ( const tLVectorIndex nRowsA,
const tLVectorIndex nColsA,
const tLVectorIndex ldA,
double *  A,
const tLVectorIndex nU,
double *  U,
const tBoolean areEigenVectorComputed,
const tLVectorIndex minIndex,
const tLVectorIndex maxIndex,
const double &  minBound,
const double &  maxBound,
const tLVectorIndex ldZ,
double *  Z 
)

compute only selected eigen values of the matrix A in U and store in Z the eigen vectors if areEigneVectorComputed

References dsyevx(), F77NAME, getBlockSizeEnvironment(), getSafeMinimum(), lapack_char, lapack_int, and lapack_real.

Referenced by LAP_DoubleFullSymmetricMatrix::computeEigenValueDecomposition().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean DoubleFullSymmetricMatrixBunchKaufmanFactorization ( const tLVectorIndex nRows,
const tLVectorIndex ldA,
double *  A,
lapack_int ipiv 
)

References dsytrf(), F77NAME, getBlockSizeEnvironment(), lapack_char, lapack_int, and lapack_real.

Here is the call graph for this function:

tBoolean DoubleFullSymmetricMatrixCholeskyFactorization ( const tLVectorIndex nRowsA,
const tLVectorIndex ldA,
double *  A 
)

References dpotrf(), F77NAME, lapack_char, lapack_int, and CORE_Integer::toString().

Here is the call graph for this function:

tBoolean DoubleFullSymmetricMatrixEigenValues ( const tLVectorIndex nRowsA,
const tLVectorIndex nColsA,
const tLVectorIndex ldA,
double *  A,
const tLVectorIndex nU,
double *  U,
const tBoolean areEigenVectorComputed 
)

compute the eigen values of the matrix A in U and store in A the eigen bvectors if areEigneVectorComputed

References dsyev(), F77NAME, getBlockSizeEnvironment(), lapack_char, lapack_int, lapack_real, CORE_String::toString(), and tString.

Referenced by LAP_DoubleFullSymmetricMatrix::computeEigenValues().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean DoubleFullSymmetricMatrixInverse ( const tLVectorIndex nRows,
const tLVectorIndex ldA,
double *  A,
const lapack_int ipiv 
)

References dsytri(), F77NAME, getBlockSizeEnvironment(), lapack_char, lapack_int, and lapack_real.

Referenced by LAP_DoubleFullSymmetricMatrix::inverse().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullSymmetricMatrixKRankSymmetricProduct ( const tLVectorIndex nRowsA,
const tLVectorIndex nColsA,
const tLVectorIncrement incA,
const tLVectorIndex ldA,
const tBoolean isTransA,
const double *  A,
const double &  alpha,
const double &  beta,
const tLVectorIndex nD,
const tLVectorIncrement incD,
const double *  D,
const tLVectorIndex nS,
const tLVectorIncrement incS,
const tLVectorIndex ldS,
double *  S 
)

compute the symmetric matrix S:= beta.S+alpha* A. tA or S=beta.S+alpha tA . A

compute the symmetric matrix S:= beta.S+alpha* A. tA or S=beta.S+alpha tA . A

References CNAME, dsyrk(), dsyrkd(), F77NAME, lapack_char, lapack_int, and tLVectorIndex.

Referenced by LAP_DoubleFullSymmetricMatrix::rankSymmetricProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullSymmetricMatrixMatrixProduct ( const tBoolean isLeftSide,
const tLVectorIndex nRowsA,
const tLVectorIndex ldA,
const double *  A,
const tLVectorIndex nRowsB,
const tLVectorIndex nColsB,
const tLVectorIndex ldB,
const tBoolean isBSymmetric,
const double *  B,
const lapack_real alpha,
const lapack_real beta,
const tLVectorIndex nRowsC,
const tLVectorIndex nColsC,
const tLVectorIndex ldC,
double *  C 
)

compute matric matrix product

  • C=beta.C +alpha A. B where A is symmetric of size n, B of size n x m and C of size n x m of isLeftSide is true
  • C=beta.C +alpha B. A where A is symmetric of size n, B of size m x n and C of size m x n of isLeftSide is false If m=n B may be also full symmetric
Parameters
isLeftSideto compute A.B or B.A
nRowsAnumber of rows ofthe symmetric matrix A
ldAnumber of memeory displacement between A[i,j] and A[i,j+1]
Avalues of A stored by column
nRowsBnumber of rows of the matrix B
nColsBnumber of columns of the matrix B
ldBnumber of memory displacement between B[i,j] and B[i,j+1]
isBSymmetricif B is symmetric
Bvalues of B stored by column
alphaalpha value
betabeta value
nRowsCnumber of rows of the matrix C
nColsCnumber of columns of the matrix C
ldCnumber of memory displacement between C[i,j] and C[i,j+1]
Cvalues of C stored by column

References CNAME, dsymm(), dsymsym(), F77NAME, lapack_char, and lapack_int.

Referenced by LAP_DoubleFullSymmetricMatrix::matrixProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullSymmetricMatrixRankSymmetricProduct ( const tLVectorIncrement incX,
const double *  X,
const double &  alpha,
const tLVectorIndex nS,
const tLVectorIndex ldS,
double *  S 
)

compute the symmetric matrix S+=alpha X tX

References dsyr(), F77NAME, lapack_char, and lapack_int.

Referenced by LAP_DoubleFullSymmetricMatrix::dotProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullSymmetricMatrixVectorProduct ( const tLVectorIndex nX,
const tLVectorIncrement incX,
const double *  x,
const tLVectorIndex nRows,
const tLVectorIndex ldA,
const double *  A,
const lapack_real alpha,
const lapack_real beta,
const tLVectorIndex nY,
const tLVectorIncrement incY,
double *  y 
)

compute Y=beta.Y + alpha A X

Parameters
nXsize of x
incXincrement of x
x: values of x
nRowsnumber of rows of A
ldAdistance in memory netween A[i][j] and A[i][j+1]
Avalues of A stored by column
alphaalpha value
betabeta value
nYsize of y
incY:incrementof y
yvalues of y

References dsymv(), F77NAME, lapack_char, and lapack_int.

Referenced by LAP_DoubleFullSymmetricMatrix::vectorProduct().

Here is the call graph for this function:

Here is the caller graph for this function: