SG++
sgpp::combigrid::BSplineQuadratureEvaluator Class Reference

This evaluator calculates the integrals int b_i(x) dx for B splines b_i. More...

#include <BSplineQuadratureEvaluator.hpp>

Inheritance diagram for sgpp::combigrid::BSplineQuadratureEvaluator:
sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector > sgpp::combigrid::AbstractEvaluator< FloatScalarVector >

Public Member Functions

 BSplineQuadratureEvaluator ()
 
 BSplineQuadratureEvaluator (size_t degree)
 
 BSplineQuadratureEvaluator (size_t degree, sgpp::combigrid::SingleFunction weight_function, size_t numAdditionalPoints, bool normalizeWeights=true)
 
 BSplineQuadratureEvaluator (size_t degree, sgpp::combigrid::SingleFunction weight_function, size_t numAdditionalPoints, double a, double b, bool normalizeWeights=true)
 
 BSplineQuadratureEvaluator (BSplineQuadratureEvaluator const &other)
 
std::shared_ptr< AbstractLinearEvaluator< FloatScalarVector > > cloneLinear () override
 Clones this object and returns it as a shared pointer to AbstractLinearEvaluator<V>. More...
 
std::vector< double > getBasisCoefficients () override
 
std::vector< FloatScalarVectorgetBasisValues () override
 This method is specific to AbstractLinearEvaluator and has to be implemented by all subclasses. More...
 
bool needsOrderedPoints () override
 
bool needsParameter () override
 
void setBasisCoefficientsAtGridPoints (std::vector< double > &functionValues) override
 set the basis coefficients for the linear combination. More...
 
void setBounds (double a, double b) override
 
void setGridPoints (std::vector< double > const &newXValues) override
 Sets the grid points for evaluation. More...
 
void setParameter (FloatScalarVector const &param) override
 Via this method, the parameter can be set. More...
 
void setWeightFunction (sgpp::combigrid::SingleFunction weight_function) override
 
virtual ~BSplineQuadratureEvaluator ()
 
- Public Member Functions inherited from sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >
virtual std::shared_ptr< AbstractEvaluator< FloatScalarVector > > clone ()
 Clones the AbstractEvaluator object. More...
 
virtual FloatScalarVector eval ()
 AbstractLinearEvaluator provides a standard implementation of this method based on getBasisCoefficients(). More...
 
virtual void getBounds (double &a, double &b)
 
virtual void getWeightFunction (sgpp::combigrid::SingleFunction &weight_function)
 
virtual bool hasCustomWeightFunction ()
 
virtual ~AbstractLinearEvaluator ()
 
- Public Member Functions inherited from sgpp::combigrid::AbstractEvaluator< FloatScalarVector >
virtual EvaluatorConfiguration getConfig ()
 (Currently not used). More...
 
virtual void setConfig (EvaluatorConfiguration newEvalConfig)
 
void setLevel (size_t level)
 This is used to set the level in case an evaluator needs it. More...
 
virtual ~AbstractEvaluator ()
 

Additional Inherited Members

- Protected Attributes inherited from sgpp::combigrid::AbstractEvaluator< FloatScalarVector >
EvaluatorConfiguration evalConfig
 
size_t level
 

Detailed Description

This evaluator calculates the integrals int b_i(x) dx for B splines b_i.

This is done via quadrature based on the given grid points. The quadrature weights are obtained by (numerically) integrating the Lagrange polynomials on the given grid points. In the constructor, a weight function may be passed whose values at the grid points are multiplied with the given function values.

Constructor & Destructor Documentation

sgpp::combigrid::BSplineQuadratureEvaluator::BSplineQuadratureEvaluator ( size_t  degree,
sgpp::combigrid::SingleFunction  weight_function,
size_t  numAdditionalPoints,
bool  normalizeWeights = true 
)
Parameters
degreedegree of the B splien basis
numAdditionalPointsSpecifies how many Gauss-Legrendre points should be used in addition to the default when integrating the Lagrange polynomials for computing the quadrature weights. This number should be higher if the weight function is hard to integrate.
weight_functionoptional weight function w that can be included in the quadrature weights. The Quadrature evaluator then approximates the integral of f*w instead of the integral of f. This provides more precision by calling w more often than f, which might be useful if w can be evaluated much faster than f.
normalizeWeightsIf this is set to true, the weights are normalized so that they sum up to 1. This might be useful if the weight function is (or should be) a probability distribution on the domain.

References sgpp::combigrid::EvaluatorConfiguration::degree, sgpp::combigrid::AbstractEvaluator< FloatScalarVector >::evalConfig, sgpp::combigrid::Scalar_BSplineQuadrature, and sgpp::combigrid::EvaluatorConfiguration::type.

sgpp::combigrid::BSplineQuadratureEvaluator::BSplineQuadratureEvaluator ( size_t  degree,
sgpp::combigrid::SingleFunction  weight_function,
size_t  numAdditionalPoints,
double  a,
double  b,
bool  normalizeWeights = true 
)
sgpp::combigrid::BSplineQuadratureEvaluator::~BSplineQuadratureEvaluator ( )
virtual

Member Function Documentation

std::shared_ptr< AbstractLinearEvaluator< FloatScalarVector > > sgpp::combigrid::BSplineQuadratureEvaluator::cloneLinear ( )
overridevirtual

Clones this object and returns it as a shared pointer to AbstractLinearEvaluator<V>.

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

References BSplineQuadratureEvaluator().

Referenced by setBounds().

std::vector<double> sgpp::combigrid::BSplineQuadratureEvaluator::getBasisCoefficients ( )
inlineoverridevirtual
std::vector<FloatScalarVector> sgpp::combigrid::BSplineQuadratureEvaluator::getBasisValues ( )
inlineoverridevirtual

This method is specific to AbstractLinearEvaluator and has to be implemented by all subclasses.

It should return the coefficients used for the linear combination of function values. Example: If you want to do a linear interpolation and have the grid points 0.0 and 0.5 and an evaluation point (the parameter) of 0.2, you would return the weights (0.6, 0.4), because the interpolated value is 0.6 * f(0) + 0.4 * f(0.5).

In the case of multi-evaluation, this returns several coefficients for each grid point. Continuing the example above, if you would have evaluation points 0.2 and 0.4, the basis coefficients returned should be ((0.6, 0.2), (0.4, 0.8)).

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

bool sgpp::combigrid::BSplineQuadratureEvaluator::needsOrderedPoints ( )
overridevirtual
Returns
true iff the grid points have to be provided in ascending order (for example for linear interpolation).

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

Referenced by getBasisCoefficients().

bool sgpp::combigrid::BSplineQuadratureEvaluator::needsParameter ( )
overridevirtual
Returns
true iff this evaluation method needs a parameter (e.g. true for interpolation, false for quadrature).

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

Referenced by getBasisCoefficients().

void sgpp::combigrid::BSplineQuadratureEvaluator::setBasisCoefficientsAtGridPoints ( std::vector< double > &  newBasisCoefficients)
overridevirtual

set the basis coefficients for the linear combination.

In case of linear or polynomial interpolation these basis coefficients are function evaluations

Parameters
newBasisCoefficientsthe new coefficients

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

Referenced by getBasisCoefficients().

void sgpp::combigrid::BSplineQuadratureEvaluator::setBounds ( double  a,
double  b 
)
inlineoverridevirtual
void sgpp::combigrid::BSplineQuadratureEvaluator::setGridPoints ( std::vector< double > const &  xValues)
overridevirtual

Sets the grid points for evaluation.

The evaluation method should allow for arbitrary grid points to achieve maximal modularity.

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

Referenced by getBasisCoefficients().

void sgpp::combigrid::BSplineQuadratureEvaluator::setParameter ( FloatScalarVector const &  param)
overridevirtual

Via this method, the parameter can be set.

Implements sgpp::combigrid::AbstractLinearEvaluator< FloatScalarVector >.

Referenced by getBasisCoefficients().

void sgpp::combigrid::BSplineQuadratureEvaluator::setWeightFunction ( sgpp::combigrid::SingleFunction  weight_function)
inlineoverridevirtual

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