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. |
Routines for expanding an expression such that the expression is given by the addition and subtraction of tokens consisting of multiplication and divisions only.