Data Structures | Namespaces | Functions

/export/development/ViennaMath/viennamath/compiletime/ct_interval.hpp File Reference

Defines a (mathematical) interval at compiletime and provides helpers/convenience functions for the generation. More...

#include <ostream>
#include "viennamath/forwards.h"

Go to the source code of this file.

Data Structures

class  ct_interval< LHS, RHS >
 A compile time interval. More...

Namespaces

namespace  viennamath
 

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


Functions

template<typename LHS , typename RHS >
std::ostream & operator<< (std::ostream &stream, ct_interval< LHS, RHS > const &u)
 Convenience overload for printing a compiletime interval to an output stream.
template<typename LHS1 , typename OP1 , typename RHS1 , typename LHS2 , typename OP2 , typename RHS2 >
ct_interval< ct_binary_expr
< LHS1, OP1, RHS1 >
, ct_binary_expr< LHS2, OP2,
RHS2 > > 
make_interval (ct_binary_expr< LHS1, OP1, RHS1 > const &lhs, ct_binary_expr< LHS2, OP2, RHS2 > const &rhs)
 Generates an interval from two binary expressions at compiletime.
template<typename LHS1 , typename OP1 , typename RHS1 , typename LHS2 , typename OP2 >
ct_interval< ct_binary_expr
< LHS1, OP1, RHS1 >
, ct_unary_expr< LHS2, OP2 > > 
make_interval (ct_binary_expr< LHS1, OP1, RHS1 > const &lhs, ct_unary_expr< LHS2, OP2 > const &rhs)
 Generates an interval from a binary expression and a unary expression at compiletime.
template<typename LHS1 , typename OP1 , typename RHS1 , long value>
ct_interval< ct_binary_expr
< LHS1, OP1, RHS1 >
, ct_constant< value > > 
make_interval (ct_binary_expr< LHS1, OP1, RHS1 > const &lhs, ct_constant< value > const &rhs)
 Generates an interval from a binary expression and a constant at compiletime.
template<typename LHS1 , typename OP1 , typename RHS1 , typename TAG >
ct_interval< ct_binary_expr
< LHS1, OP1, RHS1 >
, ct_function_symbol< TAG > > 
make_interval (ct_binary_expr< LHS1, OP1, RHS1 > const &lhs, ct_function_symbol< TAG > const &rhs)
 Generates an interval from a binary expression and a function symbol at compiletime.
template<typename LHS1 , typename OP1 , typename RHS1 , id_type id>
ct_interval< ct_binary_expr
< LHS1, OP1, RHS1 >
, ct_variable< id > > 
make_interval (ct_binary_expr< LHS1, OP1, RHS1 > const &lhs, ct_variable< id > const &rhs)
 Generates an interval from a binary expression and a variable at compiletime.
template<typename LHS1 , typename OP1 , typename LHS2 , typename OP2 , typename RHS2 >
ct_interval< ct_unary_expr
< LHS1, OP1 >, ct_binary_expr
< LHS2, OP2, RHS2 > > 
make_interval (ct_unary_expr< LHS1, OP1 > const &lhs, ct_binary_expr< LHS2, OP2, RHS2 > const &rhs)
 Generates an interval from a unary expression and a binary expression at compiletime.
template<typename LHS1 , typename OP1 , typename LHS2 , typename OP2 >
ct_interval< ct_unary_expr
< LHS1, OP1 >, ct_unary_expr
< LHS2, OP2 > > 
make_interval (ct_unary_expr< LHS1, OP1 > const &lhs, ct_unary_expr< LHS2, OP2 > const &rhs)
 Generates an interval from two unary expressions at compiletime.
template<typename LHS1 , typename OP1 , long value>
ct_interval< ct_unary_expr
< LHS1, OP1 >, ct_constant
< value > > 
make_interval (ct_unary_expr< LHS1, OP1 > const &lhs, ct_constant< value > const &rhs)
 Generates an interval from a unary expression and a constant at compiletime.
template<typename LHS1 , typename OP1 , typename TAG >
ct_interval< ct_unary_expr
< LHS1, OP1 >
, ct_function_symbol< TAG > > 
make_interval (ct_unary_expr< LHS1, OP1 > const &lhs, ct_function_symbol< TAG > const &rhs)
 Generates an interval from a unary expression and a function symbol at compiletime.
template<typename LHS1 , typename OP1 , id_type id>
ct_interval< ct_unary_expr
< LHS1, OP1 >, ct_variable< id > > 
make_interval (ct_unary_expr< LHS1, OP1 > const &lhs, ct_variable< id > const &rhs)
 Generates an interval from a unary expression and a variable at compiletime.
template<long value1, typename LHS2 , typename OP2 , typename RHS2 >
ct_interval< ct_constant
< value1 >, ct_binary_expr
< LHS2, OP2, RHS2 > > 
make_interval (ct_constant< value1 > const &lhs, ct_binary_expr< LHS2, OP2, RHS2 > const &rhs)
 Generates an interval from a constant and a binary expression at compiletime.
template<long value1, typename LHS2 , typename OP2 >
ct_interval< ct_constant
< value1 >, ct_unary_expr
< LHS2, OP2 > > 
make_interval (ct_constant< value1 > const &lhs, ct_unary_expr< LHS2, OP2 > const &rhs)
 Generates an interval from a constant and a unary expression at compiletime.
template<long value1, long value2>
ct_interval< ct_constant
< value1 >, ct_constant
< value2 > > 
make_interval (ct_constant< value1 > const &lhs, ct_constant< value2 > const &rhs)
 Generates an interval from two constants at compiletime.
template<long value1, typename TAG >
ct_interval< ct_constant
< value1 >, ct_function_symbol
< TAG > > 
make_interval (ct_constant< value1 > const &lhs, ct_function_symbol< TAG > const &rhs)
 Generates an interval from a constant and a function symbol at compiletime.
template<long value1, id_type id>
ct_interval< ct_constant
< value1 >, ct_variable< id > > 
make_interval (ct_constant< value1 > const &lhs, ct_variable< id > const &rhs)
 Generates an interval from a constant and a variable at compiletime.
template<typename TAG , typename LHS2 , typename OP2 , typename RHS2 >
ct_interval
< ct_function_symbol< TAG >
, ct_binary_expr< LHS2, OP2,
RHS2 > > 
make_interval (ct_function_symbol< TAG > const &lhs, ct_binary_expr< LHS2, OP2, RHS2 > const &rhs)
 Generates an interval from a function symbol and a binary expression at compiletime.
template<typename TAG , typename LHS2 , typename OP2 >
ct_interval
< ct_function_symbol< TAG >
, ct_unary_expr< LHS2, OP2 > > 
make_interval (ct_function_symbol< TAG > const &lhs, ct_unary_expr< LHS2, OP2 > const &rhs)
 Generates an interval from a function symbol and a unary expression at compiletime.
template<typename TAG , long value>
ct_interval
< ct_function_symbol< TAG >
, ct_constant< value > > 
make_interval (ct_function_symbol< TAG > const &lhs, ct_constant< value > const &rhs)
 Generates an interval from a function symbol and a constant at compiletime.
template<typename TAG1 , typename TAG2 >
ct_interval
< ct_function_symbol< TAG1 >
, ct_function_symbol< TAG2 > > 
make_interval (ct_function_symbol< TAG1 > const &lhs, ct_function_symbol< TAG2 > const &rhs)
 Generates an interval from two function symbols at compiletime.
template<typename TAG , id_type id>
ct_interval
< ct_function_symbol< TAG >
, ct_variable< id > > 
make_interval (ct_function_symbol< TAG > const &lhs, ct_variable< id > const &rhs)
 Generates an interval from a function symbol and a variable at compiletime.
template<id_type id1, typename LHS2 , typename OP2 , typename RHS2 >
ct_interval< ct_variable< id1 >
, ct_binary_expr< LHS2, OP2,
RHS2 > > 
make_interval (ct_variable< id1 > const &lhs, ct_binary_expr< LHS2, OP2, RHS2 > const &rhs)
 Generates an interval from a variable and a binary expression at compiletime.
template<id_type id1, typename LHS2 , typename OP2 >
ct_interval< ct_variable< id1 >
, ct_unary_expr< LHS2, OP2 > > 
make_interval (ct_variable< id1 > const &lhs, ct_unary_expr< LHS2, OP2 > const &rhs)
 Generates an interval from a variable and a unary expression at compiletime.
template<id_type id1, long value2>
ct_interval< ct_variable< id1 >
, ct_constant< value2 > > 
make_interval (ct_variable< id1 > const &lhs, ct_constant< value2 > const &rhs)
 Generates an interval from a variable and a constant at compiletime.
template<id_type id1, typename TAG >
ct_interval< ct_variable< id1 >
, ct_function_symbol< TAG > > 
make_interval (ct_variable< id1 > const &lhs, ct_function_symbol< TAG > const &rhs)
 Generates an interval from a variable and a function symbol at compiletime.
template<id_type id1, id_type id2>
ct_interval< ct_variable< id1 >
, ct_variable< id2 > > 
make_interval (ct_variable< id1 > const &lhs, ct_variable< id2 > const &rhs)
 Generates an interval from two variables at compiletime.

Detailed Description

Defines a (mathematical) interval at compiletime and provides helpers/convenience functions for the generation.