Provides symbolic differentiation routines (runtime and compiletime). More...
#include "viennamath/forwards.h"
#include "viennamath/runtime/unary_expr.hpp"
#include "viennamath/manipulation/simplify.hpp"
Go to the source code of this file.
Data Structures | |
struct | diff< ARG, VAR > |
Returns the type of the expression after differentiation of 'ARG' with respect to the variable 'VAR'. More... | |
struct | diff< ct_binary_expr< LHS, op_plus< default_numeric_type >, RHS >, ct_variable< id > > |
Specialization implementing the rule (u + v)' = u' + v'. More... | |
struct | diff< ct_binary_expr< LHS, op_minus< default_numeric_type >, RHS >, ct_variable< id > > |
Specialization implementing the rule (u - v)' = u' - v'. More... | |
struct | diff< ct_binary_expr< LHS, op_mult< default_numeric_type >, RHS >, ct_variable< id > > |
Specialization implementing the rule (u * v)' = u'*v + u*v'. More... | |
struct | diff< ct_binary_expr< LHS, op_div< default_numeric_type >, RHS >, ct_variable< id > > |
Specialization implementing the rule (u/v)' = (u'*v - u*v') / v^2. More... | |
struct | diff< ct_variable< other_id >, ct_variable< id > > |
Specialization of (d x_i) / (d x_j) for i != j. More... | |
struct | diff< ct_variable< id >, ct_variable< id > > |
Specialization for (d x) / (d x) = 1. More... | |
struct | diff< ct_constant< value >, ct_variable< id > > |
Specialization: The derivative of a constant is zero. 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. | |
Functions | |
template<typename InterfaceType > | |
rt_expr< InterfaceType > | diff (rt_binary_expr< InterfaceType > const &e, rt_variable< InterfaceType > const &var) |
Returns the derivative of the provided runtime binary expression. | |
template<typename InterfaceType > | |
rt_expr< InterfaceType > | diff (rt_unary_expr< InterfaceType > const &e, rt_variable< InterfaceType > const &var) |
Returns the derivative of the provided runtime unary expression. | |
template<typename InterfaceType > | |
rt_expr< InterfaceType > | diff (rt_expr< InterfaceType > const &e, rt_variable< InterfaceType > const &var) |
Returns the derivative of the provided runtime expression wrapper. | |
template<typename InterfaceType , id_type id> | |
rt_expr< InterfaceType > | diff (rt_binary_expr< InterfaceType > const &e, ct_variable< id > const &var) |
Returns the derivative of the provided runtime binary expression. | |
template<typename InterfaceType , id_type id> | |
rt_expr< InterfaceType > | diff (rt_unary_expr< InterfaceType > const &e, ct_variable< id > const &var) |
Returns the derivative of the provided runtime unary expression. | |
template<typename InterfaceType , id_type id> | |
rt_expr< InterfaceType > | diff (rt_expr< InterfaceType > const &e, ct_variable< id > const &var) |
Returns the derivative of the provided runtime expression wrapper. | |
template<typename InterfaceType > | |
rt_expr< InterfaceType > | diff (rt_function_symbol< InterfaceType > const &other, rt_variable< InterfaceType > const &var) |
Returns a symbolic representation of a differentiated function. | |
template<typename InterfaceType , id_type id> | |
rt_expr< InterfaceType > | diff (rt_function_symbol< InterfaceType > const &other, ct_variable< id > const &var) |
Returns a symbolic representation of a differentiated function. | |
template<typename InterfaceType > | |
rt_constant< typename InterfaceType::numeric_type > | diff (typename InterfaceType::numeric_type value, rt_variable< InterfaceType > const &var) |
Overload for the derivative of a function. | |
template<typename OtherScalarType , typename InterfaceType > | |
rt_constant< typename InterfaceType::numeric_type > | diff (rt_constant< OtherScalarType, InterfaceType > const &c, rt_variable< InterfaceType > const &var) |
Overload for the derivative of a ViennaMath runtime constant. | |
template<id_type other_id, typename InterfaceType , id_type id> | |
rt_constant< typename InterfaceType::numeric_type > | diff (rt_variable< InterfaceType > const &c, rt_variable< InterfaceType > const &var) |
Overload for computing the derivative of a runtime variable. | |
template<typename ExpressionType , id_type id> | |
result_of::diff < ExpressionType, ct_variable < id > >::result_type | diff (ExpressionType const &c, ct_variable< id > const &var) |
The user function for differentiation of a compile time expression with respect to a compile time variable. |
Provides symbolic differentiation routines (runtime and compiletime).