Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:17:12

0001 //
0002 // APFEL++ 2017
0003 //
0004 // Author: Valerio Bertone: valerio.bertone@cern.ch
0005 //
0006 
0007 #pragma once
0008 
0009 #include <functional>
0010 
0011 namespace apfel
0012 {
0013   /**
0014    * @brief DE-Quadrature
0015    * Numerical automatic integrator for improper integral using double
0016    * dxponential (DE) quadrature. The code is a manipulation of the
0017    * code linked here:
0018    *
0019    * http://www.kurims.kyoto-u.ac.jp/~ooura/intde.html
0020    */
0021   class DoubleExponentialQuadrature
0022   {
0023   public:
0024     /**
0025      * @brief The Integrator constructor.
0026      * @param nu: the order of the Bessel function (default: 0)
0027      * @param eps: relative integration accuracy
0028      */
0029     DoubleExponentialQuadrature(int const& nu = 0, double const& eps = 1e-5);
0030 
0031     /**
0032      * @brief Function that transform the input function.
0033      * @param f: function to be transformed
0034      * @param qT: value of qT in which to compute the transform
0035      * @return the value of the transform
0036      */
0037     template<typename T>
0038     T transform(std::function<T(double const&)> const& f, double const& qT) const;
0039 
0040   private:
0041     int    const _nu;
0042     double       _aw[8000];
0043   };
0044 }