1#ifndef DUNE_COPASI_SYMENGINE_PARSER_HH
2#define DUNE_COPASI_SYMENGINE_PARSER_HH
6#include <symengine/lambda_double.h>
7#include <symengine/parser.h>
8#include <symengine/parser/sbml/sbml_parser.h>
9#ifdef HAVE_SYMENGINE_LLVM
10#include <symengine/llvm_double.h>
15#include <unordered_map>
70 std::
vector<std::
string> _const_symbols;
76#ifdef HAVE_SYMENGINE_LLVM
77 std::list<SymEngine::LLVMDoubleVisitor> _visitors;
79 std::list<SymEngine::LambdaRealDoubleVisitor> _visitors;
82 mutable std::vector<fu2::unique_function<
void()>> _setup, _callbacks;
std::string expression() const
fu2::unique_function< RangeField(RangeField, RangeField, RangeField) const > Function3D
Definition parser.hh:34
fu2::unique_function< RangeField() const > Function0D
Definition parser.hh:31
fu2::unique_function< RangeField(RangeField, RangeField, RangeField, RangeField) const > Function4D
Definition parser.hh:35
double RangeField
Definition parser.hh:29
fu2::unique_function< RangeField(RangeField, RangeField) const > Function2D
Definition parser.hh:33
fu2::unique_function< RangeField(RangeField) const > Function1D
Definition parser.hh:32
Definition symengine.hh:21
SymEngineParser & operator=(SymEngineParser &&)=default
SymEngineParser(Type parser_type=Type::Native)
void compile() override final
void define_function(const std::string &symbol, Function0D &&function) override final
Type
Definition symengine.hh:25
typename Parser::Function0D Function0D
Definition symengine.hh:32
typename Parser::Function3D Function3D
Definition symengine.hh:35
typename Parser::Function4D Function4D
Definition symengine.hh:36
typename Parser::RangeField RangeField
Definition symengine.hh:30
typename Parser::Function1D Function1D
Definition symengine.hh:33
~SymEngineParser() override final=default
typename Parser::Function2D Function2D
Definition symengine.hh:34
SymEngineParser(SymEngineParser &&)=default
SymEngineParser & operator=(const SymEngineParser &)=delete
void define_constant(const std::string &symbol, const RangeField &value) override final
void set_expression(const std::string &expression) override final
std::vector< std::shared_ptr< std::size_t > > setup_function_symbol(const std::string &symbol)
SymEngineParser(const SymEngineParser &)=delete
Definition axis_names.hh:7
constexpr bool is_bitflags_v
Alias for Bitflag indicator.
Definition bit_flags.hh:24