APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
tabulateobject.h
Go to the documentation of this file.
1//
2// APFEL++ 2017
3//
4// Author: Valerio Bertone: valerio.bertone@cern.ch
5//
6
7#pragma once
8
9#include "apfel/qgrid.h"
11
12#include <map>
13
14namespace apfel
15{
24 template<class T>
25 class TabulateObject: public QGrid<T>
26 {
27 public:
33
44 int const& nQ,
45 double const& QMin,
46 double const& QMax,
47 int const& InterDegree,
48 double const& Lambda = 0.25);
49
61 TabulateObject(std::function<T(double const&)> const& Object,
62 int const& nQ,
63 double const& QMin,
64 double const& QMax,
65 int const& InterDegree,
66 std::vector<double> const& Thresholds,
67 double const& Lambda = 0.25);
68
81 TabulateObject(std::function<T(double const&)> const& Object,
82 int const& nQ,
83 double const& QMin,
84 double const& QMax,
85 int const& InterDegree,
86 std::vector<double> const& Thresholds,
87 std::function<double(double const&)> const& TabFunc,
88 std::function<double(double const&)> const& InvTabFunc);
89
97 TabulateObject(std::function<T(double const&)> const& Object,
98 std::vector<double> const& Qg,
99 int const& InterDegree);
100
108 TabulateObject(std::vector<T> const& Object,
109 std::vector<double> const& Qg,
110 int const& InterDegree);
112
118
122 double EvaluatexQ(double const& x, double const& Q) const;
127 double EvaluatexQ(int const& i, double const& x, double const& Q) const;
132 double EvaluatexzQ(double const& x, double const& z, double const& Q) const;
137 std::map<int, double> EvaluateMapxQ(double const& x, double const& Q) const;
139 };
140}
The MatchedEvolution class is a template mother class for the computation of the running of a generic...
Definition matchedevolution.h:23
The template class QGrids is a mother class for the interpolation in Q. This class also implements me...
Definition qgrid.h:23
double QMin() const
return the minimum node value
Definition qgrid.h:116
int nQ() const
return the number of Q interval
Definition qgrid.h:114
int InterDegree() const
return the interpolation degree
Definition qgrid.h:115
std::function< double(double const &)> const TabFunc)() const
return the tabulation function
Definition qgrid.h:118
double QMax() const
return the maximum node value
Definition qgrid.h:117
The template TabulateObject class is a derived of the QGrid class that tabulates on object of type T ...
Definition tabulateobject.h:26
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...
double EvaluatexQ(double const &x, double const &Q) const
This function interpolates in x and Q. It is used for T = Distribution.
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::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.
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>.
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>.
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>.
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, std::vector< double > const &Qg, int const &InterDegree)
The TabulateObject constructor for a Q dependent object tabulated on a user-defined grid.
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14