|  | Garfield 0.3
    Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors | 
#include <array>#include <complex>#include <functional>#include <vector>#include "Garfield/FundamentalConstants.hh"Go to the source code of this file.
| Namespaces | |
| namespace | Garfield | 
| namespace | Garfield::Numerics | 
| Collection of numerical routines. | |
| namespace | Garfield::Numerics::QUADPACK | 
| Functions for performing numerical integration (quadrature). | |
| namespace | Garfield::Numerics::CERNLIB | 
| Linear algebra routines from CERNLIB. | |
| Functions | |
| constexpr std::array< double, 2 > | Garfield::Numerics::GaussLegendreNodes2 () | 
| constexpr std::array< double, 2 > | Garfield::Numerics::GaussLegendreWeights2 () | 
| constexpr std::array< double, 3 > | Garfield::Numerics::GaussLegendreNodes3 () | 
| constexpr std::array< double, 3 > | Garfield::Numerics::GaussLegendreWeights3 () | 
| constexpr std::array< double, 4 > | Garfield::Numerics::GaussLegendreNodes4 () | 
| constexpr std::array< double, 4 > | Garfield::Numerics::GaussLegendreWeights4 () | 
| constexpr std::array< double, 5 > | Garfield::Numerics::GaussLegendreNodes5 () | 
| constexpr std::array< double, 5 > | Garfield::Numerics::GaussLegendreWeights5 () | 
| constexpr std::array< double, 6 > | Garfield::Numerics::GaussLegendreNodes6 () | 
| constexpr std::array< double, 6 > | Garfield::Numerics::GaussLegendreWeights6 () | 
| void | Garfield::Numerics::QUADPACK::qagi (std::function< double(double)> f, double bound, const int inf, const double epsabs, const double epsrel, double &result, double &abserr, unsigned int &status) | 
| Estimates an integral over a semi-infinite or infinite interval. | |
| void | Garfield::Numerics::QUADPACK::qk15i (std::function< double(double)> f, double bound, const int inf, const double a, const double b, double &result, double &abserr, double &resabs, double &resasc) | 
| 15-point Gauss-Kronrod integration with (semi-)infinite integration range. | |
| void | Garfield::Numerics::QUADPACK::qk15 (std::function< double(double)> f, const double a, const double b, double &result, double &abserr, double &resabs, double &resasc) | 
| 15-point Gauss-Kronrod integration with finite integration range. | |
| int | Garfield::Numerics::CERNLIB::deqn (const int n, std::vector< std::vector< double > > &a, std::vector< double > &b) | 
| Replaces b by the solution x of Ax = b, after which A is undefined. | |
| int | Garfield::Numerics::CERNLIB::deqinv (const int n, std::vector< std::vector< double > > &a, std::vector< double > &b) | 
| Replaces b by the solution x of Ax = b, and replace A by its inverse. | |
| void | Garfield::Numerics::CERNLIB::dfact (const int n, std::vector< std::vector< double > > &a, std::vector< int > &ir, int &ifail, double &det, int &jfail) | 
| void | Garfield::Numerics::CERNLIB::dfeqn (const int n, std::vector< std::vector< double > > &a, std::vector< int > &ir, std::vector< double > &b) | 
| void | Garfield::Numerics::CERNLIB::dfinv (const int n, std::vector< std::vector< double > > &a, std::vector< int > &ir) | 
| int | Garfield::Numerics::CERNLIB::dinv (const int n, std::vector< std::vector< double > > &a) | 
| Replace square matrix A by its inverse. | |
| void | Garfield::Numerics::CERNLIB::cfact (const int n, std::vector< std::vector< std::complex< double > > > &a, std::vector< int > &ir, int &ifail, std::complex< double > &det, int &jfail) | 
| void | Garfield::Numerics::CERNLIB::cfinv (const int n, std::vector< std::vector< std::complex< double > > > &a, std::vector< int > &ir) | 
| int | Garfield::Numerics::CERNLIB::cinv (const int n, std::vector< std::vector< std::complex< double > > > &a) | 
| Replace square matrix A by its inverse. | |
| void | Garfield::Numerics::CERNLIB::cfft (std::vector< std::complex< double > > &a, const int msign) | 
| double | Garfield::Numerics::Legendre (const unsigned int n, const double x) | 
| Legendre polynomials. | |
| double | Garfield::Numerics::BesselI0S (const double xx) | 
| Modified Bessel functions. | |
| double | Garfield::Numerics::BesselI1S (const double xx) | 
| double | Garfield::Numerics::BesselK0S (const double xx) | 
| double | Garfield::Numerics::BesselK0L (const double xx) | 
| double | Garfield::Numerics::BesselK1S (const double xx) | 
| double | Garfield::Numerics::BesselK1L (const double xx) | 
| double | Garfield::Numerics::Divdif (const std::vector< double > &f, const std::vector< double > &a, int nn, double x, int mm) | 
| C++ version of DIVDIF (CERN program library E105) which performs tabular interpolation using symmetrically placed argument points. | |
| double | Garfield::Numerics::LinearInterpolation (const std::vector< double > &ytab, const std::vector< double > &xtab, const double x) | 
| bool | Garfield::Numerics::Boxin2 (const std::vector< std::vector< double > > &value, const std::vector< double > &xAxis, const std::vector< double > &yAxis, const int nx, const int ny, const double xx, const double yy, double &f, const int iOrder) | 
| Interpolation of order 1 and 2 in an irregular rectangular two-dimensional grid. | |
| bool | Garfield::Numerics::Boxin3 (const std::vector< std::vector< std::vector< double > > > &value, const std::vector< double > &xAxis, const std::vector< double > &yAxis, const std::vector< double > &zAxis, const int nx, const int ny, const int nz, const double xx, const double yy, const double zz, double &f, const int iOrder) | 
| Interpolation of order 1 and 2 in an irregular rectangular three-dimensional grid. | |
| bool | Garfield::Numerics::LeastSquaresFit (std::function< double(double, const std::vector< double > &)> f, std::vector< double > &par, std::vector< double > &epar, const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &ey, const unsigned int nMaxIter, const double diff, double &chi2, const double eps, const bool debug, const bool verbose) | 
| Least-squares minimisation. | |