MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
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 *  )