SG++-Doxygen-Documentation
sgpp::datadriven::DBMatOfflineDenseIChol Class Reference

DBMatOfflineChol specialization that uses a parallel, iterative incomplete cholesky factorization on a dense matrix. More...

#include <DBMatOfflineDenseIChol.hpp>

Inheritance diagram for sgpp::datadriven::DBMatOfflineDenseIChol:
sgpp::datadriven::DBMatOfflineChol sgpp::datadriven::DBMatOfflineGE sgpp::datadriven::DBMatOffline

Public Member Functions

void choleskyModification (Grid &grid, datadriven::DensityEstimationConfiguration &densityEstimationConfig, size_t newPoints, std::list< size_t > deletedPoints, double lambda) override
 Updates offline cholesky factorization based on coarsed (deletedPoints) and refined (newPoints) gridPoints. More...
 
DBMatOfflineclone () override
 Interface for the clone idiom. More...
 
 DBMatOfflineDenseIChol ()
 
 DBMatOfflineDenseIChol (const std::string &fileName)
 
void decomposeMatrix (RegularizationConfiguration &regularizationConfig, DensityEstimationConfiguration &densityEstimationConfig) override
 Decomposes the matrix according to the chosen decomposition type. More...
 
sgpp::datadriven::MatrixDecompositionType getDecompositionType () override
 Returns the decomposition type of the DBMatOffline object. More...
 
- Public Member Functions inherited from sgpp::datadriven::DBMatOfflineChol
 DBMatOfflineChol ()
 
 DBMatOfflineChol (const std::string &fileName)
 
bool isRefineable () override
 Only Offline objects based on Cholesky decomposition, or orthogonal adaptivity can be refined. More...
 
- Public Member Functions inherited from sgpp::datadriven::DBMatOfflineGE
void buildMatrix (Grid *grid, RegularizationConfiguration &regularizationConfig) override
 Builds the right hand side matrix with identity regularization term. More...
 
 DBMatOfflineGE (const std::string &fileName)
 
- Public Member Functions inherited from sgpp::datadriven::DBMatOffline
 DBMatOffline (const std::string &fileName)
 Constructor Create offline object from serialized offline object. More...
 
 DBMatOffline (const DBMatOffline &rhs)
 Copy Constructor. More...
 
 DBMatOffline (DBMatOffline &&rhs)=default
 Default move constructor. More...
 
DataMatrixgetDecomposedMatrix ()
 Get a reference to the decomposed matrix. More...
 
virtual size_t getGridSize ()
 Returns the dimensionality of the quadratic lhs matrix (i.e. More...
 
DataMatrixgetLhsMatrix_ONLY_FOR_TESTING ()
 Allows access to lhs matrix, which is meant ONLY FOR TESTING. More...
 
DBMatOfflineoperator= (const DBMatOffline &rhs)
 Default copy assign operator. More...
 
DBMatOfflineoperator= (DBMatOffline &&rhs)=default
 Default move assign operator. More...
 
void printMatrix ()
 Prints the matrix onto standard output. More...
 
virtual void store (const std::string &fileName)
 Serialize the DBMatOffline Object. More...
 
virtual ~DBMatOffline ()=default
 Default virtual destructor. More...
 

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. More...
 

Additional Inherited Members

- Public Attributes inherited from sgpp::datadriven::DBMatOffline
std::vector< std::vector< size_t > > interactions
 
- Protected Member Functions inherited from sgpp::datadriven::DBMatOfflineChol
void choleskyAddPoint (DataVector &newCol, size_t size)
 Updates the cholesky factor when a new grid point is added (e.g. More...
 
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. More...
 
- Protected Member Functions inherited from sgpp::datadriven::DBMatOfflineGE
 DBMatOfflineGE ()
 
- Protected Member Functions inherited from sgpp::datadriven::DBMatOffline
 DBMatOffline ()
 
void parseInter (const std::string &fileName, std::vector< std::vector< size_t >> &interactions) const
 Read the Interactionsterms from a serialized DBMatOfflibe object. More...
 
- Protected Attributes inherited from sgpp::datadriven::DBMatOffline
bool isConstructed
 
bool isDecomposed
 
DataMatrix lhsMatrix
 

Detailed Description

DBMatOfflineChol specialization that uses a parallel, iterative incomplete cholesky factorization on a dense matrix.

The current implementation is a proof of concept.

Constructor & Destructor Documentation

◆ DBMatOfflineDenseIChol() [1/2]

sgpp::datadriven::DBMatOfflineDenseIChol::DBMatOfflineDenseIChol ( )

◆ DBMatOfflineDenseIChol() [2/2]

sgpp::datadriven::DBMatOfflineDenseIChol::DBMatOfflineDenseIChol ( const std::string &  fileName)
explicit

Member Function Documentation

◆ choleskyModification()

void sgpp::datadriven::DBMatOfflineDenseIChol::choleskyModification ( Grid grid,
datadriven::DensityEstimationConfiguration densityEstimationConfig,
size_t  newPoints,
std::list< size_t >  deletedPoints,
double  lambda 
)
overridevirtual

Updates offline cholesky factorization based on coarsed (deletedPoints) and refined (newPoints) gridPoints.

We ignore coarsening.

Parameters
gridthe underlying grid
densityEstimationConfigconfiguration for the density estimation
newPointsamount of refined points
deletedPointslist of indices of last coarsed points that are ignored.
lambdathe regularization parameter

Reimplemented from sgpp::datadriven::DBMatOfflineChol.

References sgpp::base::DataMatrix::get(), sgpp::base::Grid::getDimension(), sgpp::base::HashGridStorage::getLevelIndexArraysForEval(), sgpp::base::DataMatrix::getNrows(), sgpp::base::Grid::getSize(), sgpp::base::Grid::getStorage(), python.statsfileInfo::i, ichol(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsRefine_, python.utils.statsfile2gnuplot::j, lambda, level, sgpp::datadriven::DBMatOffline::lhsMatrix, sgpp::base::DataMatrix::set(), and python.utils.pca_normalize_dataset::u.

◆ clone()

DBMatOffline * sgpp::datadriven::DBMatOfflineDenseIChol::clone ( )
overridevirtual

Interface for the clone idiom.

Returns
a copy of this very object as a pointer to a new DBMatOffline object which is owned by the caller.

Reimplemented from sgpp::datadriven::DBMatOfflineChol.

◆ decomposeMatrix()

void sgpp::datadriven::DBMatOfflineDenseIChol::decomposeMatrix ( RegularizationConfiguration regularizationConfig,
DensityEstimationConfiguration densityEstimationConfig 
)
overridevirtual

Decomposes the matrix according to the chosen decomposition type.

The number of rows of the stored result depends on the decomposition type.

Parameters
regularizationConfigthe regularization configuration
densityEstimationConfigthe density estimation configuration

Reimplemented from sgpp::datadriven::DBMatOfflineChol.

References sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), python.statsfileInfo::i, ichol(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsDecompose_, sgpp::datadriven::DBMatOffline::isConstructed, sgpp::datadriven::DBMatOffline::isDecomposed, python.utils.statsfile2gnuplot::j, sgpp::datadriven::DBMatOffline::lhsMatrix, and python.utils.pca_normalize_dataset::u.

◆ getDecompositionType()

sgpp::datadriven::MatrixDecompositionType sgpp::datadriven::DBMatOfflineDenseIChol::getDecompositionType ( )
overridevirtual

Returns the decomposition type of the DBMatOffline object.

Returns
the type of matrix decomposition

Reimplemented from sgpp::datadriven::DBMatOfflineChol.

References sgpp::datadriven::DenseIchol.

◆ ichol()

void sgpp::datadriven::DBMatOfflineDenseIChol::ichol ( const DataMatrix matrix,
DataMatrix result,
size_t  sweeps = 4,
size_t  startRow = 0 
)
static

perform parlallel incomplete cholesky factorization of a matrix.

This is an out of place operation.

Parameters
matrixthe matrix to be decomposed
resultdata matrix that will hold the decomposed matrix
sweepshow many iterations of the algorithm are required until the result is good enough?
startRowon which row to start the decomposition (needed for refinement)

References sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getSize(), python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, create_scripts::s, sgpp::base::DataMatrix::set(), and python.utils.pca_normalize_dataset::u.

Referenced by choleskyModification(), sgpp::datadriven::DBMatDMSDenseIChol::choleskyUpdateLambda(), and decomposeMatrix().


The documentation for this class was generated from the following files: