|
fmatvec
0.0.0
|
A vertex of the AST representing an arbitary function. More...
#include <ast.h>
Classes | |
| struct | CacheKeyComp |
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... | |
| 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 (const std::shared_ptr< ScalarFunctionWrapArg > &funcWrapper, const std::vector< SymbolicExpression > &argS, const std::vector< SymbolicExpression > &dir1S={}, const std::vector< SymbolicExpression > &dir2S={}) |
Private Types | |
| using | CacheKey = std::tuple< std::weak_ptr< ScalarFunctionWrapArg >, std::vector< std::weak_ptr< const Vertex > >, std::vector< std::weak_ptr< const Vertex > >, std::vector< std::weak_ptr< const Vertex > > > |
Private Member Functions | |
| NativeFunction (const std::shared_ptr< ScalarFunctionWrapArg > &func_, const std::vector< SymbolicExpression > &argS, const std::vector< SymbolicExpression > &dir1S, const std::vector< SymbolicExpression > &dir2S) | |
| bool | equal (const SymbolicExpression &b, MapIVSE &m) const override |
Private Attributes | |
| std::shared_ptr< ScalarFunctionWrapArg > | funcWrapper |
| const std::vector< SymbolicExpression > | argS |
| const std::vector< SymbolicExpression > | dir1S |
| const std::vector< SymbolicExpression > | dir2S |
Static Private Attributes | |
| static std::map< CacheKey, std::weak_ptr< const NativeFunction >, CacheKeyComp > | cache |
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 arbitary function.
|
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.