class performing Adaptive Cross Approximation
More...
#include <aca.hpp>
|
template<class Matrix , class RowArray , class ColumnArray , class BlockArray , class Input , class Output , class Ranks > |
void | multiply (Matrix const &M, Eigen::DenseBase< RowArray > const &rowClusters, Eigen::DenseBase< ColumnArray > const &colClusters, Eigen::DenseBase< BlockArray > const &blocks, Input const &input, Output &output, double eps, int maxRank, Ranks &outRanks) |
| Compute matrix-vector product with multilevel low rank approximation. More...
|
|
int | get_nEval (void) const |
| return number of matrix evaluations
|
|
int | get_matrixSize (void) const |
| number of matrix elements in processed blocks
|
|
double | get_sizeCompression (void) const |
| return the size compression ratio
|
|
|
template<class Matrix , class Result > |
static int | low_rank_approx (Matrix const &M, int nRows, int nCols, double eps, int R, Eigen::DenseBase< Result > &U, Eigen::DenseBase< Result > &V) |
| compute low rank approximation of a matrix with a prescribed accuracy and maximum rank More...
|
|
template<class Matrix , class RowArray , class ColumnArray , class BlockArray > |
static std::vector< LowRank< typename Matrix::Scalar > > | decompose (Matrix const &M, Eigen::DenseBase< RowArray > const &rowClusters, Eigen::DenseBase< ColumnArray > const &colClusters, Eigen::DenseBase< BlockArray > const &blocks, double eps, int maxRank) |
| decompose a matrix into ACA low rank decomposition More...
|
|
class performing Adaptive Cross Approximation
Definition at line 71 of file aca.hpp.
◆ decompose()
template<class Matrix , class RowArray , class ColumnArray , class BlockArray >
static std::vector<LowRank<typename Matrix::Scalar> > ACA::decompose |
( |
Matrix const & |
M, |
|
|
Eigen::DenseBase< RowArray > const & |
rowClusters, |
|
|
Eigen::DenseBase< ColumnArray > const & |
colClusters, |
|
|
Eigen::DenseBase< BlockArray > const & |
blocks, |
|
|
double |
eps, |
|
|
int |
maxRank |
|
) |
| |
|
inlinestatic |
decompose a matrix into ACA low rank decomposition
- Template Parameters
-
Matrix | |
RowArray | |
ColumnArray | |
BlockArray | |
- Parameters
-
[in] | M | the matrix to decompose |
[in] | rowClusters | the matrix of row clusters |
[in] | colCluster | the matrix of column clusters |
[in] | blocks | the matrix of block indices |
- Returns
- a std::vector of LowRank objects representing the LRA
Definition at line 285 of file aca.hpp.
◆ low_rank_approx()
template<class Matrix , class Result >
static int ACA::low_rank_approx |
( |
Matrix const & |
M, |
|
|
int |
nRows, |
|
|
int |
nCols, |
|
|
double |
eps, |
|
|
int |
R, |
|
|
Eigen::DenseBase< Result > & |
U, |
|
|
Eigen::DenseBase< Result > & |
V |
|
) |
| |
|
inlinestatic |
compute low rank approximation of a matrix with a prescribed accuracy and maximum rank
The low rank approximation is of the form M = U * V.transpose()
- Template Parameters
-
Matrix | the matrix class |
Result | the type of the result (Eigen matrix) |
- Parameters
-
[in] | M | the matrix to approximate |
[in] | nRows | the number of matrix rows |
[in] | nCols | the number of matrix cols |
[in] | eps | the prescribed approximation accuracy |
[in] | R | the maximum rank (number of iterations) |
[out] | U | lhs term of the approximation |
[out] | V | rhs term of the approximation |
- Returns
- the actual rank of the approximation ( <= R )
Definition at line 135 of file aca.hpp.
◆ multiply()
template<class Matrix , class RowArray , class ColumnArray , class BlockArray , class Input , class Output , class Ranks >
void ACA::multiply |
( |
Matrix const & |
M, |
|
|
Eigen::DenseBase< RowArray > const & |
rowClusters, |
|
|
Eigen::DenseBase< ColumnArray > const & |
colClusters, |
|
|
Eigen::DenseBase< BlockArray > const & |
blocks, |
|
|
Input const & |
input, |
|
|
Output & |
output, |
|
|
double |
eps, |
|
|
int |
maxRank, |
|
|
Ranks & |
outRanks |
|
) |
| |
|
inline |
Compute matrix-vector product with multilevel low rank approximation.
- Template Parameters
-
Matrix | the matrix class |
RowArray | type of the array storing the row cluster tree |
ColumnArray | type of the array storing the column cluster tree |
BlockArray | type of the array storing the block tree |
Input | type of the input vector |
Output | type of the output vector |
- Parameters
-
[in] | rowClusters | the row cluster tree as Eigen matrix |
[in] | colClusters | the column cluster tree as Eigen matrix |
[in] | blocks | the block tree as Eigen matrix |
[in] | input | the input vector |
[out] | output | the output vector |
[in] | eps | the ACA approximation error |
[in] | maxRank | the maximal ACA approximation rank |
Definition at line 217 of file aca.hpp.
The documentation for this class was generated from the following file: