APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
List of all members
apfel::TabulateObject< T > Class Template Reference

The template TabulateObject class is a derived of the QGrid class that tabulates on object of type T (it can be a double, a Distribution, an Operator, Set<Distribution>, a Set<Operator>) over a grid in Q, taking into account the possible presence of thresholds, and provides the method to evaluate the tabulated object at any generic value of Q. More...

#include <tabulateobject.h>

Inheritance diagram for apfel::TabulateObject< T >:
apfel::QGrid< T >

Public Member Functions

Constructors

List of constructors.

 TabulateObject (MatchedEvolution< T > &Object, int const &nQ, double const &QMin, double const &QMax, int const &InterDegree, double const &Lambda=0.25)
 The TabulateObject constructor for an "evolving" object (MatchedEvolution).
 
 TabulateObject (std::function< T(double const &)> const &Object, int const &nQ, double const &QMin, double const &QMax, int const &InterDegree, std::vector< double > const &Thresholds, double const &Lambda=0.25)
 The TabulateObject constructor for a Q dependent object.
 
 TabulateObject (std::function< T(double const &)> const &Object, int const &nQ, double const &QMin, double const &QMax, int const &InterDegree, std::vector< double > const &Thresholds, std::function< double(double const &)> const &TabFunc, std::function< double(double const &)> const &InvTabFunc)
 The TabulateObject constructor for a Q dependent object tabulated on a user-defined distribution in Q.
 
 TabulateObject (std::function< T(double const &)> const &Object, std::vector< double > const &Qg, int const &InterDegree)
 The TabulateObject constructor for a Q dependent object tabulated on a user-defined grid.
 
 TabulateObject (std::vector< T > const &Object, std::vector< double > const &Qg, int const &InterDegree)
 The TabulateObject constructor for a pretabulated object tabulated on a user-defined grid.
 
Evaluate functions

List of functions to interpolate the tabulated object.

double EvaluatexQ (double const &x, double const &Q) const
 This function interpolates in x and Q. It is used for T = Distribution.
 
double EvaluatexQ (int const &i, double const &x, double const &Q) const
 This function interpolates in x and Q for a given element i. It is used for T = Set<Distribution>.
 
double EvaluatexzQ (double const &x, double const &z, double const &Q) const
 This function interpolates in x, z, and Q. It is used for T = DoubleOject<Distribution>.
 
std::map< int, double > EvaluateMapxQ (double const &x, double const &Q) const
 This function interpolates in x and Q and returns a map. It is used for T = Set<Distribution>.
 
- Public Member Functions inherited from apfel::QGrid< T >
Evaluate (double const &Q) const
 Function that interpolates on the grid in Q.
 
Derive (double const &Q) const
 Function that derives on the grid in Q.
 
Integrate (double const &Qa, double const &Qb) const
 Function that integrates on the grid in Q.
 
double Interpolant (int const &tQ, int const &tau, double const &fq) const
 Interpolation functions on QGrid.
 
double DerInterpolant (int const &tQ, int const &tau, double const &Q) const
 Derivative of the interpolation functions on QGrid.
 
double IntInterpolant (int const &tQ, int const &tau, double const &Qa, double const &Qb) const
 Derivative of the interpolation functions on QGrid.
 
std::tuple< int, int, int > SumBounds (double const &Q) const
 Computes the control parameter of the interpolant, the lower and upper bounds over which the sum is limited.
 
void Print () const
 Print the QGrid object.
 
 QGrid ()=delete
 
 QGrid (int const &nQ, double const &QMin, double const &QMax, int const &InterDegree, std::vector< double > const &Thresholds, std::function< double(double const &)> const &TabFunc, std::function< double(double const &)> const &InvTabFunc)
 The QGrid constructor.
 
 QGrid (int const &nQ, double const &QMin, double const &QMax, int const &InterDegree, std::vector< double > const &Thresholds, double const &Lambda=0.25)
 The QGrid constructor.
 
 QGrid (std::vector< double > const &Qg, int const &InterDegree)
 The QGrid constructor.
 
bool operator== (QGrid const &sg) const
 
bool operator!= (QGrid const &sg) const
 
int nQ () const
 return the number of Q interval
 
int InterDegree () const
 return the interpolation degree
 
double QMin () const
 return the minimum node value
 
double QMax () const
 return the maximum node value
 
std::vector< double > const & GetThresholds () const
 return the heavy quark thresholds
 
std::vector< double > const & GetQGrid () const
 return the grid in Q
 
std::vector< double > const & GetFQGrid () const
 return the grid in _TabFunc(Q)
 
std::vector< int > const & GetThesholdIndices () const
 return the indices of the thresholds on the grid
 
std::vector< T > const & GetQGridValues () const
 return the tabulated objects on the grid.
 

Additional Inherited Members

- Public Attributes inherited from apfel::QGrid< T >
std::function< double(double const &)> const TabFunc )() const
 return the tabulation function
 
- Protected Attributes inherited from apfel::QGrid< T >
int _nQ
 Number intervals.
 
double _QMin
 Minumim value of Q.
 
double _QMax
 Maximum value of Q.
 
int _InterDegree
 Interpolation degree.
 
std::vector< double > _Thresholds
 Thresholds.
 
std::function< double(double const &) _TabFunc )
 Function whose constant step is used for the tabulation.
 
std::vector< double > _Qg
 Grid in Q.
 
std::vector< double > _fQg
 Grid in _TabFunc(Q)
 
std::vector< int > _nQg
 Indices of the nodes on which there is either a bound or a threshold.
 
std::vector< T > _GridValues
 Vector of values to be interpolated on the grid.
 

Detailed Description

template<class T>
class apfel::TabulateObject< T >

The template TabulateObject class is a derived of the QGrid class that tabulates on object of type T (it can be a double, a Distribution, an Operator, Set<Distribution>, a Set<Operator>) over a grid in Q, taking into account the possible presence of thresholds, and provides the method to evaluate the tabulated object at any generic value of Q.

Examples
dglap_test.cc, dglap_test_streamlined.cc, gpd_test.cc, qgrid_test.cc, qgriddist_test.cc, structurefunction_cc_test.cc, structurefunction_massive_test.cc, structurefunction_nc_pol_test.cc, structurefunction_nc_test.cc, and tmd_test.cc.

Constructor & Destructor Documentation

◆ TabulateObject() [1/5]

template<class T >
apfel::TabulateObject< T >::TabulateObject ( MatchedEvolution< T > & Object,
int const & nQ,
double const & QMin,
double const & QMax,
int const & InterDegree,
double const & Lambda = 0.25 )

The TabulateObject constructor for an "evolving" object (MatchedEvolution).

Parameters
Objectthe MatchedEvolution type object to be tabulated in Q
nQthe number of on nodes of the grid in Q
QMinthe lower bound of the grid in Q
QMaxthe upper bound of the grid in Q
InterDegreethe interpolation degree on the grid in Q
Lambdathe value of the parameter in the function ln(ln(Q22)) used for the tabulation (default: 0.25)

◆ TabulateObject() [2/5]

template<class T >
apfel::TabulateObject< T >::TabulateObject ( std::function< T(double const &)> const & Object,
int const & nQ,
double const & QMin,
double const & QMax,
int const & InterDegree,
std::vector< double > const & Thresholds,
double const & Lambda = 0.25 )

The TabulateObject constructor for a Q dependent object.

Parameters
Objectthe T-valued function to be tabulated in Q
nQthe number of on nodes of the grid in Q
QMinthe lower bound of the grid in Q
QMaxthe upper bound of the grid in Q
InterDegreethe interpolation degree on the grid in Q
Thresholdsvector of quark thresholds
Lambdathe value of the parameter in the function ln(ln(Q22)) used for the tabulation (default: 0.25)

◆ TabulateObject() [3/5]

template<class T >
apfel::TabulateObject< T >::TabulateObject ( std::function< T(double const &)> const & Object,
int const & nQ,
double const & QMin,
double const & QMax,
int const & InterDegree,
std::vector< double > const & Thresholds,
std::function< double(double const &)> const & TabFunc,
std::function< double(double const &)> const & InvTabFunc )

The TabulateObject constructor for a Q dependent object tabulated on a user-defined distribution in Q.

Parameters
Objectthe T-valued function to be tabulated in Q
nQthe number of on nodes of the grid in Q
QMinthe lower bound of the grid in Q
QMaxthe upper bound of the grid in Q
InterDegreethe interpolation degree on the grid in Q
Thresholdsvector of quark thresholds
TabFuncthe function to be used for the tabulation in Q
InvTabFuncthe inverse function of TabFunc (it has to be provided analytically)

◆ TabulateObject() [4/5]

template<class T >
apfel::TabulateObject< T >::TabulateObject ( std::function< T(double const &)> const & Object,
std::vector< double > const & Qg,
int const & InterDegree )

The TabulateObject constructor for a Q dependent object tabulated on a user-defined grid.

Parameters
Objectthe T-valued function to be tabulated in Q
Qgthe user-defined interpolation grid
InterDegreethe interpolation degree on the grid in Q

◆ TabulateObject() [5/5]

template<class T >
apfel::TabulateObject< T >::TabulateObject ( std::vector< T > const & Object,
std::vector< double > const & Qg,
int const & InterDegree )

The TabulateObject constructor for a pretabulated object tabulated on a user-defined grid.

Parameters
Objectthe T-valued vector of the pre-tabulated object
Qgthe user-defined interpolation grid
InterDegreethe interpolation degree on the grid in Q

Member Function Documentation

◆ EvaluateMapxQ()

template<class T >
std::map< int, double > apfel::TabulateObject< T >::EvaluateMapxQ ( double const & x,
double const & Q ) const

This function interpolates in x and Q and returns a map. It is used for T = Set<Distribution>.

Examples
structurefunction_cc_test.cc, structurefunction_massive_test.cc, structurefunction_nc_pol_test.cc, and structurefunction_nc_test.cc.

◆ EvaluatexQ() [1/2]

template<class T >
double apfel::TabulateObject< T >::EvaluatexQ ( double const & x,
double const & Q ) const

This function interpolates in x and Q. It is used for T = Distribution.

◆ EvaluatexQ() [2/2]

template<class T >
double apfel::TabulateObject< T >::EvaluatexQ ( int const & i,
double const & x,
double const & Q ) const

This function interpolates in x and Q for a given element i. It is used for T = Set<Distribution>.

◆ EvaluatexzQ()

template<class T >
double apfel::TabulateObject< T >::EvaluatexzQ ( double const & x,
double const & z,
double const & Q ) const

This function interpolates in x, z, and Q. It is used for T = DoubleOject<Distribution>.


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