fmatvec 0.0.0

Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
fmatvec::AST::Operation Class Reference

A vertex of the AST representing an operation. More...

`#include <ast.h>`

Inheritance diagram for fmatvec::AST::Operation:
[legend]

## 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.
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 bool | isConstantInt () const
| Rreturn true if this Vertex is a constant integer.
bool | isZero () const
bool | isOne () const

## 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 >

## Detailed Description

A vertex of the AST representing an operation.

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

- /mbsim-env/fmatvec/fmatvec/ast.h
- /mbsim-env/fmatvec/fmatvec/ast.cc