![]() |
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 |