APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | Friends | List of all members
apfel::QGrid< T > Class Template Reference

The template class QGrids is a mother class for the interpolation in Q. This class also implements methods for the subgrid interpolation relevant for example in a VFNS evolution. More...

#include <qgrid.h>

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

Public Member Functions

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.
 
Constructors

List of constructors.

 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.
 
Comparison operators

Collection of operators for comparing QGrid objects

bool operator== (QGrid const &sg) const
 
bool operator!= (QGrid const &sg) const
 

Protected Attributes

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.
 

Friends

template<class U >
std::ostream & operator<< (std::ostream &os, QGrid< U > const &dt)
 

Getters

std::function< double(double const &)> const TabFunc )() const
 return the tabulation function
 
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.
 

Detailed Description

template<class T>
class apfel::QGrid< T >

The template class QGrids is a mother class for the interpolation in Q. This class also implements methods for the subgrid interpolation relevant for example in a VFNS evolution.

Examples
qgrid_test.cc.

Constructor & Destructor Documentation

◆ QGrid() [1/4]

template<class T >
apfel::QGrid< T >::QGrid ( )
delete

◆ QGrid() [2/4]

template<class T >
apfel::QGrid< T >::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.

Parameters
nQthe number of grid intervals in Q
QMinthe lower edge of the grid in Q
QMaxthe upper edge of the grid in Q
InterDegreethe interpolation degree
Thresholdsthe fixed point of the grid over which interpolation is forbidden
TabFuncthe function used to tabulate the grid in Q
InvTabFuncthe inverse function of TabFunc (an analytic expression is necessary)

◆ QGrid() [3/4]

template<class T >
apfel::QGrid< T >::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.

Parameters
nQthe number of grid intervals in Q
QMinthe lower edge of the grid in Q
QMaxthe upper edge of the grid in Q
InterDegreethe interpolation degree
Thresholdsthe fixed point of the grid over which interpolation is forbidden
Lambdathe parameter of the function log(log(Q/Lambda)) used for the tabulation on the grid in Q

◆ QGrid() [4/4]

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

The QGrid constructor.

Parameters
Qgthe user-defined interpolation grid
InterDegreethe interpolation degree
Note
This constructor assumes that the function used to compute the interpolating functions is linear. In addition, the input vector 'Qg' is assumed to be ordered and 'well-behaved'. To be used with care.

Member Function Documentation

◆ DerInterpolant()

template<class T >
double apfel::QGrid< T >::DerInterpolant ( int const & tQ,
int const & tau,
double const & Q ) const

Derivative of the interpolation functions on QGrid.

Parameters
tQinterpolation control parameter
tauthe grid index
Qthe value of Q of the required interpolation
Returns
the derivarive of the interpolation weights

◆ Derive()

template<class T >
T apfel::QGrid< T >::Derive ( double const & Q) const

Function that derives on the grid in Q.

Parameters
Qthe value of the required interpolation
Returns
the interpolated derivative

◆ Evaluate()

template<class T >
T apfel::QGrid< T >::Evaluate ( double const & Q) const

Function that interpolates on the grid in Q.

Parameters
Qthe value of the required interpolation
Returns
the interpolated value
Examples
dglap_test.cc, dglap_test_streamlined.cc, gpd_test.cc, structurefunction_cc_test.cc, structurefunction_massive_test.cc, structurefunction_nc_pol_test.cc, structurefunction_nc_test.cc, and tmd_test.cc.

◆ GetFQGrid()

template<class T >
std::vector< double > const & apfel::QGrid< T >::GetFQGrid ( ) const
inline

return the grid in _TabFunc(Q)

◆ GetQGrid()

template<class T >
std::vector< double > const & apfel::QGrid< T >::GetQGrid ( ) const
inline

return the grid in Q

◆ GetQGridValues()

template<class T >
std::vector< T > const & apfel::QGrid< T >::GetQGridValues ( ) const
inline

return the tabulated objects on the grid.

◆ GetThesholdIndices()

template<class T >
std::vector< int > const & apfel::QGrid< T >::GetThesholdIndices ( ) const
inline

return the indices of the thresholds on the grid

◆ GetThresholds()

template<class T >
std::vector< double > const & apfel::QGrid< T >::GetThresholds ( ) const
inline

return the heavy quark thresholds

◆ Integrate()

template<class T >
T apfel::QGrid< T >::Integrate ( double const & Qa,
double const & Qb ) const

Function that integrates on the grid in Q.

Parameters
Qathe lower integration bound
Qbthe upper integration bound
Returns
the interpolated integral

◆ InterDegree()

template<class T >
int apfel::QGrid< T >::InterDegree ( ) const
inline

return the interpolation degree

◆ Interpolant()

template<class T >
double apfel::QGrid< T >::Interpolant ( int const & tQ,
int const & tau,
double const & fq ) const

Interpolation functions on QGrid.

Parameters
tQinterpolation control parameter
tauthe grid index
fqthe value of _TabFunc(Q) of the required interpolation
Returns
the interpolation weights

◆ IntInterpolant()

template<class T >
double apfel::QGrid< T >::IntInterpolant ( int const & tQ,
int const & tau,
double const & Qa,
double const & Qb ) const

Derivative of the interpolation functions on QGrid.

Parameters
tQinterpolation control parameter
tauthe grid index
Qathe value of the lower integration bound
Qbthe value of the upper integration bound
Returns
the integral of interpolation weights

◆ nQ()

template<class T >
int apfel::QGrid< T >::nQ ( ) const
inline

return the number of Q interval

◆ operator!=()

template<class T >
bool apfel::QGrid< T >::operator!= ( QGrid< T > const & sg) const

◆ operator==()

template<class T >
bool apfel::QGrid< T >::operator== ( QGrid< T > const & sg) const

◆ Print()

template<class T >
void apfel::QGrid< T >::Print ( ) const
inline

Print the QGrid object.

◆ QMax()

template<class T >
double apfel::QGrid< T >::QMax ( ) const
inline

return the maximum node value

◆ QMin()

template<class T >
double apfel::QGrid< T >::QMin ( ) const
inline

return the minimum node value

◆ SumBounds()

template<class T >
std::tuple< int, int, int > apfel::QGrid< T >::SumBounds ( double const & Q) const

Computes the control parameter of the interpolant, the lower and upper bounds over which the sum is limited.

Parameters
Qthe value of the required interpolation
Returns
the lower and upper bounds of tau

Friends And Related Symbol Documentation

◆ operator<<

template<class T >
template<class U >
std::ostream & operator<< ( std::ostream & os,
QGrid< U > const & dt )
friend

Member Data Documentation

◆ _fQg

template<class T >
std::vector<double> apfel::QGrid< T >::_fQg
protected

◆ _GridValues

template<class T >
std::vector<T> apfel::QGrid< T >::_GridValues
protected

Vector of values to be interpolated on the grid.

◆ _InterDegree

template<class T >
int apfel::QGrid< T >::_InterDegree
protected

Interpolation degree.

◆ _nQ

template<class T >
int apfel::QGrid< T >::_nQ
protected

Number intervals.

◆ _nQg

template<class T >
std::vector<int> apfel::QGrid< T >::_nQg
protected

Indices of the nodes on which there is either a bound or a threshold.

◆ _Qg

template<class T >
std::vector<double> apfel::QGrid< T >::_Qg
protected

Grid in Q.

◆ _QMax

template<class T >
double apfel::QGrid< T >::_QMax
protected

Maximum value of Q.

◆ _QMin

template<class T >
double apfel::QGrid< T >::_QMin
protected

Minumim value of Q.

◆ _TabFunc

template<class T >
std::function<double(double const&) apfel::QGrid< T >::_TabFunc)
protected

Function whose constant step is used for the tabulation.

◆ _Thresholds

template<class T >
std::vector<double> apfel::QGrid< T >::_Thresholds
protected

Thresholds.

◆ TabFunc

template<class T >
std::function< double(double const &)> const apfel::QGrid< T >::TabFunc) () const
inline

return the tabulation function


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