OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
matheval::Parser< real_t > Class Template Reference

Class interface. More...

#include <matheval.hpp>

Collaboration diagram for matheval::Parser< real_t >:
Collaboration graph

Public Member Functions

template<typename Iterator >
void parse (Iterator first, Iterator last)
 Parse an expression.
 
void parse (std::string const &str)
 
void optimize ()
 
real_t evaluate (typename detail::eval_ast< real_t >::symbol_table_t const &st)
 Evaluate the AST with a given symbol table.
 

Private Attributes

detail::expr_ast< real_t > ast
 

Detailed Description

template<typename real_t>
class matheval::Parser< real_t >

Class interface.

This class hides the parser, AST, and AST traversal behind some member functions.

Template Parameters
real_tdatatype of the result

Definition at line 701 of file matheval.hpp.

Member Function Documentation

◆ evaluate()

template<typename real_t >
real_t matheval::Parser< real_t >::evaluate ( typename detail::eval_ast< real_t >::symbol_table_t const &  st)
inline

Evaluate the AST with a given symbol table.

Parameters
[in]stthe symbol table for variables

Definition at line 727 of file matheval.hpp.

Referenced by matheval::parse().

◆ optimize()

template<typename real_t >
void matheval::Parser< real_t >::optimize ( )
inline

Definition at line 721 of file matheval.hpp.

References matheval::detail::expr_ast< real_t >::tree.

◆ parse() [1/2]

template<typename real_t >
template<typename Iterator >
Parser::parse ( Iterator  first,
Iterator  last 
)
inline

Parse an expression.

This function builds the parser and parses the iterator into an AST.

Parameters
[in]firstiterator to the start of the input sequence
[in]lastiterator to the end of the input sequence

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 714 of file matheval.hpp.

Referenced by matheval::parse().

◆ parse() [2/2]

template<typename real_t >
void matheval::Parser< real_t >::parse ( std::string const &  str)
inline

Definition at line 719 of file matheval.hpp.

References matheval::Parser< real_t >::parse().

Referenced by matheval::Parser< real_t >::parse().

Here is the call graph for this function:

Member Data Documentation

◆ ast

template<typename real_t >
detail::expr_ast<real_t> matheval::Parser< real_t >::ast
private

Definition at line 702 of file matheval.hpp.


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