Implementation of numerical integration routines. More...
#include <math.h>
#include <iostream>
#include "viennashe/forwards.h"
#include "viennashe/log/log.hpp"
#include "viennashe/math/log_keys.h"
Go to the source code of this file.
Classes | |
class | viennashe::math::IntMidPointRule |
Tag for the midpoint rule. More... | |
class | viennashe::math::IntTrapezoidalRule |
Tag for the trapezoidal rule. More... | |
class | viennashe::math::IntSimpsonRule |
Tag for the simpson rule. More... | |
class | viennashe::math::IntAdaptiveRule< IntRule > |
Tag for an adaptive integration rule. More... | |
class | viennashe::math::IntGauss< int_points > |
Gaussian integration rule. More... | |
class | viennashe::math::BindFirst< T > |
Binds the first argument of a function of functor to a certain value. More... | |
class | viennashe::math::BindSecond< T > |
Binds the second argument of a function or functor to a certain value. More... | |
class | viennashe::math::IntegrationBinder< T, IntRule > |
A binder for reducing an n-ary function to an n-1-ary function by integration over one variable. More... | |
Namespaces | |
namespace | viennashe |
The main ViennaSHE namespace. All functionality resides inside this namespace. | |
namespace | viennashe::math |
Namespace for all math specific code | |
Functions | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntMidPointRule) |
Integration of a function using the mid point rule. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntTrapezoidalRule) |
Integration of a function using the trapezoidal rule. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntSimpsonRule) |
Integration of a function using the simpson rule. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 1 >) |
Integration of a function using the Gauss rule, 1 evaluation node. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 2 >) |
Integration of a function using the Gauss rule, 2 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 3 >) |
Integration of a function using the Gauss rule, 3 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 4 >) |
Integration of a function using the Gauss rule, 4 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 5 >) |
Integration of a function using the Gauss rule, 5 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 6 >) |
Integration of a function using the Gauss rule, 6 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 7 >) |
Integration of a function using the Gauss rule, 7 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 8 >) |
Integration of a function using the Gauss rule, 8 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 9 >) |
Integration of a function using the Gauss rule, 9 evaluation nodes. More... | |
template<typename T > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntGauss< 10 >) |
Integration of a function using the Gauss rule, 10 evaluation nodes. More... | |
template<typename T , typename U > | |
double | viennashe::math::integrate (T const &f, double a, double b, IntAdaptiveRule< U > adaptiverule, long recursion_depth=0) |
Integration of a function using an adaptive integration rule based on bisection of the integration interval. More... | |
template<typename T , typename IntRuleTag > | |
double | viennashe::math::integrate2D (double a1, double b1, double a2, double b2, T const &func2integrate, IntRuleTag) |
Convenience overload for two-dimensional integration. More... | |
Implementation of numerical integration routines.
Will be replaced by functionality from ViennaMath in the future.
Definition in file integrator.hpp.