![]() |
SG++-Doxygen-Documentation
|
DBMatOfflineChol specialization that uses a parallel, iterative incomplete cholesky factorization on a dense matrix. More...
#include <DBMatOfflineDenseIChol.hpp>
Public Member Functions | |
void | choleskyModification (Grid &grid, datadriven::DensityEstimationConfiguration &densityEstimationConfig, size_t newPoints, std::vector< size_t > &deletedPoints, double lambda) override |
Updates offline cholesky factorization based on coarsed (deletedPoints) and refined (newPoints) gridPoints. | |
DBMatOffline * | clone () const override |
Interface for the clone idiom. | |
DBMatOfflineDenseIChol () | |
DBMatOfflineDenseIChol (const std::string &fileName) | |
void | decomposeMatrix (const RegularizationConfiguration ®ularizationConfig, const DensityEstimationConfiguration &densityEstimationConfig) override |
Decomposes the matrix according to the chosen decomposition type. | |
sgpp::datadriven::MatrixDecompositionType | getDecompositionType () override |
Returns the decomposition type of the DBMatOffline object. | |
![]() | |
void | compute_inverse () override |
void | compute_inverse_parallel (std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) override |
parallel/distributed version of compute_inverse() | |
DBMatOfflineChol () | |
DBMatOfflineChol (const std::string &fileName) | |
void | decomposeMatrixParallel (RegularizationConfiguration ®ularizationConfig, DensityEstimationConfiguration &densityEstimationConfig, std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) override |
The parallel/distributed version of decomposeMatrix(...) | |
const DataMatrix & | getUnmodifiedR () override |
Get the unmodified (without added lambda) system matrix R. | |
const DataMatrixDistributed & | getUnmodifiedRDistributed (std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) override |
Get the unmodified (without added lambda) system matrix R. | |
bool | isRefineable () override |
Only Offline objects based on Cholesky decomposition, or orthogonal adaptivity can be refined. | |
void | updateRegularization (double lambda) override |
Modifies the decomposition to update the regularization parameter lambda. | |
void | updateRegularizationParallel (double lambda, std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) override |
Modifies the parallel decomposition to update the regularization parameter lambda. | |
![]() | |
void | buildMatrix (Grid *grid, const RegularizationConfiguration ®ularizationConfig) override |
Builds the right hand side matrix with identity regularization term. | |
DBMatOfflineGE (const std::string &fileName) | |
![]() | |
void | compute_L2_refine_vectors (DataMatrix *mat_refine, Grid *grid, size_t newPoints) |
computes vectors of L2 products of grid points for refinement | |
DBMatOffline (const DBMatOffline &rhs) | |
Copy Constructor. | |
DBMatOffline (const std::string &fileName) | |
Constructor Create offline object from serialized offline object. | |
DBMatOffline (DBMatOffline &&rhs)=default | |
Default move constructor. | |
DataMatrixDistributed & | getDecomposedInverseDistributed () |
Get a reference to the distributed decomposed matrix, analogously to getDecomposedMatrixDistributed() | |
DataMatrix & | getDecomposedMatrix () |
Get a reference to the decomposed matrix. | |
DataMatrixDistributed & | getDecomposedMatrixDistributed () |
Get a reference to the distributed decomposed matrix. | |
virtual size_t | getGridSize () |
Returns the dimensionality of the quadratic lhs matrix (i.e. | |
DataMatrix & | getInverseMatrix () |
Get a reference to the inverse matrix. | |
DataMatrix & | getLhsMatrix_ONLY_FOR_TESTING () |
Allows access to lhs matrix, which is meant ONLY FOR TESTING. | |
DBMatOffline & | operator= (const DBMatOffline &rhs) |
Default copy assign operator. | |
DBMatOffline & | operator= (DBMatOffline &&rhs)=default |
Default move assign operator. | |
void | printMatrix () |
Prints the matrix onto standard output. | |
virtual void | store (const std::string &fileName) |
Serialize the DBMatOffline Object. | |
virtual void | syncDistributedDecomposition (std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) |
Synchronizes the decomposed matrix. | |
virtual void | syncDistributedInverse (std::shared_ptr< BlacsProcessGrid > processGrid, const ParallelConfiguration ¶llelConfig) |
Synchronizes the inverse matrix. | |
virtual | ~DBMatOffline ()=default |
Default virtual destructor. | |
Static Public Member Functions | |
static void | ichol (const DataMatrix &matrix, DataMatrix &result, size_t sweeps=4, size_t startRow=0) |
perform parlallel incomplete cholesky factorization of a matrix. | |
Additional Inherited Members | |
![]() | |
std::set< std::set< size_t > > | interactions |
![]() | |
void | choleskyAddPoint (DataVector &newCol, size_t size) |
Updates the cholesky factor when a new grid point is added (e.g. | |
void | choleskyPermutation (size_t k, size_t l, size_t job) |
Permutes the rows of the cholesky factor based on permutations of the system matrix (e.g. | |
![]() | |
DBMatOfflineGE () | |
![]() | |
DBMatOffline () | |
void | parseInter (const std::string &fileName, std::set< std::set< size_t > > &interactions) const |
Read the Interactionsterms from a serialized DBMatOfflibe object. | |
![]() | |
bool | isConstructed |
bool | isDecomposed |
DataMatrixDistributed | lhsDistributed |
DataMatrixDistributed | lhsDistributedInverse |
DataMatrix | lhsInverse |
DataMatrix | lhsMatrix |
DBMatOfflineChol specialization that uses a parallel, iterative incomplete cholesky factorization on a dense matrix.
The current implementation is a proof of concept.
sgpp::datadriven::DBMatOfflineDenseIChol::DBMatOfflineDenseIChol | ( | ) |
|
explicit |
|
overridevirtual |
Updates offline cholesky factorization based on coarsed (deletedPoints) and refined (newPoints) gridPoints.
We ignore coarsening.
grid | the underlying grid |
densityEstimationConfig | configuration for the density estimation |
newPoints | amount of refined points |
deletedPoints | list of indices of last coarsed points that are ignored. |
lambda | the regularization parameter |
Reimplemented from sgpp::datadriven::DBMatOfflineChol.
References sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNrows(), grid(), ichol(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsRefine_, lambda, level, sgpp::datadriven::DBMatOffline::lhsMatrix, and sgpp::base::DataMatrix::set().
|
overridevirtual |
Interface for the clone idiom.
Reimplemented from sgpp::datadriven::DBMatOfflineChol.
|
overridevirtual |
Decomposes the matrix according to the chosen decomposition type.
The number of rows of the stored result depends on the decomposition type.
regularizationConfig | the regularization configuration |
densityEstimationConfig | the density estimation configuration |
Reimplemented from sgpp::datadriven::DBMatOfflineChol.
References sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), ichol(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsDecompose_, sgpp::datadriven::DBMatOffline::isConstructed, sgpp::datadriven::DBMatOffline::isDecomposed, sgpp::datadriven::DBMatOffline::lhsMatrix, and sgpp::base::DataMatrix::set().
|
overridevirtual |
Returns the decomposition type of the DBMatOffline object.
Reimplemented from sgpp::datadriven::DBMatOfflineChol.
References sgpp::datadriven::DenseIchol.
|
static |
perform parlallel incomplete cholesky factorization of a matrix.
This is an out of place operation.
matrix | the matrix to be decomposed |
result | data matrix that will hold the decomposed matrix |
sweeps | how many iterations of the algorithm are required until the result is good enough? |
startRow | on which row to start the decomposition (needed for refinement) |
References sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getSize(), and sgpp::base::DataMatrix::set().
Referenced by choleskyModification(), sgpp::datadriven::DBMatDMSDenseIChol::choleskyUpdateLambda(), and decomposeMatrix().