C++ main module for mmsd Package  1.0
dbandedsymmatrix_functions.h
Go to the documentation of this file.
1 #ifndef DBANDEDSYMMATRIX_FUNCTIONS
2 #define DBANDEDSYMMATRIX_FUNCTIONS
3 
4 #include "lapack_functions.h"
5 
9  const tLVectorIncrement& incX,
10  const double* x,
11  const tLVectorIndex& nRows,//number of viewed rows of A
12  const tLVectorIndex& nBands,//number of sub diagonals of A
13  const double* A,
14  const lapack_real& alpha,
15  const lapack_real& beta,
16  const tLVectorIndex& nY,
17  const tLVectorIncrement& incY,
18  double* y);
19 
20 
21 
22 //C=alpha*S.B+beta.C or C:=alpha.B.S+beta C where
23 // - S is band symetric and
24 // - B is full matrix and
25 // - C is full matrix
27  const tLVectorIndex& nSRows,
28  const tLVectorIndex& nSBands,
29  const double* S,
30  const tLVectorIndex& nBRows,
31  const tLVectorIndex& nBCols,
32  const tLVectorIncrement& incB,
33  const tLVectorIndex& ldB,
34  const double* B,
35  const lapack_real& alpha,
36  const lapack_real& beta,
37  const tLVectorIndex& nCRows,
38  const tLVectorIndex& nCCols,
39  const tLVectorIncrement& incC,
40  const tLVectorIndex& ldC,
41  double *C);
42 
47  const tLVectorIndex& nBandsA,
48  double* A,
49  const tLVectorIndex& nU,
50  double* U,
51  const tLVectorIndex& ldW,
52  double* W);
53 
64  const tLVectorIndex& nBandsA,
65  double* A,
66  const tLVectorIndex& nU,//of size M=N or M=iu-il+1
67  double* U,
68  const tLVectorIndex& minIndex,
69  const tLVectorIndex& maxIndex,
70  const double& minBound,
71  const double& maxBound,
72  const tLVectorIndex& ldQ,
73  double *Q,//of size nRowsA x nRowsA
74  const tLVectorIndex& ldW,//Z of size nRows x M
75  double *W);
76 
77 
78 
83  const tLVectorIndex& nBands,
84  double* A);
85 
86 #endif
tBoolean DoubleBandedSymmetricMatrixEigenValues(const tLVectorIndex &nRowsA, const tLVectorIndex &nBandsA, 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)
Definition: dbandedsymmatrix_functions.cpp:375
tBoolean DoubleBandedSymmetricMatrixBoundedEigenValues(const tLVectorIndex &nRowsA, const tLVectorIndex &nBandsA, double *A, const tLVectorIndex &nU, double *U, const tLVectorIndex &minIndex, const tLVectorIndex &maxIndex, const double &minBound, const double &maxBound, const tLVectorIndex &ldQ, double *Q, const tLVectorIndex &ldW, double *W)
compute the selected eigen values or vectors (if W is not null or ldW<=1) with
Definition: dbandedsymmatrix_functions.cpp:491
void DoubleBandedSymmetricMatrixVectorProduct(const tLVectorIndex &nX, const tLVectorIncrement &incX, const double *x, const tLVectorIndex &nRows, const tLVectorIndex &nBands, 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
Definition: dbandedsymmatrix_functions.cpp:108
#define tBoolean
Definition: types.h:48
#define lapack_real
Definition: lapack_functions.h:9
tBoolean DoubleBandedSymmetricMatrixCholeskyFactorization(const tLVectorIndex &nRows, const tLVectorIndex &nBands, double *A)
make the cholesky factorization A=tU.U
Definition: dbandedsymmatrix_functions.cpp:707
#define tLVectorIndex
Definition: lapack_types.h:13
void DoubleBandedSymmetricMatrixMatrixProduct(const tBoolean &isLeftSide, const tLVectorIndex &nSRows, const tLVectorIndex &nSBands, const double *S, const tLVectorIndex &nBRows, const tLVectorIndex &nBCols, const tLVectorIncrement &incB, const tLVectorIndex &ldB, const double *B, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nCRows, const tLVectorIndex &nCCols, const tLVectorIncrement &incC, const tLVectorIndex &ldC, double *C)
Definition: dbandedsymmatrix_functions.cpp:256
#define tLVectorIncrement
Definition: lapack_types.h:16