Namespaces | Functions

/export/development/ViennaMath/viennamath/runtime/operations/constant.hpp File Reference

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:

Detailed Description

Defines special (non-standard) operator overloads for runtime constants.