Defines the binary operation class wrapping all binary operation tags at runtime. More...
#include <string>#include <vector>#include <iostream>#include <math.h>#include "viennamath/forwards.h"#include "viennamath/runtime/op_interface.hpp"#include "viennamath/compiletime/binary_op_tags.hpp"Go to the source code of this file.
Data Structures | |
| class | op_binary< BinaryOperation, InterfaceType > | 
| This is the common wrapper class for binary operations.  More... | |
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 * | 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 * | 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 * | 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_plus< NumericT >, const InterfaceType *rhs) | 
| Implementation of the simplification procedures for an expression of the form e1 + e2.   | |
| 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 > | |
| 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 > | |
| 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_plus< NumericT >, const InterfaceType *rhs) | 
| Checks whether an expression of the form e1 + e2 can be simplified.   | |
| 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 > | |
| 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 > | |
| 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.   | |
Defines the binary operation class wrapping all binary operation tags at runtime.
 1.7.1