Namespaces | Functions

/export/development/ViennaMath/viennamath/manipulation/detail/binary_operations.hpp File Reference

Provides additional implementation details for binary operations. More...

#include <string>
#include <vector>
#include <math.h>
#include "viennamath/forwards.h"
#include "viennamath/compiletime/binary_op_tags.hpp"
#include "viennamath/runtime/binary_expr.hpp"
#include "viennamath/runtime/unary_expr.hpp"

Go to the source code of this file.

Namespaces

namespace  viennamath
 

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


Functions

template<typename InterfaceType , typename NumericT >
InterfaceType * diff_impl (const InterfaceType *lhs, op_plus< NumericT >, const InterfaceType *rhs, const InterfaceType *diff_var)
 Implementation of the differentation of e1 + e1, where e1 and e2 are expressions.
template<typename InterfaceType , typename NumericT >
InterfaceType * simplify_impl (const InterfaceType *lhs, op_plus< NumericT >, const InterfaceType *rhs)
 Implementation of the simplification procedures for an expression of the form e1 + e2.
template<typename InterfaceType , typename NumericT >
bool can_simplify_impl (const InterfaceType *lhs, op_plus< NumericT >, const InterfaceType *rhs)
 Checks whether an expression of the form e1 + e2 can be simplified.
template<typename InterfaceType , typename NumericT >
InterfaceType * diff_impl (const InterfaceType *lhs, op_minus< NumericT >, const InterfaceType *rhs, const InterfaceType *diff_var)
 Implementation of the differentation of e1 - e1, where e1 and e2 are expressions.
template<typename InterfaceType , typename NumericT >
InterfaceType * simplify_impl (const InterfaceType *lhs, op_minus< NumericT >, const InterfaceType *rhs)
 Implementation of the simplification procedures for an expression of the form e1 - e2.
template<typename InterfaceType , typename NumericT >
bool can_simplify_impl (const InterfaceType *lhs, op_minus< NumericT >, const InterfaceType *rhs)
 Checks whether an expression of the form e1 - e2 can be simplified.
template<typename InterfaceType , typename NumericT >
InterfaceType * diff_impl (const InterfaceType *lhs, op_mult< NumericT >, const InterfaceType *rhs, const InterfaceType *diff_var)
 Implementation of the differentation of e1 * e1, where e1 and e2 are expressions.
template<typename InterfaceType , typename NumericT >
InterfaceType * simplify_impl (const InterfaceType *lhs, op_mult< NumericT >, const InterfaceType *rhs)
 Implementation of the simplification procedures for an expression of the form e1 * e2.
template<typename InterfaceType , typename NumericT >
bool can_simplify_impl (const InterfaceType *lhs, op_mult< NumericT >, const InterfaceType *rhs)
 Checks whether an expression of the form e1 * e2 can be simplified.
template<typename InterfaceType , typename NumericT >
InterfaceType * diff_impl (const InterfaceType *lhs, op_div< NumericT >, const InterfaceType *rhs, const InterfaceType *diff_var)
 Implementation of the differentation of e1 / e1, where e1 and e2 are expressions.
template<typename InterfaceType , typename NumericT >
InterfaceType * simplify_impl (const InterfaceType *lhs, op_div< NumericT >, const InterfaceType *rhs)
 Implementation of the simplification procedures for an expression of the form e1 / e2.
template<typename InterfaceType , typename NumericT >
bool can_simplify_impl (const InterfaceType *lhs, op_div< NumericT >, const InterfaceType *rhs)
 Checks whether an expression of the form e1 / e2 can be simplified.

Detailed Description

Provides additional implementation details for binary operations.