|
template<int dim> |
MFEM_HOST_DEVICE real_t | DistanceSquared (const real_t *x, const real_t *y) |
| Compute the square of the Euclidean distance to another vector.
|
|
template<int dim> |
MFEM_HOST_DEVICE void | Diag (const real_t c, real_t *data) |
| Creates n x n diagonal matrix with diagonal elements c.
|
|
template<int dim> |
MFEM_HOST_DEVICE void | Subtract (const real_t a, const real_t *x, const real_t *y, real_t *z) |
| Vector subtraction operation: z = a * (x - y)
|
|
template<int dim> |
MFEM_HOST_DEVICE void | AddMultVWt (const real_t *v, const real_t *w, real_t *VWt) |
| Dense matrix operation: VWt += v w^t.
|
|
template<int H, int W, typename T > |
MFEM_HOST_DEVICE void | FNorm (real_t &scale_factor, real_t &scaled_fnorm2, const T *data) |
|
template<int H, int W, typename T > |
MFEM_HOST_DEVICE real_t | FNorm (const T *data) |
| Compute the Frobenius norm of the matrix.
|
|
template<int H, int W, typename T > |
MFEM_HOST_DEVICE real_t | FNorm2 (const T *data) |
| Compute the square of the Frobenius norm of the matrix.
|
|
template<typename T > |
MFEM_HOST_DEVICE real_t | Norml2 (const int size, const T *data) |
| Returns the l2 norm of the Vector with given size and data.
|
|
template<typename TA , typename TX , typename TY > |
MFEM_HOST_DEVICE void | Mult (const int height, const int width, const TA *data, const TX *x, TY *y) |
| Matrix vector multiplication: y = A x, where the matrix A is of size height x width with given data, while x and y specify the data of the input and output vectors.
|
|
template<typename TA , typename TX , typename TY > |
MFEM_HOST_DEVICE void | MultTranspose (const int height, const int width, const TA *data, const TX *x, TY *y) |
| Matrix transpose vector multiplication: y = At x, where the matrix A is of size height x width with given data, while x and y specify the data of the input and output vectors.
|
|
template<typename T > |
MFEM_HOST_DEVICE void | Symmetrize (const int size, T *data) |
| Symmetrize a square matrix with given size and data: A -> (A+A^T)/2.
|
|
template<int dim, typename T > |
MFEM_HOST_DEVICE T | Det (const T *data) |
| Compute the determinant of a square matrix of size dim with given data.
|
|
template<int dim, typename T > |
MFEM_HOST_DEVICE void | CalcInverse (const T *data, T *inv_data) |
| Return the inverse of a matrix with given size and data into the matrix with data inv_data.
|
|
template<int dim, typename T > |
MFEM_HOST_DEVICE void | CalcAdjugate (const T *data, T *adj_data) |
| Return the adjugate of a matrix.
|
|
template<typename TALPHA , typename TA , typename TB , typename TC > |
MFEM_HOST_DEVICE void | Add (const int height, const int width, const TALPHA alpha, const TA *Adata, const TB *Bdata, TC *Cdata) |
| Compute C = A + alpha*B, where the matrices A, B and C are of size height x width with data Adata, Bdata and Cdata.
|
|
template<typename TALPHA , typename TBETA , typename TA , typename TB , typename TC > |
MFEM_HOST_DEVICE void | Add (const int height, const int width, const TALPHA alpha, const TA *Adata, const TBETA beta, const TB *Bdata, TC *Cdata) |
| Compute C = alpha*A + beta*B, where the matrices A, B and C are of size height x width with data Adata, Bdata and Cdata.
|
|
template<typename TA , typename TB > |
MFEM_HOST_DEVICE void | Add (const int height, const int width, const TA *Adata, TB *Bdata) |
| Compute B += A, where the matrices A and B are of size height x width with data Adata and Bdata.
|
|
template<typename TA , typename TB > |
MFEM_HOST_DEVICE void | Add (const int height, const int width, const real_t alpha, const TA *Adata, TB *Bdata) |
| Compute B +=alpha*A, where the matrices A and B are of size height x width with data Adata and Bdata.
|
|
template<typename TA , typename TB > |
MFEM_HOST_DEVICE void | Set (const int height, const int width, const real_t alpha, const TA *Adata, TB *Bdata) |
| Compute B = alpha*A, where the matrices A and B are of size height x width with data Adata and Bdata.
|
|
template<typename TA , typename TB , typename TC > |
MFEM_HOST_DEVICE void | Mult (const int Aheight, const int Awidth, const int Bwidth, const TB *Bdata, const TC *Cdata, TA *Adata) |
| Matrix-matrix multiplication: A = B * C, where the matrices A, B and C are of sizes Aheight x Awidth, Aheight x Bwidth and Bwidth x Awidth, respectively.
|
|
template<typename TA , typename TB , typename TC > |
MFEM_HOST_DEVICE void | MultABt (const int Aheight, const int Awidth, const int Bheight, const TA *Adata, const TB *Bdata, TC *ABtdata) |
| Multiply a matrix of size Aheight x Awidth and data Adata with the transpose of a matrix of size Bheight x Awidth and data Bdata: A * Bt. Return the result in a matrix with data ABtdata.
|
|
template<typename TA , typename TB , typename TC > |
MFEM_HOST_DEVICE void | MultAtB (const int Aheight, const int Awidth, const int Bwidth, const TA *Adata, const TB *Bdata, TC *AtBdata) |
| Multiply the transpose of a matrix of size Aheight x Awidth and data Adata with a matrix of size Aheight x Bwidth and data Bdata: At * B. Return the result in a matrix with data AtBdata.
|
|
template<int HEIGHT, int WIDTH> |
MFEM_HOST_DEVICE void | CalcLeftInverse (const real_t *data, real_t *left_inv) |
| Given a matrix of size 2x1, 3x1, or 3x2, compute the left inverse.
|
|
template<int dim> |
MFEM_HOST_DEVICE void | CalcEigenvalues (const real_t *data, real_t *lambda, real_t *vec) |
|
template<int dim> |
MFEM_HOST_DEVICE real_t | CalcSingularvalue (const real_t *data, const int i) |
| Return the i'th singular value of the matrix of size dim with given data.
|
|
template<> |
MFEM_HOST_DEVICE void | CalcLeftInverse< 2, 1 > (const real_t *d, real_t *left_inv) |
|
template<> |
MFEM_HOST_DEVICE void | CalcLeftInverse< 3, 1 > (const real_t *d, real_t *left_inv) |
|
template<> |
MFEM_HOST_DEVICE void | CalcLeftInverse< 3, 2 > (const real_t *d, real_t *left_inv) |
|
template<> |
MFEM_HOST_DEVICE void | CalcEigenvalues< 2 > (const real_t *data, real_t *lambda, real_t *vec) |
|
template<> |
MFEM_HOST_DEVICE void | CalcEigenvalues< 3 > (const real_t *data, real_t *lambda, real_t *vec) |
|
template<> |
MFEM_HOST_DEVICE real_t | CalcSingularvalue< 2 > (const real_t *data, const int i) |
| Return the i'th singular value of the matrix of size 2 with given data.
|
|
template<> |
MFEM_HOST_DEVICE real_t | CalcSingularvalue< 3 > (const real_t *data, const int i) |
| Return the i'th singular value of the matrix of size 3 with given data.
|
|
MFEM_HOST_DEVICE void | LUSolve (const real_t *data, const int m, const int *ipiv, real_t *x) |
| Assuming L.U = P.A for a factored matrix (m x m),.
|
|