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

Go to the source code of this file.

Namespaces

namespace  mfem
 

Functions

void sgemm_ (char *, char *, int *, int *, int *, float *, float *, int *, float *, int *, float *, float *, int *)
 
void sgetrf_ (int *, int *, float *, int *, int *, int *)
 
void sgetrs_ (char *, int *, int *, float *, int *, int *, float *, int *, int *)
 
void sgetri_ (int *N, float *A, int *LDA, int *IPIV, float *WORK, int *LWORK, int *INFO)
 
void ssyevr_ (char *JOBZ, char *RANGE, char *UPLO, int *N, float *A, int *LDA, float *VL, float *VU, int *IL, int *IU, float *ABSTOL, int *M, float *W, float *Z, int *LDZ, int *ISUPPZ, float *WORK, int *LWORK, int *IWORK, int *LIWORK, int *INFO)
 
void ssyev_ (char *JOBZ, char *UPLO, int *N, float *A, int *LDA, float *W, float *WORK, int *LWORK, int *INFO)
 
void ssygv_ (int *ITYPE, char *JOBZ, char *UPLO, int *N, float *A, int *LDA, float *B, int *LDB, float *W, float *WORK, int *LWORK, int *INFO)
 
void sgesvd_ (char *JOBU, char *JOBVT, int *M, int *N, float *A, int *LDA, float *S, float *U, int *LDU, float *VT, int *LDVT, float *WORK, int *LWORK, int *INFO)
 
void strsm_ (char *side, char *uplo, char *transa, char *diag, int *m, int *n, float *alpha, float *a, int *lda, float *b, int *ldb)
 
void sggev_ (char *jobvl, char *jobvr, int *n, float *a, int *lda, float *B, int *ldb, float *alphar, float *alphai, float *beta, float *vl, int *ldvl, float *vr, int *ldvr, float *work, int *lwork, int *info)
 
void spotrf_ (char *, int *, float *, int *, int *)
 
void spotrs_ (char *, int *, int *, float *, int *, float *, int *, int *)
 
void strtrs_ (char *, char *, char *, int *, int *, float *, int *, float *, int *, int *)
 
void spotri_ (char *, int *, float *, int *, int *)
 
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, real_t alpha, DenseMatrix &C)
 C = A + alpha*B.
 
void mfem::Add (real_t alpha, const real_t *A, real_t beta, const real_t *B, DenseMatrix &C)
 C = alpha*A + beta*B.
 
void mfem::Add (real_t alpha, const DenseMatrix &A, real_t beta, const DenseMatrix &B, DenseMatrix &C)
 C = alpha*A + beta*B.
 
bool mfem::LinearSolve (DenseMatrix &A, real_t *X, real_t TOL=1.e-9)
 Solves the dense linear system, A * X = B for X
 
void mfem::Mult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A = B * C.
 
void mfem::AddMult_a (real_t alpha, const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += alpha * B * C.
 
void mfem::AddMult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += B * C.
 
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)
 
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)
 
void mfem::CalcOrtho (const DenseMatrix &J, Vector &n)
 
void mfem::MultAAt (const DenseMatrix &a, DenseMatrix &aat)
 Calculate the matrix A.At.
 
void mfem::AddMultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt += A D A^t, where D is diagonal.
 
void mfem::MultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt = A D A^t, where D is diagonal.
 
void mfem::MultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 Multiply a matrix A with the transpose of a matrix B: A*Bt.
 
void mfem::MultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal.
 
void mfem::AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += A * B^t.
 
void mfem::AddMultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal.
 
void mfem::AddMult_a_ABt (real_t a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += a * A * B^t.
 
void mfem::MultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 Multiply the transpose of a matrix A with a matrix B: At*B.
 
void mfem::AddMultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 AtB += A^t * B.
 
void mfem::AddMult_a_AtB (real_t a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 AtB += a * A^t * B.
 
void mfem::AddMult_a_AAt (real_t a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt += a * A * A^t.
 
void mfem::Mult_a_AAt (real_t a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt = a * A * A^t.
 
void mfem::MultVVt (const Vector &v, DenseMatrix &vvt)
 Make a matrix from a vector V.Vt.
 
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.
 
void mfem::AddMultVVt (const Vector &v, DenseMatrix &VWt)
 VVt += v v^t.
 
void mfem::AddMult_a_VWt (const real_t a, const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += a * v w^t.
 
void mfem::AddMult_a_VVt (const real_t a, const Vector &v, DenseMatrix &VVt)
 VVt += a * v v^t.
 
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 real_t TOL=0.0)
 Compute the LU factorization of a batch of matrices.
 
void mfem::BatchLUSolve (const DenseTensor &Mlu, const Array< int > &P, Vector &X)
 Solve batch linear systems.
 

Function Documentation

◆ dgemm_()

void dgemm_ ( char * ,
char * ,
int * ,
int * ,
int * ,
double * ,
double * ,
int * ,
double * ,
int * ,
double * ,
double * ,
int *  )

◆ dgesvd_()

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 )

◆ dgetrf_()

void dgetrf_ ( int * ,
int * ,
double * ,
int * ,
int * ,
int *  )

◆ dgetri_()

void dgetri_ ( int * N,
double * A,
int * LDA,
int * IPIV,
double * WORK,
int * LWORK,
int * INFO )

◆ dgetrs_()

void dgetrs_ ( char * ,
int * ,
int * ,
double * ,
int * ,
int * ,
double * ,
int * ,
int *  )

◆ dggev_()

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 )

◆ dpotrf_()

void dpotrf_ ( char * ,
int * ,
double * ,
int * ,
int *  )

◆ dpotri_()

void dpotri_ ( char * ,
int * ,
double * ,
int * ,
int *  )

◆ dpotrs_()

void dpotrs_ ( char * ,
int * ,
int * ,
double * ,
int * ,
double * ,
int * ,
int *  )

◆ dsyev_()

void dsyev_ ( char * JOBZ,
char * UPLO,
int * N,
double * A,
int * LDA,
double * W,
double * WORK,
int * LWORK,
int * INFO )

◆ dsyevr_()

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 )

◆ dsygv_()

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 )

◆ dtrsm_()

void dtrsm_ ( char * side,
char * uplo,
char * transa,
char * diag,
int * m,
int * n,
double * alpha,
double * a,
int * lda,
double * b,
int * ldb )

◆ dtrtrs_()

void dtrtrs_ ( char * ,
char * ,
char * ,
int * ,
int * ,
double * ,
int * ,
double * ,
int * ,
int *  )

◆ sgemm_()

void sgemm_ ( char * ,
char * ,
int * ,
int * ,
int * ,
float * ,
float * ,
int * ,
float * ,
int * ,
float * ,
float * ,
int *  )

◆ sgesvd_()

void sgesvd_ ( char * JOBU,
char * JOBVT,
int * M,
int * N,
float * A,
int * LDA,
float * S,
float * U,
int * LDU,
float * VT,
int * LDVT,
float * WORK,
int * LWORK,
int * INFO )

◆ sgetrf_()

void sgetrf_ ( int * ,
int * ,
float * ,
int * ,
int * ,
int *  )

◆ sgetri_()

void sgetri_ ( int * N,
float * A,
int * LDA,
int * IPIV,
float * WORK,
int * LWORK,
int * INFO )

◆ sgetrs_()

void sgetrs_ ( char * ,
int * ,
int * ,
float * ,
int * ,
int * ,
float * ,
int * ,
int *  )

◆ sggev_()

void sggev_ ( char * jobvl,
char * jobvr,
int * n,
float * a,
int * lda,
float * B,
int * ldb,
float * alphar,
float * alphai,
float * beta,
float * vl,
int * ldvl,
float * vr,
int * ldvr,
float * work,
int * lwork,
int * info )

◆ spotrf_()

void spotrf_ ( char * ,
int * ,
float * ,
int * ,
int *  )

◆ spotri_()

void spotri_ ( char * ,
int * ,
float * ,
int * ,
int *  )

◆ spotrs_()

void spotrs_ ( char * ,
int * ,
int * ,
float * ,
int * ,
float * ,
int * ,
int *  )

◆ ssyev_()

void ssyev_ ( char * JOBZ,
char * UPLO,
int * N,
float * A,
int * LDA,
float * W,
float * WORK,
int * LWORK,
int * INFO )

◆ ssyevr_()

void ssyevr_ ( char * JOBZ,
char * RANGE,
char * UPLO,
int * N,
float * A,
int * LDA,
float * VL,
float * VU,
int * IL,
int * IU,
float * ABSTOL,
int * M,
float * W,
float * Z,
int * LDZ,
int * ISUPPZ,
float * WORK,
int * LWORK,
int * IWORK,
int * LIWORK,
int * INFO )

◆ ssygv_()

void ssygv_ ( int * ITYPE,
char * JOBZ,
char * UPLO,
int * N,
float * A,
int * LDA,
float * B,
int * LDB,
float * W,
float * WORK,
int * LWORK,
int * INFO )

◆ strsm_()

void strsm_ ( char * side,
char * uplo,
char * transa,
char * diag,
int * m,
int * n,
float * alpha,
float * a,
int * lda,
float * b,
int * ldb )

◆ strtrs_()

void strtrs_ ( char * ,
char * ,
char * ,
int * ,
int * ,
float * ,
int * ,
float * ,
int * ,
int *  )