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

Multiple evaluation operation that uses the subspace structure to save work compared to the naive or streaming variants. More...

#include <OperationMultipleEvalSubspaceCombined.hpp>

Inheritance diagram for sgpp::datadriven::OperationMultipleEvalSubspaceCombined:
sgpp::datadriven::AbstractOperationMultipleEvalSubspace sgpp::base::OperationMultipleEval

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::DataMatrixpadDataset (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::GridStoragestorage
 
- Protected Attributes inherited from sgpp::base::OperationMultipleEval
DataMatrixdataset
 
Gridgrid
 
bool isPrepared
 

Detailed Description

Multiple evaluation operation that uses the subspace structure to save work compared to the naive or streaming variants.

Constructor & Destructor Documentation

◆ OperationMultipleEvalSubspaceCombined()

sgpp::datadriven::OperationMultipleEvalSubspaceCombined::OperationMultipleEvalSubspaceCombined ( sgpp::base::Grid grid,
sgpp::base::DataMatrix dataset 
)

Creates a new instance of the OperationMultipleEvalSubspaceCombined class.

Parameters
gridgrid to be evaluated
datasetset of evaluation points

References fileName, sgpp::base::DataMatrix::getNcols(), sgpp::base::Grid::getStorage(), padDataset(), and sgpp::datadriven::AbstractOperationMultipleEvalSubspace::storage.

◆ ~OperationMultipleEvalSubspaceCombined()

sgpp::datadriven::OperationMultipleEvalSubspaceCombined::~OperationMultipleEvalSubspaceCombined ( )

Destructor.

Member Function Documentation

◆ calculateIndexCombined()

static void sgpp::datadriven::OperationMultipleEvalSubspaceCombined::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] 
)
inlinestatic

◆ calculateIndexCombined2()

static void sgpp::datadriven::OperationMultipleEvalSubspaceCombined::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] 
)
inlinestatic

◆ getAlignment()

size_t sgpp::datadriven::OperationMultipleEvalSubspaceCombined::getAlignment ( )
overridevirtual

Alignment required by the vector instruction set SG++ is compiled with.

Returns
alignment requirement

Implements sgpp::datadriven::AbstractOperationMultipleEvalSubspace.

References X86COMBINED_PARALLEL_DATA_POINTS.

◆ getImplementationName()

std::string sgpp::datadriven::OperationMultipleEvalSubspaceCombined::getImplementationName ( )
overridevirtual

Name of the implementation, useful for benchmarking different implementation approaches.

Returns
name of the implementation

Reimplemented from sgpp::base::OperationMultipleEval.

◆ getPaddedDatasetSize()

size_t sgpp::datadriven::OperationMultipleEvalSubspaceCombined::getPaddedDatasetSize ( )
overridevirtual

Size of the dataset after padding.

Returns
size of the padded dataset>

Reimplemented from sgpp::datadriven::AbstractOperationMultipleEvalSubspace.

References sgpp::base::DataMatrix::getNrows().

◆ multImpl()

void sgpp::datadriven::OperationMultipleEvalSubspaceCombined::multImpl ( sgpp::base::DataVector source,
sgpp::base::DataVector result,
const size_t  start_index_data,
const size_t  end_index_data 
)
overridevirtual

◆ multTransposeImpl()

void sgpp::datadriven::OperationMultipleEvalSubspaceCombined::multTransposeImpl ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
const size_t  start_index_data,
const size_t  end_index_data 
)
overridevirtual

◆ padDataset()

◆ prepare()


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