Numerical Integration
Base Module » Basic and Miscellaneous Math Functions

Numerical integration routines. More...

## Functions

template<typename Ftn >
double | itpp::quad (Ftn f, double a, double b, double tol=std::numeric_limits< double >::epsilon())
ITPP_EXPORT double | itpp::quad (double(*f)(double), double a, double b, double tol=std::numeric_limits< double >::epsilon())
template<typename Ftn >
double | itpp::quadl (Ftn f, double a, double b, double tol=std::numeric_limits< double >::epsilon())
ITPP_EXPORT double | itpp::quadl (double(*f)(double), double a, double b, double tol=std::numeric_limits< double >::epsilon())

## Detailed Description

Numerical integration routines.

## Function Documentation

## quad() [1/2]

template<typename Ftn >

double itpp::quad | ( | Ftn | f,
|  | double | a,
|  | double | b,
|  | double | tol = `std::numeric_limits<double>::epsilon()`
| ) |  |

1-dimensional numerical Simpson quadrature integration

Calculate the 1-dimensional integral

Uses an adaptive Simpson quadrature method. See [Gander] for more details. The integrand is specified as a templated function object.

Example:

#include "itpp/itbase.h"
struct Integrand_Functor
{
double operator()(const double x) const
{
return x*log(x);
}
};
int main()
{
double res = quad(Integrand_Functor(), 1.5, 3.5);
cout << "res = " << res << endl;
return 0;
}

References:

[Gander] Gander, W. and W. Gautschi, "Adaptive Quadrature - Revisited", BIT, Vol. 40, 2000, pp. 84-101. This document is also available at http://www.inf.ethz.ch/personal/gander.

Definition at line 162 of file integration.h.

References itpp::sum().

Referenced by itpp::EXIT::apriori_mutual_info().

## quad() [2/2]

ITPP_EXPORT double itpp::quad | ( | double(*)(double) | f,
|  | double | a,
|  | double | b,
|  | double | tol = `std::numeric_limits< double >::epsilon()`
| ) |  |

1-dimensional numerical Simpson quadrature integration

Calculate the 1-dimensional integral

Uses an adaptive Simpson quadrature method. See [Gander] for more details. The integrand is specified as a function:

double f(double)

Example:

#include "itpp/itbase.h"
double f(const double x)
{
return x*log(x);
}
int main()
{
double res = quad( f, 1.5, 3.5);
cout << "res = " << res << endl;
return 0;
}

References:

[Gander] Gander, W. and W. Gautschi, "Adaptive Quadrature - Revisited", BIT, Vol. 40, 2000, pp. 84-101. This document is also available at http://www.inf.ethz.ch/personal/gander.

## quadl() [1/2]

template<typename Ftn >

double itpp::quadl | ( | Ftn | f,
|  | double | a,
|  | double | b,
|  | double | tol = `std::numeric_limits<double>::epsilon()`
| ) |  |

1-dimensional numerical adaptive Lobatto quadrature integration

Calculate the 1-dimensional integral

Uses an adaptive Lobatto quadrature method. See [Gander] for more details. The integrand is specified as a templated function object.

Example:

#include "itpp/itbase.h"
struct Integrand_Functor
{
double operator()(const double x) const
{
return x*log(x);
}
};
int main()
{
double res = quadl(Integrand_Functor(), 1.5, 3.5);
cout << "res = " << res << endl;
return 0;
}

References:

[Gander] Gander, W. and W. Gautschi, "Adaptive Quadrature - Revisited", BIT, Vol. 40, 2000, pp. 84-101. This document is also available at http:// www.inf.ethz.ch/personal/gander.

Definition at line 264 of file integration.h.

References itpp::abs(), itpp::sign(), and itpp::sqrt().

## quadl() [2/2]

ITPP_EXPORT double itpp::quadl | ( | double(*)(double) | f,
|  | double | a,
|  | double | b,
|  | double | tol = `std::numeric_limits< double >::epsilon()`
| ) |  |

1-dimensional numerical adaptive Lobatto quadrature integration

Calculate the 1-dimensional integral

Uses an adaptive Lobatto quadrature method. See [Gander] for more details. The integrand is specified as a function:

double f(double)

Example:

#include "itpp/itbase.h"
double f(const double x)
{
return x*log(x);
}
int main()
{
double res = quadl( f, 1.5, 3.5);
cout << "res = " << res << endl;
return 0;
}

References:

[Gander] Gander, W. and W. Gautschi, "Adaptive Quadrature - Revisited", BIT, Vol. 40, 2000, pp. 84-101. This document is also available at http:// www.inf.ethz.ch/personal/gander.

Generated on Sat Sep 30 2017 07:04:09 for IT++ by Doxygen 1.8.13