C++ main module for mmsd Package  1.0
Functions
dfullsymmatrix_functions.cpp File Reference
#include "dfullsymmatrix_functions.h"
#include "CORE_String.h"
Include dependency graph for dfullsymmatrix_functions.cpp:

Functions

void F77NAME() dsymv (const lapack_char *uplo, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, const lapack_real *dx, const lapack_int *incx, const lapack_real *beta, lapack_real *dy, const lapack_int *incy)
 
void F77NAME() dsymm (const lapack_char *side, const lapack_char *uplo, const lapack_int *M, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, const lapack_real *B, const lapack_int *ldb, const lapack_real *beta, lapack_real *C, const lapack_int *ldc)
 
void CNAME() dsymsym (const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, const lapack_real *B, const lapack_int *ldb, const lapack_real *beta, lapack_real *C, const lapack_int *ldc)
 
void F77NAME() dsyr (const lapack_char *uplo, const lapack_int *N, const lapack_real *alpha, const lapack_real *x, const lapack_int *incX, lapack_real *A, const lapack_int *lda)
 
void F77NAME() dsyrk (const lapack_char *uplo, const lapack_char *trans, const lapack_int *N, const lapack_int *K, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, const lapack_real *beta, lapack_real *C, const lapack_int *ldc)
 
void CNAME() dsyrkd (const lapack_char *trans, const lapack_int *N, const lapack_int *K, const lapack_real *alpha, const lapack_real *A, const lapack_int *inca, const lapack_int *lda, const lapack_real *beta, const lapack_real *D, const lapack_int *incD, lapack_real *C, const lapack_int *incc, const lapack_int *ldc)
 
void F77NAME() dsyev (lapack_char *jobz, lapack_char *uplo, lapack_int *N, lapack_real *S, lapack_int *lda, lapack_real *eig, lapack_real *work, lapack_int *lwork, lapack_int *info)
 
void F77NAME() dsyevx (const lapack_char *jobz, const lapack_char *range, const lapack_char *uplo, const lapack_int *N, const lapack_real *A, const lapack_int *lda, const lapack_real *vl, const lapack_real *vu, const lapack_int *il, const lapack_int *iu, const lapack_real *abstol, const lapack_int *M, lapack_real *w, lapack_real *Z, const lapack_int *LDZ, lapack_real *work, lapack_int *lWork, lapack_int *iWork, lapack_int *ifail, lapack_int *info)
 
void F77NAME() dsytri (const lapack_char *uplo, const lapack_int *N, const lapack_real *A, const lapack_int *lda, const lapack_int *ipiv, lapack_real *work, lapack_int *info)
 
void F77NAME() dsytrf (const lapack_char *uplo, const lapack_int *N, const lapack_real *A, const lapack_int *lda, lapack_int *ipiv, lapack_real *work, lapack_int *lwork, lapack_int *info)
 
void F77NAME() dpotrf (const lapack_char *uplo, const lapack_int *N, lapack_real *A, const lapack_int *lda, lapack_int *info)
 
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 &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. D. tA or S= beta.S+alpha tA . D. A More...
 
tBoolean DoubleFullSymmetricMatrixEigenValues (const tLVectorIndex &nRowsA, const tLVectorIndex &nColsA, const tLVectorIndex &ldA, double *A, const tLVectorIndex &nU, double *U, const tBoolean &areEigenVectorsComputed)
 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 areEigenVectorsComputed 
)

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. D. tA or S= beta.S+alpha tA . D. 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:

void F77NAME() dpotrf ( const lapack_char uplo,
const lapack_int N,
lapack_real A,
const lapack_int lda,
lapack_int info 
)

Referenced by DoubleFullSymmetricMatrixCholeskyFactorization().

Here is the caller graph for this function:

void F77NAME() dsyev ( lapack_char jobz,
lapack_char uplo,
lapack_int N,
lapack_real S,
lapack_int lda,
lapack_real eig,
lapack_real work,
lapack_int lwork,
lapack_int info 
)

Referenced by DoubleFullSymmetricMatrixEigenValues().

Here is the caller graph for this function:

void F77NAME() dsyevx ( const lapack_char jobz,
const lapack_char range,
const lapack_char uplo,
const lapack_int N,
const lapack_real A,
const lapack_int lda,
const lapack_real vl,
const lapack_real vu,
const lapack_int il,
const lapack_int iu,
const lapack_real abstol,
const lapack_int M,
lapack_real w,
lapack_real Z,
const lapack_int LDZ,
lapack_real work,
lapack_int lWork,
lapack_int iWork,
lapack_int ifail,
lapack_int info 
)

Referenced by DoubleFullSymmetricMatrixBoundedEigenValues().

Here is the caller graph for this function:

void F77NAME() dsymm ( const lapack_char side,
const lapack_char uplo,
const lapack_int M,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
const lapack_real B,
const lapack_int ldb,
const lapack_real beta,
lapack_real C,
const lapack_int ldc 
)

Referenced by DoubleFullSymmetricMatrixMatrixProduct().

Here is the caller graph for this function:

void CNAME() dsymsym ( const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
const lapack_real B,
const lapack_int ldb,
const lapack_real beta,
lapack_real C,
const lapack_int ldc 
)

Referenced by DoubleFullSymmetricMatrixMatrixProduct().

Here is the caller graph for this function:

void F77NAME() dsymv ( const lapack_char uplo,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
const lapack_real dx,
const lapack_int incx,
const lapack_real beta,
lapack_real dy,
const lapack_int incy 
)

Referenced by DoubleFullSymmetricMatrixVectorProduct().

Here is the caller graph for this function:

void F77NAME() dsyr ( const lapack_char uplo,
const lapack_int N,
const lapack_real alpha,
const lapack_real x,
const lapack_int incX,
lapack_real A,
const lapack_int lda 
)

Referenced by DoubleFullSymmetricMatrixRankSymmetricProduct().

Here is the caller graph for this function:

void F77NAME() dsyrk ( const lapack_char uplo,
const lapack_char trans,
const lapack_int N,
const lapack_int K,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
const lapack_real beta,
lapack_real C,
const lapack_int ldc 
)

Referenced by DoubleFullSymmetricMatrixKRankSymmetricProduct().

Here is the caller graph for this function:

void CNAME() dsyrkd ( const lapack_char trans,
const lapack_int N,
const lapack_int K,
const lapack_real alpha,
const lapack_real A,
const lapack_int inca,
const lapack_int lda,
const lapack_real beta,
const lapack_real D,
const lapack_int incD,
lapack_real C,
const lapack_int incc,
const lapack_int ldc 
)

Referenced by DoubleFullSymmetricMatrixKRankSymmetricProduct().

Here is the caller graph for this function:

void F77NAME() dsytrf ( const lapack_char uplo,
const lapack_int N,
const lapack_real A,
const lapack_int lda,
lapack_int ipiv,
lapack_real work,
lapack_int lwork,
lapack_int info 
)

Referenced by DoubleFullSymmetricMatrixBunchKaufmanFactorization().

Here is the caller graph for this function:

void F77NAME() dsytri ( const lapack_char uplo,
const lapack_int N,
const lapack_real A,
const lapack_int lda,
const lapack_int ipiv,
lapack_real work,
lapack_int info 
)

Referenced by DoubleFullSymmetricMatrixInverse().

Here is the caller graph for this function: