|
fmatvec
0.0.0
|
A vertex of the AST representing an operation. More...
#include <ast.h>
Classes | |
| struct | CacheKeyComp |
| struct | OpMap |
Public Types | |
| enum | Operator { Plus , Minus , Mult , Div , Pow , Log , Sqrt , Neg , Sin , Cos , Tan , Sinh , Cosh , Tanh , ASin , ACos , ATan , ATan2 , ASinh , ACosh , ATanh , Exp , Sign , Heaviside , Abs , Min , Max , Condition } |
| Defined operations. | |
Public Member Functions | |
| SymbolicExpression | parDer (const IndependentVariable &x) const override |
| Generate a new AST being the partial derivate of this AST with respect to the variable x. More... | |
| Operator | getOp () const |
| const std::vector< SymbolicExpression > & | getChilds () const |
| std::vector< ByteCode >::iterator | dumpByteCode (std::vector< ByteCode > &byteCode, std::map< const Vertex *, std::vector< AST::ByteCode >::iterator > &existingVertex) const override |
| void | walkVertex (const std::function< void(const std::shared_ptr< const Vertex > &)> &func) const override |
Public Member Functions inherited from fmatvec::AST::Vertex | |
| virtual SymbolicExpression | parDer (const IndependentVariable &x) const =0 |
| Generate a new AST being the partial derivate of this AST with respect to the variable x. More... | |
| virtual bool | isConstantInt () const |
| Rreturn true if this Vertex is a constant integer. More... | |
| bool | isZero () const |
| bool | isOne () const |
| virtual std::vector< ByteCode >::iterator | dumpByteCode (std::vector< ByteCode > &byteCode, std::map< const Vertex *, std::vector< AST::ByteCode >::iterator > &existingVertex) const =0 |
| virtual void | walkVertex (const std::function< void(const std::shared_ptr< const Vertex > &)> &func) const =0 |
Static Public Member Functions | |
| static SymbolicExpression | create (Operator op_, const std::vector< SymbolicExpression > &child_) |
Private Types | |
| using | CacheKey = std::pair< Operator, std::vector< std::weak_ptr< const Vertex > > > |
Private Member Functions | |
| Operation (Operator op_, const std::vector< SymbolicExpression > &child_) | |
| bool | equal (const SymbolicExpression &b, MapIVSE &m) const override |
Private Attributes | |
| friend | SymbolicExpression |
| Operator | op |
| std::vector< SymbolicExpression > | child |
Static Private Attributes | |
| static std::map< CacheKey, std::weak_ptr< const Operation >, CacheKeyComp > | cache |
| static const std::map< Operator, OpMap > | opMap |
Friends | |
| SymbolicExpression | fmatvec::AST::substScalar (const SymbolicExpression &se, const IndependentVariable &a, const SymbolicExpression &b) |
| boost::spirit::qi::rule< boost::spirit::istream_iterator, SymbolicExpression()> & | fmatvec::getBoostSpiritQiRule () |
| boost::spirit::karma::rule< std::ostream_iterator< char >, SymbolicExpression()> & | fmatvec::getBoostSpiritKarmaRule () |
Additional Inherited Members | |
Protected Types inherited from fmatvec::AST::Vertex | |
| using | MapIVSE = std::map< IndependentVariable, SymbolicExpression, LessIV > |
| virtual bool | equal (const SymbolicExpression &b, MapIVSE &m) const =0 |
A vertex of the AST representing an operation.
|
overridevirtual |
Implements fmatvec::AST::Vertex.
|
overrideprivatevirtual |
Implements fmatvec::AST::Vertex.
|
overridevirtual |
Generate a new AST being the partial derivate of this AST with respect to the variable x.
Implements fmatvec::AST::Vertex.
|
overridevirtual |
Implements fmatvec::AST::Vertex.