OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
matheval.hpp File Reference
#include <algorithm>
#include <cmath>
#include <functional>
#include <iterator>
#include <limits>
#include <map>
#include <sstream>
#include <stdexcept>
#include <string>
#include <boost/math/constants/constants.hpp>
#include <boost/phoenix.hpp>
#include <boost/spirit/include/qi.hpp>
#include <boost/variant.hpp>
Include dependency graph for matheval.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  matheval::detail::nil
struct  matheval::detail::expr_ast< real_t >
 Abstract Syntax Tree. More...
struct  matheval::detail::unary_op< real_t >
 Store a unary operator and its argument tree. More...
struct  matheval::detail::binary_op< real_t >
 Store a binary operator and its argument trees. More...
class  matheval::detail::eval_ast< real_t >
 Evaluate the Abstract Syntax Tree. More...
struct  matheval::detail::holds_alternative_impl< T >
struct  matheval::detail::ConstantFolder< real_t >
struct  matheval::detail::unary_expr_< real_t >
 Unary expression functor. More...
struct  matheval::detail::unary_expr_< real_t >::result< T >
 Make boost::phoenix::function happy. More...
struct  matheval::detail::binary_expr_< real_t >
 Binary expression functor. More...
struct  matheval::detail::binary_expr_< real_t >::result< T >
 Make boost::phoenix::function happy. More...
struct  matheval::detail::expectation_handler
 Error handler for expectation errors. More...
struct  matheval::detail::grammar< real_t, Iterator >
 Expression Grammar. More...
struct  matheval::detail::grammar< real_t, Iterator >::constant_
 symbol table for constants like "pi" More...
struct  matheval::detail::grammar< real_t, Iterator >::ufunc_
 symbol table for unary functions like "abs" More...
struct  matheval::detail::grammar< real_t, Iterator >::bfunc_
 symbol table for binary functions like "pow" More...
class  matheval::Parser< real_t >
 Class interface. More...

Namespaces

namespace  matheval
namespace  matheval::detail
namespace  matheval::detail::math

Macros

#define BOOST_RESULT_OF_USE_DECLTYPE
#define BOOST_SPIRIT_USE_PHOENIX_V3

Functions

template<typename T>
T matheval::detail::math::sgn (T x)
 Sign function.
template<typename T>
T matheval::detail::math::isnan (T x)
 isnan function with adjusted return type
template<typename T>
T matheval::detail::math::isinf (T x)
 isinf function with adjusted return type
template<typename T>
T matheval::detail::math::deg (T x)
 Convert radians to degrees.
template<typename T>
T matheval::detail::math::rad (T x)
 Convert degrees to radians.
template<typename T, typename... Ts>
bool matheval::detail::holds_alternative (boost::variant< Ts... > const &v)
template<typename real_t, typename Iterator>
detail::expr_ast< real_t > matheval::detail::parse (Iterator first, Iterator last)
 Parse an expression.
template<typename real_t, typename Iterator>
real_t matheval::parse (Iterator first, Iterator last, typename detail::eval_ast< real_t >::symbol_table_t const &st)
 Convenience function.
template<typename real_t>
real_t matheval::parse (std::string const &str, typename detail::eval_ast< real_t >::symbol_table_t const &st)

Class Documentation

◆ matheval::detail::nil

struct matheval::detail::nil

Definition at line 87 of file matheval.hpp.

Collaboration diagram for matheval::detail::nil:

◆ matheval::detail::unary_expr_::result

struct matheval::detail::unary_expr_::result
template<typename real_t>
template<typename T>
struct matheval::detail::unary_expr_< real_t >::result< T >

Make boost::phoenix::function happy.

Definition at line 327 of file matheval.hpp.

Collaboration diagram for matheval::detail::unary_expr_< real_t >::result< T >:
Class Members
typedef T type T

◆ matheval::detail::binary_expr_::result

struct matheval::detail::binary_expr_::result
template<typename real_t>
template<typename T>
struct matheval::detail::binary_expr_< real_t >::result< T >

Make boost::phoenix::function happy.

Definition at line 340 of file matheval.hpp.

Collaboration diagram for matheval::detail::binary_expr_< real_t >::result< T >:
Class Members
typedef T type T

Macro Definition Documentation

◆ BOOST_RESULT_OF_USE_DECLTYPE

#define BOOST_RESULT_OF_USE_DECLTYPE

Definition at line 27 of file matheval.hpp.

◆ BOOST_SPIRIT_USE_PHOENIX_V3

#define BOOST_SPIRIT_USE_PHOENIX_V3

Definition at line 28 of file matheval.hpp.