Public Types | Public Member Functions

rt_expr< InterfaceType > Class Template Reference

This class represents a smart pointer to all types expressions. More...

#include <expr.hpp>

Public Types

typedef InterfaceType::numeric_type numeric_type
typedef InterfaceType interface_type

Public Member Functions

 rt_expr ()
 rt_expr (const InterfaceType *e)
 rt_expr (rt_binary_expr< InterfaceType > const &other)
 rt_expr (rt_unary_expr< InterfaceType > const &other)
template<typename LHS , typename OP , typename RHS >
 rt_expr (ct_binary_expr< LHS, OP, RHS > const &other)
template<typename LHS , typename OP >
 rt_expr (ct_unary_expr< LHS, OP > const &other)
 rt_expr (rt_variable< InterfaceType > const &other)
template<id_type id>
 rt_expr (ct_variable< id > const &other)
template<typename T >
 rt_expr (rt_constant< T, InterfaceType > const &other)
 rt_expr (rt_function_symbol< InterfaceType > const &other)
 rt_expr (rt_vector_expr< InterfaceType > const &other)
template<long value>
 rt_expr (ct_constant< value > const &other)
 rt_expr (numeric_type const &other)
 rt_expr (rt_expr const &other)
rt_exproperator= (InterfaceType *other)
rt_exproperator= (rt_expr const &other)
template<typename LHS , typename OP , typename RHS >
rt_exproperator= (ct_binary_expr< LHS, OP, RHS > const &other)
template<typename LHS , typename OP >
rt_exproperator= (ct_unary_expr< LHS, OP > const &other)
rt_exproperator= (rt_binary_expr< InterfaceType > const &other)
rt_exproperator= (rt_variable< InterfaceType > const &other)
template<id_type id>
rt_exproperator= (ct_variable< id > const &other)
template<typename ScalarType >
rt_exproperator= (rt_constant< ScalarType, InterfaceType > const &other)
template<long value>
rt_exproperator= (ct_constant< value > const &other)
rt_exproperator= (rt_function_symbol< InterfaceType > const &other)
rt_exproperator= (rt_vector_expr< InterfaceType > const &other)
rt_exproperator= (numeric_type value)
const InterfaceType * get () const
numeric_type operator() (numeric_type val) const
template<typename ScalarType >
numeric_type operator() (rt_constant< ScalarType, InterfaceType > val) const
template<long value>
numeric_type operator() (ct_constant< value > val) const
template<typename VectorType >
numeric_type operator() (VectorType const &v) const
numeric_type operator() (std::vector< numeric_type > const &stl_v) const
template<typename T0 >
numeric_type operator() (viennamath::ct_vector_1< T0 > const &v) const
template<typename T0 , typename T1 >
numeric_type operator() (viennamath::ct_vector_2< T0, T1 > const &v) const
template<typename T0 , typename T1 , typename T2 >
numeric_type operator() (viennamath::ct_vector_3< T0, T1, T2 > const &v) const

Detailed Description

template<typename InterfaceType>
class viennamath::rt_expr< InterfaceType >

This class represents a smart pointer to all types expressions.

Additionally provides the basic user-interface for evaluation using operator().

Template Parameters:
InterfaceType The expression runtime interface to inherit from. Usually rt_expression_interface, but extensions are possible.

Member Typedef Documentation

typedef InterfaceType interface_type
typedef InterfaceType::numeric_type numeric_type

Constructor & Destructor Documentation

rt_expr (  )  [inline]
rt_expr ( const InterfaceType *  e  )  [inline, explicit]
rt_expr ( rt_binary_expr< InterfaceType > const &  other  )  [inline]
rt_expr ( rt_unary_expr< InterfaceType > const &  other  )  [inline]
rt_expr ( ct_binary_expr< LHS, OP, RHS > const &  other  )  [inline]
rt_expr ( ct_unary_expr< LHS, OP > const &  other  )  [inline]
rt_expr ( rt_variable< InterfaceType > const &  other  )  [inline]
rt_expr ( ct_variable< id > const &  other  )  [inline]
rt_expr ( rt_constant< T, InterfaceType > const &  other  )  [inline]
rt_expr ( rt_function_symbol< InterfaceType > const &  other  )  [inline]
rt_expr ( rt_vector_expr< InterfaceType > const &  other  )  [inline]
rt_expr ( ct_constant< value > const &  other  )  [inline]
rt_expr ( numeric_type const &  other  )  [inline]
rt_expr ( rt_expr< InterfaceType > const &  other  )  [inline]

Member Function Documentation

const InterfaceType* get (  )  const [inline]
numeric_type operator() ( ct_constant< value >  val  )  const [inline]
numeric_type operator() ( VectorType const &  v  )  const [inline]
numeric_type operator() ( std::vector< numeric_type > const &  stl_v  )  const [inline]
numeric_type operator() ( viennamath::ct_vector_1< T0 > const &  v  )  const [inline]
numeric_type operator() ( viennamath::ct_vector_2< T0, T1 > const &  v  )  const [inline]
numeric_type operator() ( viennamath::ct_vector_3< T0, T1, T2 > const &  v  )  const [inline]
numeric_type operator() ( numeric_type  val  )  const [inline]
numeric_type operator() ( rt_constant< ScalarType, InterfaceType >  val  )  const [inline]
rt_expr& operator= ( rt_variable< InterfaceType > const &  other  )  [inline]
rt_expr& operator= ( numeric_type  value  )  [inline]
rt_expr& operator= ( rt_vector_expr< InterfaceType > const &  other  )  [inline]
rt_expr& operator= ( ct_constant< value > const &  other  )  [inline]
rt_expr& operator= ( rt_function_symbol< InterfaceType > const &  other  )  [inline]
rt_expr& operator= ( rt_expr< InterfaceType > const &  other  )  [inline]
rt_expr& operator= ( InterfaceType *  other  )  [inline]
rt_expr& operator= ( ct_binary_expr< LHS, OP, RHS > const &  other  )  [inline]
rt_expr& operator= ( ct_unary_expr< LHS, OP > const &  other  )  [inline]
rt_expr& operator= ( rt_binary_expr< InterfaceType > const &  other  )  [inline]
rt_expr& operator= ( ct_variable< id > const &  other  )  [inline]
rt_expr& operator= ( rt_constant< ScalarType, InterfaceType > const &  other  )  [inline]

The documentation for this class was generated from the following file: