MFEM  v4.5.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Namespaces | Functions
densemat.cpp File Reference

Go to the source code of this file.

Namespaces

 mfem
 

Functions

void dgemm_ (char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *)
 
void dgetrf_ (int *, int *, double *, int *, int *, int *)
 
void dgetrs_ (char *, int *, int *, double *, int *, int *, double *, int *, int *)
 
void dgetri_ (int *N, double *A, int *LDA, int *IPIV, double *WORK, int *LWORK, int *INFO)
 
void dsyevr_ (char *JOBZ, char *RANGE, char *UPLO, int *N, double *A, int *LDA, double *VL, double *VU, int *IL, int *IU, double *ABSTOL, int *M, double *W, double *Z, int *LDZ, int *ISUPPZ, double *WORK, int *LWORK, int *IWORK, int *LIWORK, int *INFO)
 
void dsyev_ (char *JOBZ, char *UPLO, int *N, double *A, int *LDA, double *W, double *WORK, int *LWORK, int *INFO)
 
void dsygv_ (int *ITYPE, char *JOBZ, char *UPLO, int *N, double *A, int *LDA, double *B, int *LDB, double *W, double *WORK, int *LWORK, int *INFO)
 
void dgesvd_ (char *JOBU, char *JOBVT, int *M, int *N, double *A, int *LDA, double *S, double *U, int *LDU, double *VT, int *LDVT, double *WORK, int *LWORK, int *INFO)
 
void dtrsm_ (char *side, char *uplo, char *transa, char *diag, int *m, int *n, double *alpha, double *a, int *lda, double *b, int *ldb)
 
void dggev_ (char *jobvl, char *jobvr, int *n, double *a, int *lda, double *B, int *ldb, double *alphar, double *alphai, double *beta, double *vl, int *ldvl, double *vr, int *ldvr, double *work, int *lwork, int *info)
 
void dpotrf_ (char *, int *, double *, int *, int *)
 
void dpotrs_ (char *, int *, int *, double *, int *, double *, int *, int *)
 
void dtrtrs_ (char *, char *, char *, int *, int *, double *, int *, double *, int *, int *)
 
void dpotri_ (char *, int *, double *, int *, int *)
 
void mfem::dsyevr_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void mfem::dsyev_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void mfem::dsygv_Eigensystem (DenseMatrix &a, DenseMatrix &b, Vector &ev, DenseMatrix *evect)
 
void mfem::Add (const DenseMatrix &A, const DenseMatrix &B, double alpha, DenseMatrix &C)
 C = A + alpha*B. More...
 
void mfem::Add (double alpha, const double *A, double beta, const double *B, DenseMatrix &C)
 C = alpha*A + beta*B. More...
 
void mfem::Add (double alpha, const DenseMatrix &A, double beta, const DenseMatrix &B, DenseMatrix &C)
 C = alpha*A + beta*B. More...
 
bool mfem::LinearSolve (DenseMatrix &A, double *X, double TOL=1.e-9)
 Solves the dense linear system, A * X = B for X More...
 
void mfem::Mult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A = B * C. More...
 
void mfem::AddMult_a (double alpha, const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += alpha * B * C. More...
 
void mfem::AddMult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += B * C. More...
 
void mfem::CalcAdjugate (const DenseMatrix &a, DenseMatrix &adja)
 
void mfem::CalcAdjugateTranspose (const DenseMatrix &a, DenseMatrix &adjat)
 Calculate the transposed adjugate of a matrix (for NxN matrices, N=1,2,3) More...
 
void mfem::CalcInverse (const DenseMatrix &a, DenseMatrix &inva)
 
void mfem::CalcInverseTranspose (const DenseMatrix &a, DenseMatrix &inva)
 Calculate the inverse transpose of a matrix (for NxN matrices, N=1,2,3) More...
 
void mfem::CalcOrtho (const DenseMatrix &J, Vector &n)
 
void mfem::MultAAt (const DenseMatrix &a, DenseMatrix &aat)
 Calculate the matrix A.At. More...
 
void mfem::AddMultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt += A D A^t, where D is diagonal. More...
 
void mfem::MultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt = A D A^t, where D is diagonal. More...
 
void mfem::MultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 Multiply a matrix A with the transpose of a matrix B: A*Bt. More...
 
void mfem::MultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal. More...
 
void mfem::AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += A * B^t. More...
 
void mfem::AddMultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal. More...
 
void mfem::AddMult_a_ABt (double a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += a * A * B^t. More...
 
void mfem::MultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 Multiply the transpose of a matrix A with a matrix B: At*B. More...
 
void mfem::AddMult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt += a * A * A^t. More...
 
void mfem::Mult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt = a * A * A^t. More...
 
void mfem::MultVVt (const Vector &v, DenseMatrix &vvt)
 Make a matrix from a vector V.Vt. More...
 
void mfem::MultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
 
void mfem::AddMultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += v w^t. More...
 
void mfem::AddMultVVt (const Vector &v, DenseMatrix &VWt)
 VVt += v v^t. More...
 
void mfem::AddMult_a_VWt (const double a, const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += a * v w^t. More...
 
void mfem::AddMult_a_VVt (const double a, const Vector &v, DenseMatrix &VVt)
 VVt += a * v v^t. More...
 
void mfem::RAP (const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)
 
void mfem::RAP (const DenseMatrix &Rt, const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)
 
void mfem::BatchLUFactor (DenseTensor &Mlu, Array< int > &P, const double TOL=0.0)
 Compute the LU factorization of a batch of matrices. More...
 
void mfem::BatchLUSolve (const DenseTensor &Mlu, const Array< int > &P, Vector &X)
 Solve batch linear systems. More...
 

Function Documentation

void dgemm_ ( char *  ,
char *  ,
int *  ,
int *  ,
int *  ,
double *  ,
double *  ,
int *  ,
double *  ,
int *  ,
double *  ,
double *  ,
int *   
)
void dgesvd_ ( char *  JOBU,
char *  JOBVT,
int *  M,
int *  N,
double *  A,
int *  LDA,
double *  S,
double *  U,
int *  LDU,
double *  VT,
int *  LDVT,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void dgetrf_ ( int *  ,
int *  ,
double *  ,
int *  ,
int *  ,
int *   
)
void dgetri_ ( int *  N,
double *  A,
int *  LDA,
int *  IPIV,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void dgetrs_ ( char *  ,
int *  ,
int *  ,
double *  ,
int *  ,
int *  ,
double *  ,
int *  ,
int *   
)
void dggev_ ( char *  jobvl,
char *  jobvr,
int *  n,
double *  a,
int *  lda,
double *  B,
int *  ldb,
double *  alphar,
double *  alphai,
double *  beta,
double *  vl,
int *  ldvl,
double *  vr,
int *  ldvr,
double *  work,
int *  lwork,
int *  info 
)
void dpotrf_ ( char *  ,
int *  ,
double *  ,
int *  ,
int *   
)
void dpotri_ ( char *  ,
int *  ,
double *  ,
int *  ,
int *   
)
void dpotrs_ ( char *  ,
int *  ,
int *  ,
double *  ,
int *  ,
double *  ,
int *  ,
int *   
)
void dsyev_ ( char *  JOBZ,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  W,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void dsyevr_ ( char *  JOBZ,
char *  RANGE,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  VL,
double *  VU,
int *  IL,
int *  IU,
double *  ABSTOL,
int *  M,
double *  W,
double *  Z,
int *  LDZ,
int *  ISUPPZ,
double *  WORK,
int *  LWORK,
int *  IWORK,
int *  LIWORK,
int *  INFO 
)
void dsygv_ ( int *  ITYPE,
char *  JOBZ,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  B,
int *  LDB,
double *  W,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void dtrsm_ ( char *  side,
char *  uplo,
char *  transa,
char *  diag,
int *  m,
int *  n,
double *  alpha,
double *  a,
int *  lda,
double *  b,
int *  ldb 
)
void dtrtrs_ ( char *  ,
char *  ,
char *  ,
int *  ,
int *  ,
double *  ,
int *  ,
double *  ,
int *  ,
int *   
)