Data Structures | Namespaces | Functions

/export/development/ViennaMath/viennamath/manipulation/integrate.hpp File Reference

Provides symbolic integration routines. No numerical quadrature is defined here -> check out viennamath/runtime/numerical_quadrature.hpp. More...

#include "viennamath/forwards.h"
#include "viennamath/compiletime/ct_interval.hpp"
#include "viennamath/manipulation/expand.hpp"
#include "viennamath/manipulation/simplify.hpp"
#include "viennamath/manipulation/substitute.hpp"

Go to the source code of this file.

Data Structures

struct  polynomial_degree< VariableType, ExpressionType >
 Returns the power of ct_variable<id> inside an expression. More...
struct  polynomial_degree< VariableType, VariableType >
 Specialization for the power of a single variable, which is known to be 1. More...
struct  polynomial_degree< VariableType, ct_binary_expr< LHS, op_plus< NumericT >, RHS > >
 Specialization for forcing a compile time error if a sum of expressions is encountered. More...
struct  polynomial_degree< VariableType, ct_binary_expr< LHS, op_minus< NumericT >, RHS > >
 Specialization for forcing a compile time error if a difference of expressions is encountered. More...
struct  polynomial_degree< VariableType, ct_binary_expr< LHS, op_mult< NumericT >, RHS > >
 Specialization for a product: The polynomial degree is given by the sum of the polynomial degree of each factor. More...
struct  polynomial_degree< VariableType, ct_binary_expr< LHS, op_div< NumericT >, RHS > >
 Specialization for a division: The polynomial degree is given by the difference of the polynomial degree of the numerator and the denominator. More...
struct  pow< T, exponent >
 Metafunction returning the power of an expression. Tries to balance the generated expression tree. More...
struct  pow< T, 0 >
 Specialization for the zeroth power of an expression. More...
struct  pow< T, 1 >
 Specialization for the first power of an expression. More...
struct  pow< T, 2 >
 Specialization for the square of an expression. More...
struct  integrate_monomial< VariableType, exponent >
 Metafunction for the integration of a monomial consisting of a single variable. More...
struct  integrate_monomial< VariableType, 0 >
 Specialization for the integration of a constant: Return the variable directly. More...
struct  integrate< LowerBound, UpperBound, IntegrandType, VariableType >
 The main metafunction for the integration of a compiletime expression. More...
struct  integrate_impl< LowerBound, UpperBound, IntegrandType, VariableType >
 The worker metafunction for compile time integration. Each specialization represents an integration rule. More...
struct  integrate_impl< LowerBound, UpperBound, ct_binary_expr< LHS, op_plus< NumericT >, RHS >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_binary_expr< LHS, op_minus< NumericT >, RHS >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_binary_expr< LHS, op_mult< NumericT >, RHS >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_binary_expr< LHS, op_div< NumericT >, RHS >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_unary_expr< LHS, OP >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_constant< value >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_function_symbol< TAG >, VariableType >
struct  integrate_impl< LowerBound, UpperBound, ct_variable< id >, VariableType >
struct  integrate< LowerBound, UpperBound, ct_binary_expr< LHS, OP, RHS >, VariableType >
 Specialization for the integration of a compiletime binary expression. More...
struct  integrate< LowerBound, UpperBound, ct_unary_expr< LHS, OP >, VariableType >
 Specialization for the integration of a compiletime unary expression. Not supported at the moment, thus a compile time error is forced. More...
struct  integrate< LowerBound, UpperBound, ct_constant< value >, VariableType >
 Specialization for the integration of a compile time constant. Forwards the integration to the worker metafunction integrate_impl. More...
struct  integrate< LowerBound, UpperBound, ct_function_symbol< TAG >, VariableType >
 Specialization for the integration of a compiletime function symbol. This is a user error, since a function symbol should have been replaced already by another expression. Thus, a compile time error is forced. More...
struct  integrate< LowerBound, UpperBound, ct_variable< id >, VariableType >
 Specialization for the integration of a compile time variable. Forwards the integration to the worker metafunction integrate_impl. More...

Namespaces

namespace  viennamath
 

The main ViennaMath namespace. All types and functions for the user reside here.


namespace  viennamath::result_of
 

The namespace containing a set of metafunctions which can be used by the ViennaMath library user.


namespace  viennamath::result_of::detail
 

Implementation details for the metafunctions in ViennaMath. Not intended for direct use.


Functions

template<typename LowerBound , typename UpperBound , typename IntegrandType , typename VariableType >
result_of::integrate
< LowerBound, UpperBound,
IntegrandType, VariableType >
::type 
integrate (ct_interval< LowerBound, UpperBound > const &interv, IntegrandType const &integrand, VariableType const &var)
 The user function for the compile time integration of a compile time expression.

Detailed Description

Provides symbolic integration routines. No numerical quadrature is defined here -> check out viennamath/runtime/numerical_quadrature.hpp.