|
template<typename A_layout , typename B_layout , typename X_layout > |
void | batchQRPivotingSolve (ParallelManager pm, double *A, int lda, int nda, double *B, int ldb, int ndb, int M, int N, int NRHS, const int num_matrices, const bool implicit_RHS=true) |
| Solves a batch of problems with QR+Pivoting. More...
|
|
template void | batchQRPivotingSolve< layout_right, layout_right, layout_right > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_right, layout_right, layout_left > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_right, layout_left, layout_right > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_right, layout_left, layout_left > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_left, layout_right, layout_right > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_left, layout_right, layout_left > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_left, layout_left, layout_right > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
template void | batchQRPivotingSolve< layout_left, layout_left, layout_left > (ParallelManager, double *, int, int, double *, int, int, int, int, int, const int, const bool) |
|
KOKKOS_INLINE_FUNCTION void | largestTwoEigenvectorsThreeByThreeSymmetric (const member_type &teamMember, scratch_matrix_right_type V, scratch_matrix_right_type PtP, const int dimensions, pool_type &random_number_pool) |
| Calculates two eigenvectors corresponding to two dominant eigenvalues. More...
|
|
template<typename A_layout , typename B_layout , typename X_layout >
void Compadre::GMLS_LinearAlgebra::batchQRPivotingSolve |
( |
ParallelManager |
pm, |
|
|
double * |
A, |
|
|
int |
lda, |
|
|
int |
nda, |
|
|
double * |
B, |
|
|
int |
ldb, |
|
|
int |
ndb, |
|
|
int |
M, |
|
|
int |
N, |
|
|
int |
NRHS, |
|
|
const int |
num_matrices, |
|
|
const bool |
implicit_RHS = true |
|
) |
| |
Solves a batch of problems with QR+Pivoting.
~ Note: Very strong assumption on B. ~
A contains num_matrices * lda * nda data which is num_matrices different (lda x nda) matrices with valid entries of size (M x N), and B contains num_matrices * ldb * ndb data which is num_matrices different (ldb x ndb) right hand sides. B is assumed to have one of two forms:
- \(M==N\), the valid entries are the first (N X NRHS)
- \(M>N\), the valid entries are the first (NRHS) i.e. for this case, B is intended to store non-zero entries from a diagonal matrix (as a vector). For the \(k^{th}\) matrix, the (m,m) entry of a diagonal matrix would here be stored in the \(m^{th}\) position.
- Parameters
-
pm | [in] - manager class for team and thread parallelism |
A | [in/out] - matrix A (in), meaningless workspace output (out) |
lda | [in] - row dimension of each matrix in A |
nda | [in] - columns dimension of each matrix in A |
B | [in/out] - right hand sides (in), solution (out) |
ldb | [in] - row dimension of each matrix in B |
ndb | [in] - column dimension of each matrix in B |
M | [in] - number of rows containing data (maximum rows over everything in batch) in A |
N | [in] - number of columns containing data in each matrix in A |
NRHS | [in] - number of columns containing data in each matrix in B |
num_matrices | [in] - number of problems |
implicit_RHS | [in] - determines whether RHS will be stored implicitly. If true, instead of RHS storing the full sqrt(W) explicitly, only the diagonal entries of sqrt(W) will be stored as a 1D array beginning at entry with matrix coordinate (0,0). |
Definition at line 196 of file Compadre_LinearAlgebra.cpp.