![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
Defines the general purposes of any expression. More...
#include <Expr_GeneralExpression.hxx>

Public Member Functions | |
| virtual int | NbSubExpressions () const =0 |
| Returns the number of sub-expressions contained in <me> ( >= 0) | |
| virtual const occ::handle< Expr_GeneralExpression > & | SubExpression (const int I) const =0 |
| Returns the -th sub-expression of <me> raises OutOfRange if > NbSubExpressions(me) | |
| virtual occ::handle< Expr_GeneralExpression > | Simplified () const =0 |
| Returns a GeneralExpression after replacement of NamedUnknowns by an associated expression and after values computation. | |
| virtual occ::handle< Expr_GeneralExpression > | ShallowSimplified () const =0 |
| Returns a GeneralExpression after a simplification of the arguments of <me>. | |
| virtual occ::handle< Expr_GeneralExpression > | Copy () const =0 |
| Returns a copy of <me> having the same unknowns and functions. | |
| virtual bool | ContainsUnknowns () const =0 |
| Tests if <me> contains NamedUnknowns. | |
| virtual bool | Contains (const occ::handle< Expr_GeneralExpression > &exp) const =0 |
| Tests if <exp> is contained in <me>. | |
| virtual bool | IsLinear () const =0 |
| Tests if <me> is linear on every NamedUnknown it contains. | |
| virtual bool | IsShareable () const |
| Tests if <me> can be shared by one or more expressions or must be copied. This method returns False as a default value. To be redefined ( especially for NamedUnknown). | |
| virtual bool | IsIdentical (const occ::handle< Expr_GeneralExpression > &Other) const =0 |
| Tests if <me> and <Other> define the same expression. Warning: This method does not include any simplification before testing. It could also be very slow; to be used carefully. | |
| virtual occ::handle< Expr_GeneralExpression > | Derivative (const occ::handle< Expr_NamedUnknown > &X) const =0 |
| Returns the derivative on <X> unknown of <me> | |
| virtual occ::handle< Expr_GeneralExpression > | NDerivative (const occ::handle< Expr_NamedUnknown > &X, const int N) const |
| Returns the <N>-th derivative on <X> unknown of <me>. Raise OutOfRange if N <= 0. | |
| virtual void | Replace (const occ::handle< Expr_NamedUnknown > &var, const occ::handle< Expr_GeneralExpression > &with)=0 |
| Replaces all occurrences of with copies of <with> in <me>. Copies of <with> are made with the Copy() method. Raises InvalidOperand if <with> contains <me>. | |
| virtual double | Evaluate (const NCollection_Array1< occ::handle< Expr_NamedUnknown > > &vars, const NCollection_Array1< double > &vals) const =0 |
| Returns the value of <me> (as a Real) by replacement of <vars> by <vals>. Raises NotEvaluable if <me> contains NamedUnknown not in <vars> or NumericError if result cannot be computed. | |
| double | EvaluateNumeric () const |
| Returns the value of <me> (as a Real) by replacement of <vars> by <vals>. Raises NotEvaluable if <me> contains NamedUnknown not in <vars> or NumericError if result cannot be computed. | |
| virtual TCollection_AsciiString | String () const =0 |
| returns a string representing <me> in a readable way. | |
Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor. | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing. | |
| Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. | |
| virtual | ~Standard_Transient ()=default |
| Destructor must be virtual. | |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. | |
| bool | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. | |
| bool | IsInstance (const char *const theTypeName) const |
| Returns a true value if this is an instance of TypeName. | |
| bool | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| bool | IsKind (const char *const theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
| int | GetRefCount () const noexcept |
| Get the reference counter of this object. | |
| void | IncrementRefCounter () noexcept |
| Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations. | |
| int | DecrementRefCounter () noexcept |
| Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement. | |
| virtual void | Delete () const |
| Memory deallocator for transient classes. | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
| typedef void | base_type |
| Returns a type descriptor about this object. | |
Static Public Member Functions inherited from Standard_Transient | |
| static constexpr const char * | get_type_name () |
| Returns a type descriptor about this object. | |
| static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
| Returns type descriptor of Standard_Transient class. | |
Defines the general purposes of any expression.
|
pure virtual |
Tests if <exp> is contained in <me>.
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.
Tests if <me> contains NamedUnknowns.
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.
|
pure virtual |
Returns a copy of <me> having the same unknowns and functions.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
|
pure virtual |
Returns the derivative on <X> unknown of <me>
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
|
pure virtual |
Returns the value of <me> (as a Real) by replacement of <vars> by <vals>. Raises NotEvaluable if <me> contains NamedUnknown not in <vars> or NumericError if result cannot be computed.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
| double Expr_GeneralExpression::EvaluateNumeric | ( | ) | const |
Returns the value of <me> (as a Real) by replacement of <vars> by <vals>. Raises NotEvaluable if <me> contains NamedUnknown not in <vars> or NumericError if result cannot be computed.
|
pure virtual |
Tests if <me> and <Other> define the same expression. Warning: This method does not include any simplification before testing. It could also be very slow; to be used carefully.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedExpression, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
Tests if <me> is linear on every NamedUnknown it contains.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
Tests if <me> can be shared by one or more expressions or must be copied. This method returns False as a default value. To be redefined ( especially for NamedUnknown).
Reimplemented in Expr_NamedExpression.
Returns the number of sub-expressions contained in <me> ( >= 0)
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.
|
virtual |
Returns the <N>-th derivative on <X> unknown of <me>. Raise OutOfRange if N <= 0.
Reimplemented in Expr_Difference, Expr_NamedConstant, Expr_NumericValue, Expr_Sum, and Expr_UnaryMinus.
|
pure virtual |
Replaces all occurrences of with copies of <with> in <me>. Copies of <with> are made with the Copy() method. Raises InvalidOperand if <with> contains <me>.
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.
|
pure virtual |
Returns a GeneralExpression after a simplification of the arguments of <me>.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
|
pure virtual |
Returns a GeneralExpression after replacement of NamedUnknowns by an associated expression and after values computation.
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.
|
pure virtual |
returns a string representing <me> in a readable way.
Implemented in Expr_Absolute, Expr_ArcCosine, Expr_ArcSine, Expr_ArcTangent, Expr_ArgCosh, Expr_ArgSinh, Expr_ArgTanh, Expr_BinaryFunction, Expr_Cosh, Expr_Cosine, Expr_Difference, Expr_Division, Expr_Exponential, Expr_Exponentiate, Expr_LogOf10, Expr_LogOfe, Expr_NamedExpression, Expr_NumericValue, Expr_PolyFunction, Expr_Product, Expr_Sign, Expr_Sine, Expr_Sinh, Expr_Square, Expr_SquareRoot, Expr_Sum, Expr_Tangent, Expr_Tanh, Expr_UnaryFunction, and Expr_UnaryMinus.
|
pure virtual |
Returns the -th sub-expression of <me> raises OutOfRange if > NbSubExpressions(me)
Implemented in Expr_BinaryExpression, Expr_NamedConstant, Expr_NamedUnknown, Expr_NumericValue, Expr_PolyExpression, and Expr_UnaryExpression.