C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2

Base class for nodes of the expression tree. More...

#include <pars_equation_tree.h>

+ Inheritance diagram for BTreeNode:
+ Collaboration diagram for BTreeNode:

Public Types

typedef std::map< ItTreeVariable *, ItTreeVariable * > EqualVarsMap
 A set of pairs of variables.
 
typedef std::map< const ItCoord *, DerivesValuesVarsDerives
 A set of pairs: coordinate - value and derivatives.
 

Public Member Functions

virtual BteNodeType IsA () const =0
 Get type of a tree node.
 
virtual BTreeNodeDuplicate () const =0
 Create a copy of the object.
 
virtual bool IsLine () const =0
 Function is linear.
 
Functions for calculation of the value and the derivative.
virtual EquTreeResCode GetValue (double &fValue) const =0
 Calculate value. More...
 
virtual bool SetValue (double v, const std::set< ItTreeVariable * > &unfixedDVars)=0
 Set value. More...
 
virtual EquTreeResCode CalculateDerives (double &fValue, double &derive1, double &derive2, double &derive3, const VarsDerives &ders) const =0
 Calculate a value and derivatives. More...
 
EquTreeResCode CalculateDerives (const ItCoord *coord, double &v, double &fd, double &sd, double &td) const
 Calculate a value and derivatives. More...
 
virtual void GetUsedVariables (SSArray< ItTreeVariable * > &arr, SSArray< ItUserFunc * > &funcs) const =0
 Get the used variables. More...
 
Functions for replacing variables by names.
virtual void ReplaceParVariable (const c3d::string_t &varName, ItTreeVariable &newVar)=0
 Replace variables. More...
 
virtual void ReplaceParVariable (const ItTreeVariable &var, const BTreeNode &subTree)=0
 Replace a node. More...
 
virtual void ReplaceIntVariable (const c3d::string_t &, ItIntervalTreeVariable &)
 Replace variables. More...
 
Functions for access to data.
bool GetExtremumPoints (const c3d::DoublePair &interval, ItTreeVariable &var, c3d::DoubleVector &points)
 Get value of parameter of extremum. More...
 
virtual bool GetDefRange (DefRange &defRange, ItTreeVariable &var, bool stopOnBreak) const =0
 Domain. More...
 
virtual size_t GetPseudoOrderByVar (ItTreeVariable &var) const =0
 For internal use only! Order of variable. More...
 
virtual std::unique_ptr< BTreeNodeFixVars (const RPArray< ItTreeVariable > &unfixedVars, PArray< ItUserFunc > &newFuncs, EquTreeResCode &code) const =0
 Fixed variables. More...
 
virtual std::unique_ptr< BTreeNodeGetCalcEquivalent () const =0
 Get equivalent node.
 
virtual void GetString (c3d::string_t &) const =0
 Get string. More...
 
virtual size_t SizeOf () const =0
 Get size in bytes.
 
Comparison function.
virtual bool IsEqual (const BTreeNode &other, const EqualVarsMap &varsMap) const =0
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeConst &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeIdent &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeFunction &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeOperation &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeOperation1Arg &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeOperation3Args &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
virtual bool IsEqual (const BTreeUserFunc &, const EqualVarsMap &) const
 Whether the node is equal to the given node. More...
 
- Public Member Functions inherited from TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Constructor.
 
 TapeBase (const TapeBase &)
 Copy-constructor.
 
virtual ~TapeBase ()
 Destructor.
 
RegistrableRec GetRegistrable () const
 Whether the stream class is registrable.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Set the state of registration of the stream class.
 
virtual const char * GetPureName (const VersionContainer &) const
 Get the class name.
 
virtual bool IsFamilyRegistrable () const
 Whether the object belongs to a registrable family.
 

Public Attributes

BteNodeType type
 A type of node.
 

Protected Member Functions

 BTreeNode ()
 Default constructor.
 

Protected Attributes

VarsDerives varDers
 Working variables.
 

Detailed Description

Base class for nodes of the expression tree.

Base class for nodes of the expression tree.

Member Function Documentation

◆ GetValue()

virtual EquTreeResCode BTreeNode::GetValue ( double &  fValue) const
pure virtual

Calculate value.

Calculate value of node.

Parameters
[out]fValue- Value.
Returns
String parsing result code.

Implemented in BTreeFunction, BTreeOperation1Arg, BTreeOperation, BTreeIdent, BTreeConst, BTreeOperation3Args, and BTreeUserFunc.

◆ SetValue()

virtual bool BTreeNode::SetValue ( double  v,
const std::set< ItTreeVariable * > &  unfixedDVars 
)
pure virtual

Set value.

Set 'v' value to a tree node.

Parameters
[in]v- Desirable value.
[in]unfixedDVars- Variables which values can be changed.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ CalculateDerives() [1/2]

virtual EquTreeResCode BTreeNode::CalculateDerives ( double &  fValue,
double &  derive1,
double &  derive2,
double &  derive3,
const VarsDerives ders 
) const
pure virtual

Calculate a value and derivatives.

Calculate a value and derivatives.

Parameters
[out]fValue- Value.
[out]derive1- The first derivative.
[out]derive2- The second derivative.
[out]derive3- The third derivative.
[in]ders- Set of values and derivatives.
Returns
String parsing result code.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ CalculateDerives() [2/2]

EquTreeResCode BTreeNode::CalculateDerives ( const ItCoord coord,
double &  v,
double &  fd,
double &  sd,
double &  td 
) const

Calculate a value and derivatives.

Calculate a value and derivatives.

Parameters
[in]coord- Coordinate.
[out]v- Value.
[out]fd- The first derivative.
[out]sd- The second derivative.
[out]td- The third derivative.
Returns
String parsing result code.

◆ GetUsedVariables()

virtual void BTreeNode::GetUsedVariables ( SSArray< ItTreeVariable * > &  arr,
SSArray< ItUserFunc * > &  funcs 
) const
pure virtual

Get the used variables.

Get the used variables.

Parameters
[out]arr- Variables.
[out]funcs- User functions.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ ReplaceParVariable() [1/2]

virtual void BTreeNode::ReplaceParVariable ( const c3d::string_t varName,
ItTreeVariable newVar 
)
pure virtual

Replace variables.

Replace all variables with the specified name by a new variable.

Parameters
[out]varName- Name.
[out]newVar- New variable.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ ReplaceParVariable() [2/2]

virtual void BTreeNode::ReplaceParVariable ( const ItTreeVariable var,
const BTreeNode subTree 
)
pure virtual

Replace a node.

Replace a node with a copy of a new one if the given variable is used.

Parameters
[out]var- Variable.
[out]subTree- New node.

Implemented in BTreeOperation, BTreeFunction, BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeIdent, and BTreeConst.

◆ ReplaceIntVariable()

virtual void BTreeNode::ReplaceIntVariable ( const c3d::string_t ,
ItIntervalTreeVariable  
)
inlinevirtual

Replace variables.

Replace all variables with the specified name by a new variable.

◆ GetExtremumPoints()

bool BTreeNode::GetExtremumPoints ( const c3d::DoublePair interval,
ItTreeVariable var,
c3d::DoubleVector points 
)

Get value of parameter of extremum.

Get value of parameter of extremum if it is possible.

Parameters
[in]interval- Interval to search.
[in]var- Variable.
[out]points- Points of extremum.

◆ GetDefRange()

virtual bool BTreeNode::GetDefRange ( DefRange defRange,
ItTreeVariable var,
bool  stopOnBreak 
) const
pure virtual

Domain.

Domain.

Parameters
[in,out]defRange- Domain.
[out]var- Variable.
[in]stopOnBreak- Not to search the discontinuities in the definition domain.

Implemented in BTreeOperation1Arg, BTreeIdent, BTreeConst, BTreeUserFunc, BTreeOperation3Args, BTreeOperation, and BTreeFunction.

◆ GetPseudoOrderByVar()

virtual size_t BTreeNode::GetPseudoOrderByVar ( ItTreeVariable var) const
pure virtual

For internal use only! Order of variable.

Order of variable.

Parameters
[in]var- Variable.
Returns
Order.

◆ FixVars()

virtual std::unique_ptr<BTreeNode> BTreeNode::FixVars ( const RPArray< ItTreeVariable > &  unfixedVars,
PArray< ItUserFunc > &  newFuncs,
EquTreeResCode code 
) const
pure virtual

Fixed variables.

Fixed variables.

Parameters
[in]unfixedVars- A set of unfixed variables. If variable was found in set, then fix the copy.
[in]newFuncs- User functions.
[out]code- Result codes of string parsing.
Returns
Variable for fixation.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ GetString()

virtual void BTreeNode::GetString ( c3d::string_t ) const
pure virtual

Get string.

Get expression string.

Parameters
[out]-String.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ IsEqual() [1/8]

virtual bool BTreeNode::IsEqual ( const BTreeNode other,
const EqualVarsMap varsMap 
) const
pure virtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Parameters
[in]other- Node for comparison.
[in]varsMap- A set of pairs of equal variables.
Returns
true if nodes are equal.

Implemented in BTreeUserFunc, BTreeOperation3Args, BTreeOperation1Arg, BTreeOperation, BTreeFunction, BTreeIdent, and BTreeConst.

◆ IsEqual() [2/8]

virtual bool BTreeNode::IsEqual ( const BTreeConst ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeConst.

◆ IsEqual() [3/8]

virtual bool BTreeNode::IsEqual ( const BTreeIdent ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeIdent.

◆ IsEqual() [4/8]

virtual bool BTreeNode::IsEqual ( const BTreeFunction ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeFunction.

◆ IsEqual() [5/8]

virtual bool BTreeNode::IsEqual ( const BTreeOperation ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeOperation.

◆ IsEqual() [6/8]

virtual bool BTreeNode::IsEqual ( const BTreeOperation1Arg ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeOperation1Arg.

◆ IsEqual() [7/8]

virtual bool BTreeNode::IsEqual ( const BTreeOperation3Args ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeOperation3Args.

◆ IsEqual() [8/8]

virtual bool BTreeNode::IsEqual ( const BTreeUserFunc ,
const EqualVarsMap  
) const
inlinevirtual

Whether the node is equal to the given node.

Whether the node is equal to the given node.

Returns
false.

Reimplemented in BTreeUserFunc.


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