SIMLIB/C++
3.07
|
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) More... | |
virtual double | Value ()=0 |
get block output value this method should be defined in classes derived from aContiBlock More... | |
![]() | |
bool | TestAndSetFlag (bool new_value, unsigned n) |
internal method for flag manipulation is used for algebraic loop checking in continuous blocks More... | |
SimObject () | |
constructor More... | |
virtual | ~SimObject () |
virtual destructor More... | |
void * | operator new (size_t size) |
allocate object, set _flags More... | |
void | operator delete (void *ptr) |
deallocate object More... | |
void * | operator new[] (size_t size)=delete |
void | operator delete[] (void *ptr)=delete |
bool | isAllocated () const |
virtual std::string | Name () const |
get object name More... | |
bool | HasName () const |
void | SetName (const std::string &name) |
assign the name More... | |
virtual void | Output () const |
print object to default output More... | |
Protected Attributes | |
bool | isEvaluated |
![]() | |
unsigned | _flags |
bool flags for internal use (TODO bitfield?) More... | |
Private Member Functions | |
virtual void | Eval () |
evaluate without loop detection More... | |
Additional Inherited Members | |
![]() | |
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::Rline, simlib3::Frict, simlib3::Qntzr, simlib3::Insv, simlib3::Lim, simlib3::_XYZpart, simlib3::_XYpart, simlib3::_ScalarProduct3D, simlib3::_ScalarProduct2D, simlib3::_Abs3D, simlib3::_Abs2D, simlib3::_UMinus, simlib3::_Div, simlib3::_Mul, simlib3::_Sub, and simlib3::_Add.
Definition at line 48 of file continuous.cc.
References simlib3::AlgLoopDetected, Eval(), isEvaluated, and simlib3::SIMLIB_error().
Referenced by simlib3::Status::Value().
|
inlineprivatevirtual |
evaluate without loop detection
Reimplemented in simlib3::Relay, simlib3::Blash, simlib3::Hyst, simlib3::Status, simlib3::Integrator, simlib3::_UMinus, simlib3::_Div, simlib3::_Mul, simlib3::_Sub, and simlib3::_Add.
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::Newton, simlib3::RegulaFalsi, simlib3::Bisect, simlib3::Iterations, simlib3::Rline, simlib3::Frict, simlib3::Qntzr, simlib3::Insv, simlib3::Lim, simlib3::Function2, simlib3::Function1, simlib3::Status, simlib3::Integrator, simlib3::Expression, simlib3::Parameter, simlib3::Variable, simlib3::Constant, simlib3::_XYZpart, simlib3::_XYpart, simlib3::_ScalarProduct3D, simlib3::_ScalarProduct2D, simlib3::_Abs3D, simlib3::_Abs2D, simlib3::_Time, simlib3::_UMinus, simlib3::_Div, simlib3::Integrator3D::special_input, simlib3::Integrator2D::special_input, simlib3::_Mul, simlib3::_Sub, simlib3::_Add, simlib3::ZDelay, and simlib3::Delay.
Referenced by Sample(), and simlib3::Input::Value().
|
protected |