|
SIMLIB/C++ 3.09
|
abstract base for continuous blocks with single output suitable for expression-tree building and evaluation More...
#include <simlib.h>


Public Member Functions | |
| aContiBlock () | |
| virtual void | _Eval () |
| evaluate block (with loop detection) | |
| virtual double | Value ()=0 |
| get block output value this method should be defined in classes derived from aContiBlock | |
Public Member Functions inherited from simlib3::SimObject | |
| bool | TestAndSetFlag (bool new_value, unsigned n) |
| internal method for flag manipulation is used for algebraic loop checking in continuous blocks | |
| SimObject () | |
| constructor | |
| virtual | ~SimObject () |
| virtual destructor | |
| void * | operator new (size_t size) |
| allocate object, set _flags | |
| void | operator delete (void *ptr) |
| deallocate object | |
| void * | operator new[] (size_t size)=delete |
| void | operator delete[] (void *ptr)=delete |
| bool | isAllocated () const |
| virtual std::string | Name () const |
| get object name | |
| bool | HasName () const |
| void | SetName (const std::string &name) |
| assign the name | |
| virtual void | Output () const |
| print object to default output | |
Protected Attributes | |
| bool | isEvaluated |
Protected Attributes inherited from simlib3::SimObject | |
| unsigned | _flags |
| bool flags for internal use (TODO bitfield?) | |
Private Member Functions | |
| virtual void | Eval () |
| evaluate without loop detection | |
Additional Inherited Members | |
Public Types inherited from simlib3::SimObject | |
| enum | _Flags { _CLEAR_ALL_FLAGS = 0 , _ALLOCATED_FLAG = 1<<0 , _EVAL_FLAG = 1<<1 , _HAS_NAME_FLAG = 1<<2 } |
abstract base for continuous blocks with single output suitable for expression-tree building and evaluation
|
virtual |
evaluate block (with loop detection)
evaluation with algebraic loop detection
Reimplemented in simlib3::_Add, simlib3::_Sub, simlib3::_Mul, simlib3::_Div, simlib3::_UMinus, simlib3::Lim, simlib3::Insv, simlib3::Qntzr, simlib3::Frict, simlib3::Rline, simlib3::_Abs2D, simlib3::_ScalarProduct2D, simlib3::_XYpart, simlib3::_Abs3D, simlib3::_ScalarProduct3D, and simlib3::_XYZpart.
Definition at line 48 of file continuous.cc.
References AlgLoopDetected, Eval(), isEvaluated, and simlib3::SIMLIB_error().
Referenced by simlib3::Status::Value().
|
inlineprivatevirtual |
evaluate without loop detection
Reimplemented in simlib3::_Add, simlib3::_Sub, simlib3::_Mul, simlib3::_Div, simlib3::_UMinus, simlib3::Integrator, simlib3::Status, simlib3::Hyst, simlib3::Blash, and simlib3::Relay.
Definition at line 834 of file simlib.h.
Referenced by _Eval().
|
pure virtual |
get block output value
this method should be defined in classes derived from aContiBlock
Implemented in simlib3::_Add, simlib3::_Sub, simlib3::_Mul, simlib3::_Div, simlib3::_UMinus, simlib3::_Time, simlib3::Delay, simlib3::Constant, simlib3::Variable, simlib3::Parameter, simlib3::Expression, simlib3::Integrator, simlib3::Status, simlib3::Function1, simlib3::Function2, simlib3::Lim, simlib3::Insv, simlib3::Qntzr, simlib3::Frict, simlib3::Rline, simlib3::Iterations, simlib3::Bisect, simlib3::RegulaFalsi, simlib3::Newton, simlib3::_Abs2D, simlib3::_ScalarProduct2D, simlib3::_XYpart, simlib3::Integrator2D::special_input, simlib3::_Abs3D, simlib3::_ScalarProduct3D, simlib3::_XYZpart, simlib3::Integrator3D::special_input, and simlib3::ZDelay.
Referenced by Sample(), and simlib3::Input::Value().
|
protected |