SG++-Doxygen-Documentation
|
Multiple evaluation operation that uses the subspace structure to save work compared to the naive or streaming variants. More...
#include <OperationMultipleEvalSubspaceCombined.hpp>
Public Member Functions | |
size_t | getAlignment () override |
Alignment required by the vector instruction set SG++ is compiled with. More... | |
std::string | getImplementationName () override |
Name of the implementation, useful for benchmarking different implementation approaches. More... | |
size_t | getPaddedDatasetSize () override |
Size of the dataset after padding. More... | |
void | multImpl (sgpp::base::DataVector &source, sgpp::base::DataVector &result, const size_t start_index_data, const size_t end_index_data) override |
Internal mult operator, should not be called directly. More... | |
void | multTransposeImpl (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, const size_t start_index_data, const size_t end_index_data) override |
Internal eval operator, should not be called directly. More... | |
OperationMultipleEvalSubspaceCombined (sgpp::base::Grid &grid, sgpp::base::DataMatrix &dataset) | |
Creates a new instance of the OperationMultipleEvalSubspaceCombined class. More... | |
sgpp::base::DataMatrix * | padDataset (sgpp::base::DataMatrix &dataset) |
Pads the dataset. More... | |
void | prepare () override |
Updates the internal data structures to reflect changes to the grid, e.g. More... | |
~OperationMultipleEvalSubspaceCombined () | |
Destructor. More... | |
Public Member Functions inherited from sgpp::datadriven::AbstractOperationMultipleEvalSubspace | |
AbstractOperationMultipleEvalSubspace (base::Grid &grid, base::DataMatrix &dataset) | |
virtual double | getDuration () override |
void | mult (sgpp::base::DataVector &source, sgpp::base::DataVector &result) override |
Multiplication of \(B^T\) with vector \(\alpha\). More... | |
void | multTranspose (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result) override |
Multiplication of \(B\) with vector \(\alpha\). More... | |
~AbstractOperationMultipleEvalSubspace () | |
Public Member Functions inherited from sgpp::base::OperationMultipleEval | |
void | eval (DataVector &alpha, DataVector &result) |
Evaluate multiple datapoints with the specified grid. More... | |
virtual void | mult (DataVector &alpha, DataVector &result, size_t startIndexData, size_t endIndexData) |
Multiplication of \(B^T\) with vector \(\alpha\). More... | |
virtual void | multTranspose (DataVector &source, DataVector &result, size_t startIndexGrid, size_t endIndexGrid) |
Multiplication of \(B\) with vector \(\alpha\). More... | |
OperationMultipleEval (sgpp::base::Grid &grid, DataMatrix &dataset) | |
Constructor. More... | |
virtual | ~OperationMultipleEval () |
Destructor. More... | |
Static Public Member Functions | |
static void | calculateIndexCombined (size_t dim, size_t nextIterationToRecalc, const double *const (&dataTuplePtr)[4], std::vector< uint32_t > &hInversePtr, uint32_t *(&intermediates)[4], double *(&evalIndexValues)[4], uint32_t(&indexFlat)[4], double(&phiEval)[4]) |
static void | calculateIndexCombined2 (size_t dim, size_t nextIterationToRecalc, const double *const (&dataTuplePtr)[4], const double *const (&dataTuplePtr2)[4], std::vector< uint32_t > &hInversePtr, uint32_t *(&intermediates)[4], uint32_t *(&intermediates2)[4], double *(&evalIndexValues)[4], double *(&evalIndexValues2)[4], uint32_t(&indexFlat)[4], uint32_t(&indexFlat2)[4], double(&phiEval)[4], double(&phiEval2)[4]) |
Static Public Member Functions inherited from sgpp::datadriven::AbstractOperationMultipleEvalSubspace | |
static size_t | getChunkDataPoints () |
static size_t | getChunkGridPoints () |
Additional Inherited Members | |
Protected Attributes inherited from sgpp::datadriven::AbstractOperationMultipleEvalSubspace | |
base::GridStorage * | storage |
Protected Attributes inherited from sgpp::base::OperationMultipleEval | |
DataMatrix & | dataset |
Grid & | grid |
bool | isPrepared |
Multiple evaluation operation that uses the subspace structure to save work compared to the naive or streaming variants.
sgpp::datadriven::OperationMultipleEvalSubspaceCombined::OperationMultipleEvalSubspaceCombined | ( | sgpp::base::Grid & | grid, |
sgpp::base::DataMatrix & | dataset | ||
) |
Creates a new instance of the OperationMultipleEvalSubspaceCombined class.
grid | grid to be evaluated |
dataset | set of evaluation points |
References fileName, sgpp::base::DataMatrix::getNcols(), sgpp::base::Grid::getStorage(), padDataset(), and sgpp::datadriven::AbstractOperationMultipleEvalSubspace::storage.
sgpp::datadriven::OperationMultipleEvalSubspaceCombined::~OperationMultipleEvalSubspaceCombined | ( | ) |
Destructor.
|
inlinestatic |
|
inlinestatic |
|
overridevirtual |
Alignment required by the vector instruction set SG++ is compiled with.
Implements sgpp::datadriven::AbstractOperationMultipleEvalSubspace.
References X86COMBINED_PARALLEL_DATA_POINTS.
|
overridevirtual |
Name of the implementation, useful for benchmarking different implementation approaches.
Reimplemented from sgpp::base::OperationMultipleEval.
|
overridevirtual |
Size of the dataset after padding.
Reimplemented from sgpp::datadriven::AbstractOperationMultipleEvalSubspace.
References sgpp::base::DataMatrix::getNrows().
|
overridevirtual |
Internal mult operator, should not be called directly.
source | source operand for the operator |
result | stores the result |
start_index_data | beginning of the range to process |
end_index_data | end of the range to process |
Implements sgpp::datadriven::AbstractOperationMultipleEvalSubspace.
References sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getPointer(), python.statsfileInfo::i, sgpp::datadriven::SubspaceNodeCombined::indexFlatSurplusPairs, python.utils.statsfile2gnuplot::j, sgpp::datadriven::SubspaceNodeCombined::LIST, sgpp::base::DataVector::set(), sgpp::datadriven::SubspaceNodeCombined::subspaceArray, sgpp::datadriven::SubspaceNodeCombined::type, X86COMBINED_PARALLEL_DATA_POINTS, and X86COMBINED_VEC_PADDING.
|
overridevirtual |
Internal eval operator, should not be called directly.
alpha | surplusses of the grid |
result | will contain the evaluation results for the given range. |
start_index_data | beginning of the range to evaluate |
end_index_data | end of the range to evaluate |
Implements sgpp::datadriven::AbstractOperationMultipleEvalSubspace.
References sgpp::datadriven::SubspaceNodeCombined::ARRAY, sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getPointer(), python.statsfileInfo::i, sgpp::datadriven::SubspaceNodeCombined::indexFlatSurplusPairs, python.utils.statsfile2gnuplot::j, sgpp::datadriven::SubspaceNodeCombined::LIST, sgpp::datadriven::SubspaceNodeCombined::lockSubspace(), sgpp::datadriven::SubspaceNodeCombined::subspaceArray, sgpp::datadriven::SubspaceNodeCombined::type, sgpp::datadriven::SubspaceNodeCombined::unlockSubspace(), X86COMBINED_PARALLEL_DATA_POINTS, and X86COMBINED_VEC_PADDING.
DataMatrix * sgpp::datadriven::OperationMultipleEvalSubspaceCombined::padDataset | ( | sgpp::base::DataMatrix & | dataset | ) |
Pads the dataset.
dataset | dataset to be padded |
References sgpp::base::OperationMultipleEval::dataset, sgpp::base::DataMatrix::getAdditionallyReservedRows(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getRow(), python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, sgpp::base::DataMatrix::reserveAdditionalRows(), sgpp::base::DataMatrix::resize(), sgpp::base::DataMatrix::set(), sgpp::base::DataMatrix::setRow(), X86COMBINED_PARALLEL_DATA_POINTS, and X86COMBINED_VEC_PADDING.
Referenced by OperationMultipleEvalSubspaceCombined().
|
overridevirtual |
Updates the internal data structures to reflect changes to the grid, e.g.
due to refinement.
Reimplemented from sgpp::base::OperationMultipleEval.
References sgpp::base::HashGridPoint::get(), sgpp::base::DataVector::get(), sgpp::base::HashGridStorage::getPoint(), sgpp::base::HashGridStorage::getSize(), sgpp::datadriven::SubspaceNodeCombined::getSurplus(), python.statsfileInfo::i, level, chess::point, sgpp::base::DataVector::set(), sgpp::datadriven::SubspaceNodeCombined::setSurplus(), and sgpp::datadriven::AbstractOperationMultipleEvalSubspace::storage.