LHAPDF  6.5.4
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
LHAPDF::Interpolator Class Referenceabstract

The general interface for interpolating between grid points. More...

#include <Interpolator.h>

Inheritance diagram for LHAPDF::Interpolator:
LHAPDF::BicubicInterpolator LHAPDF::BilinearInterpolator LHAPDF::LogBicubicInterpolator LHAPDF::LogBilinearInterpolator

Public Member Functions

virtual ~Interpolator ()
 Destructor to allow inheritance.
 
std::string type () const
 
void setType (std::string t)
 Set the interpolation type.
 
Binding to a PDF object
void bind (const GridPDF *pdf)
 Bind to a GridPDF.
 
void unbind ()
 Unbind from GridPDF.
 
bool hasPDF ()
 Identify whether this Interpolator has an associated PDF.
 
const GridPDFpdf () const
 Get the associated GridPDF.
 
Interpolation methods
double interpolateXQ (int id, double x, double q) const
 Interpolate a single-point in (x,Q)
 
double interpolateXQ2 (int id, double x, double q2) const
 Interpolate a single-point in (x,Q2)
 
void interpolateXQ2 (double x, double q2, std::vector< double > &ret) const
 

Protected Member Functions

virtual double _interpolateXQ2 (const KnotArray &grid, double x, size_t ix, double q2, size_t iq2, int id) const =0
 Interpolate a single-point in (x,Q2), given x/Q2 values and subgrid indices. More...
 
virtual void _interpolateXQ2 (const KnotArray &grid, double x, size_t ix, double q2, size_t iq2, std::vector< double > &ret) const =0
 

Private Attributes

const GridPDF_pdf
 
std::string _type
 

Detailed Description

The general interface for interpolating between grid points.

Member Function Documentation

◆ _interpolateXQ2()

virtual double LHAPDF::Interpolator::_interpolateXQ2 ( const KnotArray grid,
double  x,
size_t  ix,
double  q2,
size_t  iq2,
int  id 
) const
protectedpure virtual

Interpolate a single-point in (x,Q2), given x/Q2 values and subgrid indices.

The key function to be overridden in derived classes: the subgrid and x/Q2 index lookup (and their caching) are done centrally in the Interpolator base class so do not need to be re-implemented in each flavour of interpolator.

Implemented in LHAPDF::LogBilinearInterpolator, LHAPDF::LogBicubicInterpolator, LHAPDF::BilinearInterpolator, and LHAPDF::BicubicInterpolator.

◆ type()

std::string LHAPDF::Interpolator::type ( ) const
inline
Todo:
Make an all-PID version of interpolateQ and Q2?

The name of this type of interpolator

Todo:
Would name() or scheme() be a better name? "Type" maybe confuses with the language type-system

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