Defines special (non-standard) operator overloads for runtime constants. More...
#include <ostream>#include "viennamath/forwards.h"#include "viennamath/compiletime/promote_traits.hpp"#include "viennamath/runtime/binary_operators.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 ScalarType , typename InterfaceType , typename OtherScalarType , typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_plus < typename InterfaceType::numeric_type > , OtherScalarType > ::result_type, InterfaceType > , op_plus< typename InterfaceType::numeric_type > , RHS >  | operator+ (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< rt_constant< OtherScalarType, InterfaceType >, op_plus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 + (c2 + X) -> [c1 + c2] + X, where c1 and c2 are runtime constants and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , long value, typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_plus < typename InterfaceType::numeric_type > , long >::result_type, InterfaceType >, op_plus < typename InterfaceType::numeric_type > , RHS >  | operator+ (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< ct_constant< value >, op_plus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 + (ct_c2 + X) -> [c1 + ct_c2] + X, where c1 is a runtime constant, ct_c2 is a compiletime constant, and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , typename OtherScalarType , typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_plus < typename InterfaceType::numeric_type > , OtherScalarType > ::result_type, InterfaceType > , op_minus< typename InterfaceType::numeric_type > , RHS >  | operator+ (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< rt_constant< OtherScalarType, InterfaceType >, op_minus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 + (c2 - X) -> [c1 + c2] - X, where c1 and c2 are runtime constants and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , long value, typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_plus < typename InterfaceType::numeric_type > , long >::result_type, InterfaceType >, op_minus < typename InterfaceType::numeric_type > , RHS >  | operator+ (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< ct_constant< value >, op_minus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 + (ct_c2 - X) -> [c1 + ct_c2] - X, where c1 is a runtime constant, ct_c2 is a compiletime constant, and X is any expression:   | |
| template<long value, typename RHS , typename ScalarType , typename T , typename InterfaceType > | |
| ct_binary_expr< rt_constant < typename promote_traits < long, op_plus< T > , ScalarType >::result_type > , op_plus< T >, RHS >  | operator+ (ct_binary_expr< ct_constant< value >, op_plus< T >, RHS > const &lhs, rt_constant< ScalarType, InterfaceType > const &other) | 
| Special overload for (ct_c1 + X) + c2 -> [ct_c1 + c2] + X, where ct_c1 is a compile constant, c2 is a runtime constant, and X is any expression:   | |
| template<long value, typename RHS , typename ScalarType , typename InterfaceType > | |
| ct_binary_expr< rt_constant < default_numeric_type, InterfaceType >, op_minus < default_numeric_type >, RHS >  | operator+ (ct_binary_expr< ct_constant< value >, op_minus< default_numeric_type >, RHS > const &lhs, rt_constant< ScalarType, InterfaceType > const &other) | 
| Special overload for (ct_c1 - X) + c2 -> [ct_c1 + c2] - X, where ct_c1 is a compile constant, c2 is a runtime constant, and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , typename OtherScalarType , typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_minus < typename InterfaceType::numeric_type > , OtherScalarType > ::result_type, InterfaceType > , op_minus< typename InterfaceType::numeric_type > , RHS >  | operator- (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< rt_constant< OtherScalarType, InterfaceType >, op_plus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 - (c2 + X) -> [c1 - c2] - X, where c1 and c2 are runtime constants and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , long value, typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_minus < typename InterfaceType::numeric_type > , long >::result_type, InterfaceType >, op_minus < typename InterfaceType::numeric_type > , RHS >  | operator- (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< ct_constant< value >, op_plus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 - (ct_c2 + X) -> [c1 - ct_c2] - X, where c1 is a runtime constant, ct_c2 is a compiletime constant, and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , typename OtherScalarType , typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_minus < typename InterfaceType::numeric_type > , OtherScalarType > ::result_type, InterfaceType > , op_plus< typename InterfaceType::numeric_type > , RHS >  | operator- (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< rt_constant< OtherScalarType, InterfaceType >, op_minus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 - (c2 - X) -> [c1 - c2] + X, where c1 and c2 are runtime constants and X is any expression:   | |
| template<typename ScalarType , typename InterfaceType , long value, typename RHS > | |
| ct_binary_expr< rt_constant < typename promote_traits < ScalarType, op_minus < typename InterfaceType::numeric_type > , long >::result_type, InterfaceType >, op_plus < typename InterfaceType::numeric_type > , RHS >  | operator- (rt_constant< ScalarType, InterfaceType > const &lhs, ct_binary_expr< ct_constant< value >, op_minus< typename InterfaceType::numeric_type >, RHS > const &other) | 
| Special overload for c1 - (ct_c2 - X) -> [c1 - ct_c2] + X, where c1 is a runtime constant, ct_c2 is a compiletime constant, and X is any expression:   | |
Defines special (non-standard) operator overloads for runtime constants.
 1.7.1