suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Loading...
Searching...
No Matches
Expression Class Referenceabstract

A Expression class represents a maths expression. More...

#include <Expression.h>

Inheritance diagram for Expression:
Collaboration diagram for Expression:

Public Member Functions

 Expression (unsigned, std::vector< std::string > &&)
 
virtual unique_ptr< Expressionunique_copy () const =0
 
virtual uword input_size () const
 
virtual uword output_size () const
 
bool compile (std::string_view)
 
Mat< doubleevaluate (double)
 
virtual Mat< doubleevaluate (const Col< double > &)=0
 
Mat< doublegradient (double)
 
virtual Mat< doublegradient (const Col< double > &)=0
 
void print () override
 
- Public Member Functions inherited from UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 

Static Public Member Functions

static std::string error ()
 

Protected Attributes

Col< doublex
 
std::string expression_text
 
std::vector< std::string > variable_text_list
 
exprtk::expression< doubleexpression
 
exprtk::symbol_table< doublesymbol_table
 

Detailed Description

A Expression class represents a maths expression.

Author
tlc
Date
12/01/2023

Constructor & Destructor Documentation

◆ Expression()

Expression::Expression ( unsigned  tag,
std::vector< std::string > &&  variable_string 
)
Here is the call graph for this function:

Member Function Documentation

◆ compile()

bool Expression::compile ( std::string_view  expression_string)

◆ error()

std::string Expression::error ( )
static

◆ evaluate() [1/2]

virtual Mat< double > Expression::evaluate ( const Col< double > &  )
pure virtual

◆ evaluate() [2/2]

Mat< double > Expression::evaluate ( double  in_x)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gradient() [1/2]

virtual Mat< double > Expression::gradient ( const Col< double > &  )
pure virtual

◆ gradient() [2/2]

Mat< double > Expression::gradient ( double  in_x)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_size()

uword Expression::input_size ( ) const
virtual
Here is the caller graph for this function:

◆ output_size()

uword Expression::output_size ( ) const
virtual

Reimplemented in SimpleVectorExpression.

Here is the caller graph for this function:

◆ print()

void Expression::print ( )
overridevirtual

Reimplemented from Tag.

Here is the caller graph for this function:

◆ unique_copy()

virtual unique_ptr< Expression > Expression::unique_copy ( ) const
pure virtual

Member Data Documentation

◆ expression

exprtk::expression<double> Expression::expression
protected

◆ expression_text

std::string Expression::expression_text
protected

◆ symbol_table

exprtk::symbol_table<double> Expression::symbol_table
protected

◆ variable_text_list

std::vector<std::string> Expression::variable_text_list
protected

◆ x

Col<double> Expression::x
protected

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