OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Public Member Functions | Private Attributes | List of all members
matheval::Parser< real_t > Class Template Reference

Class interface. More...

#include <matheval.hpp>

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) const
 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 715 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) const
inline

Evaluate the AST with a given symbol table.

Parameters
[in]stthe symbol table for variables

Definition at line 747 of file matheval.hpp.

Referenced by matheval::parse().

◆ optimize()

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

Definition at line 739 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 728 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 734 of file matheval.hpp.

Member Data Documentation

◆ ast

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

Definition at line 717 of file matheval.hpp.


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