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

Functions

void F77NAME() dtrmv (const lapack_char *uplo, const lapack_char *trans, const lapack_char *diag, const lapack_int *N, const lapack_real *A, const lapack_int *lda, lapack_real *x, const lapack_int *incx)
 
void F77NAME() dtrmm (const lapack_char *side, const lapack_char *uplo, const lapack_char *transA, const lapack_char *diag, const lapack_int *M, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, lapack_real *B, const lapack_int *ldb)
 
void F77NAME() dtrsv (const lapack_char *uplo, const lapack_char *transA, const lapack_char *diag, const lapack_int *N, const lapack_real *A, const lapack_int *lda, lapack_real *X, const lapack_int *incx)
 
void F77NAME() dtrsm (const lapack_char *side, const lapack_char *uplo, const lapack_char *transA, const lapack_char *diag, const lapack_int *M, const lapack_int *N, const lapack_real *alpha, const lapack_real *A, const lapack_int *lda, lapack_real *B, const lapack_int *ldb)
 solve A.X=B B:=X More...
 
void F77NAME() dtrtri (const lapack_char *uplo, const lapack_char *diag, const lapack_int *N, lapack_real *A, const lapack_int *lda, lapack_int *info)
 compute the inverse of triangular matrix More...
 
void F77NAME() dtrevc (const lapack_char *side, const lapack_char *howmny, const lapack_bool *select, const lapack_int *N, const lapack_real *T, const lapack_int *ldT, lapack_real *VL, const lapack_int *ldVL, lapack_real *VR, const lapack_int *ldVR, const lapack_int *MM, const lapack_int *M, lapack_real *work, lapack_int *info)
 
void DoubleFullUpperMatrixVectorProduct (const tBoolean &isTransA, const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, const double *A, const tLVectorIndex &nX, const tLVectorIncrement &incX, double *x)
 compute X=op(A). X where op(A)=A or op(A)=tA where A is Upper matrix More...
 
void DoubleFullUpperMatrixMatrixProduct (const tBoolean &isLeft, const tBoolean &isTransA, const tLVectorIndex &ldA, const double *A, const double &alpha, const tLVectorIndex &nRowsB, const tLVectorIndex &nColsB, const tLVectorIndex &ldB, double *B)
 coompute B:=alpha op(A).B or B:=alpha B . op(A) More...
 
bool DoubleFullUpperMatrixInverse (const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, double *A)
 compute the inverse of the matrix More...
 
void DoubleFullUpperMatrixVectorSolve (const tBoolean &isTransA, const tLVectorIndex &nARows, const tLVectorIndex &ldA, const double *A, const tLVectorIndex &nB, const tLVectorIncrement &incB, double *B)
 solve op(A).X=Y and Y:=X More...
 
tBoolean DoubleFullUpperMatrixSolve (const tBoolean &isLeft, const tBoolean &isTransA, const tLVectorIndex &ldA, const double *A, const double &alpha, const tLVectorIndex &nBRows, const tLVectorIndex &nBCols, const tLVectorIndex &ldB, double *B)
 
bool DoubleFullUpperMatrixEigenVector (const lapack_int &nRowsT, const lapack_int &ldT, const double *T, const lapack_int &ldlev, double *lev, const lapack_int &ldrev, double *rev)
 compute the eigen vector of the matrix More...
 

Function Documentation

bool DoubleFullUpperMatrixEigenVector ( const lapack_int nRowsT,
const lapack_int ldT,
const double *  T,
const lapack_int ldlev,
double *  lev,
const lapack_int ldrev,
double *  rev 
)

compute the eigen vector of the matrix

References dtrevc(), F77NAME, lapack_bool, lapack_char, lapack_int, lapack_real, null, and CORE_Integer::toString().

Referenced by LAP_DoubleFullUpperMatrix::computeEigenValueDecomposition().

Here is the call graph for this function:

Here is the caller graph for this function:

bool DoubleFullUpperMatrixInverse ( const tLVectorIndex nRowsA,
const tLVectorIndex ldA,
double *  A 
)

compute the inverse of the matrix

References dtrtri(), F77NAME, lapack_char, lapack_int, CORE_String::toString(), and tString.

Referenced by LAP_DoubleFullUpperMatrix::inverse().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullUpperMatrixMatrixProduct ( const tBoolean isLeft,
const tBoolean isTransA,
const tLVectorIndex ldA,
const double *  A,
const double &  alpha,
const tLVectorIndex nRowsB,
const tLVectorIndex nColsB,
const tLVectorIndex ldB,
double *  B 
)

coompute B:=alpha op(A).B or B:=alpha B . op(A)

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

Referenced by LAP_DoubleFullUpperMatrix::matrixProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean DoubleFullUpperMatrixSolve ( const tBoolean isLeft,
const tBoolean isTransA,
const tLVectorIndex ldA,
const double *  A,
const double &  alpha,
const tLVectorIndex nBRows,
const tLVectorIndex nBCols,
const tLVectorIndex ldB,
double *  B 
)

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

Referenced by LAP_DoubleFullUpperMatrix::solve().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullUpperMatrixVectorProduct ( const tBoolean isTransA,
const tLVectorIndex nRowsA,
const tLVectorIndex ldA,
const double *  A,
const tLVectorIndex nX,
const tLVectorIncrement incX,
double *  x 
)

compute X=op(A). X where op(A)=A or op(A)=tA where A is Upper matrix

Parameters
isTransAif true op(A)=tA otherwise op(A)=A
nRowsAnumber of rows of A
ldAdistance in memory netween A[i][j] and A[i][j+1]
Avalues of A stored by column
nXsize of x
incX:incrementof x
xvalues of x

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

Referenced by LAP_DoubleFullUpperMatrix::rankProduct(), and LAP_DoubleFullUpperMatrix::vectorProduct().

Here is the call graph for this function:

Here is the caller graph for this function:

void DoubleFullUpperMatrixVectorSolve ( const tBoolean isTransA,
const tLVectorIndex nARows,
const tLVectorIndex ldA,
const double *  A,
const tLVectorIndex nB,
const tLVectorIncrement incB,
double *  B 
)

solve op(A).X=Y and Y:=X

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

Referenced by LAP_DoubleFullUpperMatrix::solve().

Here is the call graph for this function:

Here is the caller graph for this function:

void F77NAME() dtrevc ( const lapack_char side,
const lapack_char howmny,
const lapack_bool select,
const lapack_int N,
const lapack_real T,
const lapack_int ldT,
lapack_real VL,
const lapack_int ldVL,
lapack_real VR,
const lapack_int ldVR,
const lapack_int MM,
const lapack_int M,
lapack_real work,
lapack_int info 
)

the eigen vector

DTREVC computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by DHSEQR.

The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by:

T*x = w*x, (y**H)*T = w*(y**H)

where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T.

This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

Referenced by DoubleFullUpperMatrixEigenVector().

Here is the caller graph for this function:

void F77NAME() dtrmm ( const lapack_char side,
const lapack_char uplo,
const lapack_char transA,
const lapack_char diag,
const lapack_int M,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
lapack_real B,
const lapack_int ldb 
)

Referenced by DoubleFullUpperMatrixMatrixProduct().

Here is the caller graph for this function:

void F77NAME() dtrmv ( const lapack_char uplo,
const lapack_char trans,
const lapack_char diag,
const lapack_int N,
const lapack_real A,
const lapack_int lda,
lapack_real x,
const lapack_int incx 
)

Referenced by DoubleFullUpperMatrixVectorProduct().

Here is the caller graph for this function:

void F77NAME() dtrsm ( const lapack_char side,
const lapack_char uplo,
const lapack_char transA,
const lapack_char diag,
const lapack_int M,
const lapack_int N,
const lapack_real alpha,
const lapack_real A,
const lapack_int lda,
lapack_real B,
const lapack_int ldb 
)

solve A.X=B B:=X

DTRSM solves one of the matrix equations

op( A )*X = alpha*B, or X*op( A ) = alpha*B,

where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of

op( A ) = A or op( A ) = A'.

The matrix X is overwritten on B. SUBROUTINE DTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)

Referenced by DoubleFullUpperMatrixSolve().

Here is the caller graph for this function:

void F77NAME() dtrsv ( const lapack_char uplo,
const lapack_char transA,
const lapack_char diag,
const lapack_int N,
const lapack_real A,
const lapack_int lda,
lapack_real X,
const lapack_int incx 
)

Referenced by DoubleFullUpperMatrixVectorSolve().

Here is the caller graph for this function:

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

compute the inverse of triangular matrix

Referenced by DoubleFullUpperMatrixInverse().

Here is the caller graph for this function: