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

Functions

void F77NAME() dspmv (const lapack_char *uplo, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_real *x, const lapack_int *incx, const lapack_real *beta, lapack_real *y, const lapack_int *incy)
 
void F77NAME() dspr (const lapack_char *uplo, const lapack_int *N, const lapack_real *alpha, const lapack_real *x, const lapack_int *incX, lapack_real *A)
 
void CNAME() dspmm (const lapack_char *side, const lapack_int *M, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_real *B, const lapack_int *incB, const lapack_int *ldB, const lapack_real *beta, lapack_real *C, const lapack_int *incC, const lapack_int *ldc)
 
void CNAME() dspmsym (const lapack_char *side, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_real *B, const lapack_int *incB, const lapack_int *ldB, const lapack_real *beta, lapack_real *C, const lapack_int *incC, const lapack_int *ldc)
 
void CNAME() dspmspm (const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_real *B, const lapack_real *beta, lapack_real *C, const lapack_int *incC, const lapack_int *ldc)
 
void CNAME() dsprk (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)
 
void F77NAME() dspev (const lapack_char *jobz, const lapack_char *uplo, const lapack_int *N, lapack_real *S, lapack_real *W, lapack_real *Z, lapack_int *ldz, lapack_real *work, lapack_int *info)
 
void F77NAME() dspevx (const lapack_char *jobz, const lapack_char *range, const lapack_char *uplo, const lapack_int *N, lapack_real *S, const lapack_real *vl, const lapack_real *vu, const lapack_int *il, const lapack_int *iu, const lapack_real *abstol, lapack_int *M, lapack_real *w, lapack_real *Z, const lapack_int *LDZ, lapack_real *work, lapack_int *iWork, lapack_int *ifail, lapack_int *info)
 
void F77NAME() dsptrf (const lapack_char *uplo, const lapack_int *N, lapack_real *A, lapack_int *ipiv, lapack_int *info)
 
void F77NAME() dsptri (const lapack_char *uplo, const lapack_int *N, const lapack_real *A, const lapack_int *ipiv, lapack_real *work, lapack_int *info)
 
void F77NAME() dpptrf (const lapack_char *uplo, const lapack_int *N, lapack_real *A, lapack_int *info)
 
void DoublePackedSymmetricMatrixVectorProduct (const tLVectorIndex &nX, const tLVectorIncrement &incX, const double *x, const tLVectorIndex &nRows, 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 DoublePackedSymmetricMatrixRankSymmetricProduct (const tLVectorIncrement &incX, const double *X, const double &alpha, const tLVectorIndex &nS, double *S)
 compute the symmetric matrix S+=alpha X tX More...
 
void DoublePackedSymmetricMatrixMatrixProduct (const tBoolean &isLeftSide, const tLVectorIndex &nRowsA, const double *A, const tLVectorIndex &nRowsB, const tLVectorIndex &nColsB, const tLVectorIncrement &incB, const tLVectorIndex &ldB, const tBoolean &isBSymmetric, const tBoolean &isBFull, const double *B, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nRowsC, const tLVectorIndex &nColsC, const tLVectorIncrement &incC, const tLVectorIndex &ldC, double *C)
 compute : More...
 
void DoublePackedSymmetricMatrixKRankSymmetricProduct (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, double *S)
 compute the symmetric matrix S= beta.S+alpha A. D. tA or S= beta.S+alpha tA . D. A More...
 
tBoolean DoublePackedSymmetricMatrixEigenValues (const tLVectorIndex &nRowsA, double *A, const tLVectorIndex &nU, double *U, const tLVectorIndex &ldW, double *W)
 compute all the eigen values or vectors (if W is not null or ldW<=1) More...
 
tBoolean DoublePackedSymmetricMatrixBoundedEigenValues (const tLVectorIndex &nRowsA, double *A, const tLVectorIndex &nU, double *U, const tLVectorIndex &minIndex, const tLVectorIndex &maxIndex, const double &minBound, const double &maxBound, const tLVectorIndex &ldW, double *W)
 compute the selected eigen values or vectors (if W is not null or ldW<=1) with More...
 
tBoolean DoublePackedSymmetricMatrixCholeskyFactorization (const tLVectorIndex &nRowsA, double *A)
 make the cholesky factorization A=tU.U More...
 
tBoolean DoublePackedSymmetricMatrixBunchKaufmanFactorization (const tLVectorIndex &nRows, double *A, lapack_int *ipiv)
 make the Bunch Kaufman factorization A=U.D.tU More...
 
tBoolean DoublePackedSymmetricMatrixInverse (const tLVectorIndex &nRows, const lapack_int *ipiv, double *A)
 inverse the pack symmetric matrix where is has ben Bunch Kaufman factorized More...
 

Function Documentation

tBoolean DoublePackedSymmetricMatrixBoundedEigenValues ( const tLVectorIndex nRowsA,
double *  A,
const tLVectorIndex nU,
double *  U,
const tLVectorIndex minIndex,
const tLVectorIndex maxIndex,
const double &  minBound,
const double &  maxBound,
const tLVectorIndex ldW,
double *  W 
)

compute the selected eigen values or vectors (if W is not null or ldW<=1) with

  • index in [minIndex,maxIndex] if in [1,nRows]
  • values in [minBound,maxBound] if minBound!=maxBound

compute also the eigen vector if W is not null and ldW >1

References dspevx(), F77NAME, getSafeMinimum(), lapack_char, lapack_int, lapack_real, null, CORE_String::toString(), and tString.

Referenced by LAP_DoublePackedSymmetricMatrix::computeEigenValueDecomposition().

Here is the call graph for this function:

Here is the caller graph for this function:

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

make the Bunch Kaufman factorization A=U.D.tU

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

Referenced by LAP_DoublePackedSymmetricMatrix::inverse().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean DoublePackedSymmetricMatrixCholeskyFactorization ( const tLVectorIndex nRowsA,
double *  A 
)

make the cholesky factorization A=tU.U

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

Here is the call graph for this function:

tBoolean DoublePackedSymmetricMatrixEigenValues ( const tLVectorIndex nRowsA,
double *  A,
const tLVectorIndex nU,
double *  U,
const tLVectorIndex ldW,
double *  W 
)

compute all the eigen values or vectors (if W is not null or ldW<=1)

References dspev(), F77NAME, lapack_char, lapack_int, lapack_real, null, CORE_String::toString(), and tString.

Referenced by LAP_DoublePackedSymmetricMatrix::computeEigenValueDecomposition(), and LAP_DoublePackedSymmetricMatrix::computeEigenValues().

Here is the call graph for this function:

Here is the caller graph for this function:

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

inverse the pack symmetric matrix where is has ben Bunch Kaufman factorized

References dsptri(), F77NAME, lapack_char, lapack_int, and lapack_real.

Referenced by LAP_DoublePackedSymmetricMatrix::inverse().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoublePackedSymmetricMatrixKRankSymmetricProduct ( 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,
double *  S 
)

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

compute : S:=beta S+ alpha op(A) . D . top(A) If D is null D is supposed to be identity (fortran version) If not, (extended C version)

References CNAME, dsprk(), lapack_char, lapack_int, null, and tLVectorIndex.

Referenced by LAP_DoublePackedSymmetricMatrix::rankSymmetricProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoublePackedSymmetricMatrixMatrixProduct ( const tBoolean isLeftSide,
const tLVectorIndex nRowsS,
const double *  S,
const tLVectorIndex nRowsB,
const tLVectorIndex nColsB,
const tLVectorIncrement incB,
const tLVectorIndex ldB,
const tBoolean isBSymmetric,
const tBoolean isBFull,
const double *  B,
const lapack_real alpha,
const lapack_real beta,
const tLVectorIndex nRowsC,
const tLVectorIndex nColsC,
const tLVectorIncrement incC,
const tLVectorIndex ldC,
double *  C 
)

compute :

  • C:=beta C+ alpha S. B
  • C:=beta C+ alpha B. S where :

S is packed symmetric

  • B is general full matrix (extanded C Version)
  • B is symmetric full matrix (extanded C Version),
  • B is packed symmetric matrix (extended C version)
  • C is general full matrix

References CNAME, dspmm(), dspmspm(), dspmsym(), lapack_char, and lapack_int.

Referenced by LAP_DoublePackedSymmetricMatrix::matrixProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

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

compute the symmetric matrix S+=alpha X tX

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

Referenced by LAP_DoublePackedSymmetricMatrix::dotProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoublePackedSymmetricMatrixVectorProduct ( const tLVectorIndex nX,
const tLVectorIncrement incX,
const double *  x,
const tLVectorIndex nRows,
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

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

Referenced by LAP_DoublePackedSymmetricMatrix::vectorProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Referenced by DoublePackedSymmetricMatrixCholeskyFactorization().

Here is the caller graph for this function:

void F77NAME() dspev ( const lapack_char jobz,
const lapack_char uplo,
const lapack_int N,
lapack_real S,
lapack_real W,
lapack_real Z,
lapack_int ldz,
lapack_real work,
lapack_int info 
)

Referenced by DoublePackedSymmetricMatrixEigenValues().

Here is the caller graph for this function:

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

Referenced by DoublePackedSymmetricMatrixBoundedEigenValues().

Here is the caller graph for this function:

void CNAME() dspmm ( const lapack_char side,
const lapack_int M,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_real B,
const lapack_int incB,
const lapack_int ldB,
const lapack_real beta,
lapack_real C,
const lapack_int incC,
const lapack_int ldc 
)

Referenced by DoublePackedSymmetricMatrixMatrixProduct().

Here is the caller graph for this function:

void CNAME() dspmspm ( const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_real B,
const lapack_real beta,
lapack_real C,
const lapack_int incC,
const lapack_int ldc 
)

Referenced by DoublePackedSymmetricMatrixMatrixProduct().

Here is the caller graph for this function:

void CNAME() dspmsym ( const lapack_char side,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_real B,
const lapack_int incB,
const lapack_int ldB,
const lapack_real beta,
lapack_real C,
const lapack_int incC,
const lapack_int ldc 
)

Referenced by DoublePackedSymmetricMatrixMatrixProduct().

Here is the caller graph for this function:

void F77NAME() dspmv ( const lapack_char uplo,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_real x,
const lapack_int incx,
const lapack_real beta,
lapack_real y,
const lapack_int incy 
)

Referenced by DoublePackedSymmetricMatrixVectorProduct().

Here is the caller graph for this function:

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

Referenced by DoublePackedSymmetricMatrixRankSymmetricProduct().

Here is the caller graph for this function:

void CNAME() dsprk ( 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 
)

Referenced by DoublePackedSymmetricMatrixKRankSymmetricProduct().

Here is the caller graph for this function:

void F77NAME() dsptrf ( const lapack_char uplo,
const lapack_int N,
lapack_real A,
lapack_int ipiv,
lapack_int info 
)

Referenced by DoublePackedSymmetricMatrixBunchKaufmanFactorization().

Here is the caller graph for this function:

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

Referenced by DoublePackedSymmetricMatrixInverse().

Here is the caller graph for this function: