Data Structures | Namespaces | Functions

/export/development/ViennaMath/viennamath/manipulation/expand.hpp File Reference

Routines for expanding an expression such that the expression is given by the addition and subtraction of tokens consisting of multiplication and divisions only. More...

#include "viennamath/forwards.h"
#include "viennamath/runtime/unary_expr.hpp"
#include "viennamath/compiletime/unary_op_tags.hpp"
#include "viennamath/runtime/interval.hpp"
#include "viennamath/runtime/symbolic_interval.hpp"
#include "viennamath/runtime/integral.hpp"

Go to the source code of this file.

Data Structures

struct  expand< T >
 The main metafunction for expanding a compiletime expression. More...
struct  has_plus_or_minus< T >
struct  has_plus_or_minus< ct_binary_expr< LHS, op_plus< NumericT >, RHS > >
struct  has_plus_or_minus< ct_binary_expr< LHS, op_minus< NumericT >, RHS > >
struct  has_plus_or_minus< ct_binary_expr< LHS, op_mult< NumericT >, RHS > >
struct  has_plus_or_minus< ct_binary_expr< LHS, op_div< NumericT >, RHS > >
struct  expand_with_factor< ExpressionType, FactorType, needs_expansion >
struct  expand_with_factor< ct_binary_expr< LHS, op_plus< NumericT >, RHS >, FactorType, true >
struct  expand_with_factor< ct_binary_expr< LHS, op_minus< NumericT >, RHS >, FactorType, true >
struct  expand_with_factor< ct_binary_expr< LHS, op_mult< NumericT >, RHS >, FactorType, true >
struct  expand_with_factor< ct_binary_expr< LHS, op_div< NumericT >, RHS >, FactorType, true >
struct  expand_product< LHS, RHS, lhs_expandable, rhs_expandable >
struct  expand_product< LHS, RHS, true, false >
struct  expand_product< LHS, RHS, false, true >
struct  expand_product< LHS, RHS, true, true >
struct  expand< ct_binary_expr< LHS, op_plus< NumericT >, RHS > >
 Specialization for a binary expression (addition): Expand both addends. More...
struct  expand< ct_binary_expr< LHS, op_minus< NumericT >, RHS > >
 Specialization for a binary expression (subtraction): Expand both operands. More...
struct  expand< ct_binary_expr< LHS, op_mult< NumericT >, RHS > >
 Specialization for a binary expression (product): Redirect to helper metafunction. More...
struct  expand< ct_binary_expr< LHS, op_div< NumericT >, RHS > >
 Specialization for a binary expression (division): Expand numerator and denominator of fractional expressions separately. More...
struct  expand< ct_unary_expr< LHS, OP > >
 A unary expression is not expanded further, since the operator is typically nonlinear. More...
struct  expand< ct_function_symbol< TAG > >
 A function symbol cannot be further expanded, thus it is returned unmodified. More...
struct  expand< ct_constant< value > >
 A constant cannot be further expanded, thus it is returned unmodified. More...
struct  expand< ct_variable< id > >
 A variable cannot be further expanded, thus it is returned unmodified. More...

Namespaces

namespace  viennamath
 

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


namespace  viennamath::result_of
 

The namespace containing a set of metafunctions which can be used by the ViennaMath library user.


namespace  viennamath::result_of::detail
 

Implementation details for the metafunctions in ViennaMath. Not intended for direct use.


Functions

template<typename ExpressionType >
result_of::expand
< ExpressionType >::type 
expand (ExpressionType const &type)
 User function for expanding a compile time expression.

Detailed Description

Routines for expanding an expression such that the expression is given by the addition and subtraction of tokens consisting of multiplication and divisions only.