Data Structures | Namespaces | Functions

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

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.

Detailed Description

Provides symbolic differentiation routines (runtime and compiletime).