![]() |
APFEL 4.8.0
A PDF evolution library in C++
|
The DoubleObject class is a collection of pairs of single objects (Distributions or Operators) accompained by a multiplicative constant. This mother class provides the basic ingredients for the computation double convolutions required in SIDIS and DY. More...
#include <doubleobject.h>
Public Member Functions | |
void | AddTerm (term< T, U > const &newterm) |
Function to add more terms. | |
std::vector< term< T, U > > | GetTerms () const |
Function to get the terms. | |
double | Evaluate (double const &x, double const &z) const |
Function that evaluates the double distribution. | |
T | Evaluate1 (double const &x) const |
Function that evaluates the double object in the first variable leaving the second undetermined. | |
U | Evaluate2 (double const &z) const |
Function that evaluates the double object in the second variable leaving the first undetermined. | |
double | Derive (double const &x, double const &z) const |
Function that evaluates the derivative of the double distribution. | |
T | Derive1 (double const &x) const |
Function that evaluates the derivative of the double object in the first variable leaving the second undetermined. | |
U | Derive2 (double const &z) const |
Function that evaluates the derivative of the double object in the second variable leaving the first undetermined. | |
double | Integrate (double const &xl, double const &xu, double const &zl, double const &zu) const |
Function that evaluates the integral of the double distribution. | |
T | Integrate1 (double const &xl, double const &xu) const |
Function that evaluates the integral of the double object in the first variable leaving the second undetermined. | |
U | Integrate2 (double const &zl, double const &zu) const |
Function that evaluates the derivative of the double object in the second variable leaving the first undetermined. | |
double | Integrate (double const &xl, double const &xu, std::function< double(double const &)> zlx, std::function< double(double const &)> zux) const |
Function that evaluates the integral of the double distribution. | |
double | Integrate (std::function< double(double const &)> xlz, std::function< double(double const &)> xuz, double const &zl, double const &zu) const |
Function that evaluates the integral of the double distribution. | |
DoubleObject< T, U > & | MultiplyBy (std::function< double(double const &)> const &fx, std::function< double(double const &)> const &fz) |
This function multiplies the objects of the single terms of the DoubleObject by a respective function. | |
void | Print () const |
Print the Operator object. | |
Constructors | |
List of constructors. | |
DoubleObject () | |
The DoubleObject constructor. | |
DoubleObject (std::vector< term< T, U > > const &terms) | |
The DoubleObject constructor. | |
Binary operators | |
template<class V > | |
DoubleObject< V > | operator*= (DoubleObject< V > const &o) const |
DoubleObject< T, U > & | operator*= (double const &s) |
this *= scalar | |
DoubleObject< T, U > & | operator*= (DoubleObject< T, U > const &o) |
this *= DoubleObject | |
DoubleObject< T, U > & | operator*= (std::function< double(double const &)> const &f) |
this *= Function of the integration variable | |
DoubleObject< T, U > & | operator/= (double const &s) |
this /= scalar | |
DoubleObject< T, U > & | operator+= (DoubleObject< T, U > const &o) |
this += DoubleObject | |
DoubleObject< T, U > & | operator-= (DoubleObject< T, U > const &o) |
this -= DoubleObject | |
Private Attributes | |
std::vector< term< T, U > > | _terms |
Friends | |
template<class V , class W > | |
std::ostream & | operator<< (std::ostream &os, DoubleObject< V, W > const &dob) |
The DoubleObject class is a collection of pairs of single objects (Distributions or Operators) accompained by a multiplicative constant. This mother class provides the basic ingredients for the computation double convolutions required in SIDIS and DY.
apfel::DoubleObject< T, U >::DoubleObject | ( | ) |
The DoubleObject constructor.
apfel::DoubleObject< T, U >::DoubleObject | ( | std::vector< term< T, U > > const & | terms | ) |
The DoubleObject constructor.
terms | vector of term objects of the T kind |
void apfel::DoubleObject< T, U >::AddTerm | ( | term< T, U > const & | newterm | ) |
Function to add more terms.
newterm | new term to be appended to the vector of terms |
double apfel::DoubleObject< T, U >::Derive | ( | double const & | x, |
double const & | z ) const |
Function that evaluates the derivative of the double distribution.
x | value of the first variable |
z | value of the second variable |
T apfel::DoubleObject< T, U >::Derive1 | ( | double const & | x | ) | const |
Function that evaluates the derivative of the double object in the first variable leaving the second undetermined.
x | value of the first variable |
U apfel::DoubleObject< T, U >::Derive2 | ( | double const & | z | ) | const |
Function that evaluates the derivative of the double object in the second variable leaving the first undetermined.
z | value of the second variable |
double apfel::DoubleObject< T, U >::Evaluate | ( | double const & | x, |
double const & | z ) const |
Function that evaluates the double distribution.
x | value of the first variable |
z | value of the second variable |
T apfel::DoubleObject< T, U >::Evaluate1 | ( | double const & | x | ) | const |
Function that evaluates the double object in the first variable leaving the second undetermined.
x | value of the first variable |
U apfel::DoubleObject< T, U >::Evaluate2 | ( | double const & | z | ) | const |
Function that evaluates the double object in the second variable leaving the first undetermined.
z | value of the second variable |
|
inline |
Function to get the terms.
double apfel::DoubleObject< T, U >::Integrate | ( | double const & | xl, |
double const & | xu, | ||
double const & | zl, | ||
double const & | zu ) const |
Function that evaluates the integral of the double distribution.
xl | value of the lower bound of the of the first variable |
xu | value of the upper bound of the of the first variable |
zl | value of the lower bound of the of the second variable |
zu | value of the upper bound of the of the second variable |
double apfel::DoubleObject< T, U >::Integrate | ( | double const & | xl, |
double const & | xu, | ||
std::function< double(double const &)> | zlx, | ||
std::function< double(double const &)> | zux ) const |
Function that evaluates the integral of the double distribution.
xl | value of the lower bound of the of the first variable |
xu | value of the upper bound of the of the first variable |
zlx | function that delimits the lower bound of the integral in z as a function of x |
zux | function that delimits the upper bound of the integral in z as a function of x |
double apfel::DoubleObject< T, U >::Integrate | ( | std::function< double(double const &)> | xlz, |
std::function< double(double const &)> | xuz, | ||
double const & | zl, | ||
double const & | zu ) const |
Function that evaluates the integral of the double distribution.
xlz | function that delimits the lower bound of the integral in x as a function of z |
xuz | function that delimits the upper bound of the integral in x as a function of z |
zl | value of the lower bound of the of the second variable |
zu | value of the upper bound of the of the seconf variable |
T apfel::DoubleObject< T, U >::Integrate1 | ( | double const & | xl, |
double const & | xu ) const |
Function that evaluates the integral of the double object in the first variable leaving the second undetermined.
xl | value of the lower bound of the of the first variable |
xu | value of the upper bound of the of the first variable |
U apfel::DoubleObject< T, U >::Integrate2 | ( | double const & | zl, |
double const & | zu ) const |
Function that evaluates the derivative of the double object in the second variable leaving the first undetermined.
zl | value of the lower bound of the of the second variable |
zu | value of the upper bound of the of the second variable |
DoubleObject< T, U > & apfel::DoubleObject< T, U >::MultiplyBy | ( | std::function< double(double const &)> const & | fx, |
std::function< double(double const &)> const & | fz ) |
This function multiplies the objects of the single terms of the DoubleObject by a respective function.
fx | that function that multiplies the first distribution |
fz | that function that multiplies the second distribution |
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator*= | ( | double const & | s | ) |
this *= scalar
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator*= | ( | DoubleObject< T, U > const & | o | ) |
this *= DoubleObject
DoubleObject< V > apfel::DoubleObject< T, U >::operator*= | ( | DoubleObject< V > const & | o | ) | const |
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator*= | ( | std::function< double(double const &)> const & | f | ) |
this *= Function of the integration variable
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator+= | ( | DoubleObject< T, U > const & | o | ) |
this += DoubleObject
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator-= | ( | DoubleObject< T, U > const & | o | ) |
this -= DoubleObject
DoubleObject< T, U > & apfel::DoubleObject< T, U >::operator/= | ( | double const & | s | ) |
this /= scalar
|
inline |
Print the Operator object.
|
friend |
|
private |