C++ main module for mmsd Package
1.0
|
#include "lapack_functions.h"
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) |
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().
tBoolean DoubleFullSymmetricMatrixBunchKaufmanFactorization | ( | const tLVectorIndex & | nRows, |
const tLVectorIndex & | ldA, | ||
double * | A, | ||
lapack_int * | ipiv | ||
) |
References dsytrf(), F77NAME, getBlockSizeEnvironment(), lapack_char, lapack_int, and lapack_real.
tBoolean DoubleFullSymmetricMatrixCholeskyFactorization | ( | const tLVectorIndex & | nRowsA, |
const tLVectorIndex & | ldA, | ||
double * | A | ||
) |
References dpotrf(), F77NAME, lapack_char, lapack_int, and CORE_Integer::toString().
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().
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().
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().
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
isLeftSide | to compute A.B or B.A |
nRowsA | number of rows ofthe symmetric matrix A |
ldA | number of memeory displacement between A[i,j] and A[i,j+1] |
A | values of A stored by column |
nRowsB | number of rows of the matrix B |
nColsB | number of columns of the matrix B |
ldB | number of memory displacement between B[i,j] and B[i,j+1] |
isBSymmetric | if B is symmetric |
B | values of B stored by column |
alpha | alpha value |
beta | beta value |
nRowsC | number of rows of the matrix C |
nColsC | number of columns of the matrix C |
ldC | number of memory displacement between C[i,j] and C[i,j+1] |
C | values of C stored by column |
References CNAME, dsymm(), dsymsym(), F77NAME, lapack_char, and lapack_int.
Referenced by LAP_DoubleFullSymmetricMatrix::matrixProduct().
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().
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
nX | size of x |
incX | increment of x |
x | : values of x |
nRows | number of rows of A |
ldA | distance in memory netween A[i][j] and A[i][j+1] |
A | values of A stored by column |
alpha | alpha value |
beta | beta value |
nY | size of y |
incY:increment | of y |
y | values of y |
References dsymv(), F77NAME, lapack_char, and lapack_int.
Referenced by LAP_DoubleFullSymmetricMatrix::vectorProduct().