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. |
Provides symbolic integration routines. No numerical quadrature is defined here -> check out viennamath/runtime/numerical_quadrature.hpp.