![]() |
APFEL 4.8.0
A PDF evolution library in C++
|
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>
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>. | |
![]() | |
T | Evaluate (double const &Q) const |
Function that interpolates on the grid in Q. | |
T | Derive (double const &Q) const |
Function that derives on the grid in Q. | |
T | 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::function< double(double const &)> const & | TabFunc () const |
return the tabulation function | |
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 | |
![]() | |
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. | |
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.
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).
Object | the MatchedEvolution type object to be tabulated in Q |
nQ | the number of on nodes of the grid in Q |
QMin | the lower bound of the grid in Q |
QMax | the upper bound of the grid in Q |
InterDegree | the interpolation degree on the grid in Q |
Lambda | the value of the parameter in the function ln(ln(Q2/Λ2)) used for the tabulation (default: 0.25) |
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.
Object | the T-valued function to be tabulated in Q |
nQ | the number of on nodes of the grid in Q |
QMin | the lower bound of the grid in Q |
QMax | the upper bound of the grid in Q |
InterDegree | the interpolation degree on the grid in Q |
Thresholds | vector of quark thresholds |
Lambda | the value of the parameter in the function ln(ln(Q2/Λ2)) used for the tabulation (default: 0.25) |
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.
Object | the T-valued function to be tabulated in Q |
nQ | the number of on nodes of the grid in Q |
QMin | the lower bound of the grid in Q |
QMax | the upper bound of the grid in Q |
InterDegree | the interpolation degree on the grid in Q |
Thresholds | vector of quark thresholds |
TabFunc | the function to be used for the tabulation in Q |
InvTabFunc | the inverse function of TabFunc (it has to be provided analytically) |
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.
Object | the T-valued function to be tabulated in Q |
Qg | the user-defined interpolation grid |
InterDegree | the interpolation degree on the grid in Q |
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.
Object | the T-valued vector of the pre-tabulated object |
Qg | the user-defined interpolation grid |
InterDegree | the interpolation degree on the grid in Q |
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>.
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.
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>.
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>.