20# error "simlib2D.h: 20: you must include simlib.h first"
22#if __SIMLIB__ < 0x0212
23# error "simlib2D.h: 23: requires SIMLIB version 2.12 and higher"
35 double x()
const {
return _x; }
36 double y()
const {
return _y; }
189 double Value()
override;
232Input
Xpart(Input2D a);
235Input
Ypart(Input2D a);
Convert 2 scalar inputs to single 2D vector output.
virtual Value2D Value() override
Adaptor2D(Input _x, Input _y)
2D vector value that can't be changed
virtual Value2D Value() override
Constant2D(double x, double y)
Integrator2D & operator=(const Value2D &a)
virtual Value2D Value() override
simlib3::Integrator2D::special_input in
Input2D SetInput(Input2D i)
block for numerical integration input is derivative, output is state
Special variable (can't be changed at simulation time)
Parameter2D & operator=(const Value2D &x)
Parameter2D(Value2D x=Value2D(0, 0))
friend double abs(const Value2D &a)
friend Value2D operator*(const Value2D &a, const double b)
Value2D(double x, double y)
friend Value2D operator+(const Value2D &a, const Value2D &b)
friend Value2D operator/(const Value2D &a, const double b)
friend Value2D operator-(const Value2D &a, const Value2D &b)
friend double scalar_product(const Value2D &a, const Value2D &b)
virtual Value2D Value() override
Variable2D & operator=(Value2D x)
Variable2D(Value2D x=Value2D(0, 0))
abstract base class for all blocksblocks/SimObject have not copy semantics (TODO: add move semantics)
continuous block with single input and alg.
Input2D SetInput(Input2D i)
continuous block vith 2 inputs and alg.
continuous block with 3 inputs and alg.
Abstract 2D block with single 2D output.
virtual Value2D Value()=0
abstract base for continuous blocks with single output suitable for expression-tree building and eval...
Implementation of class CalendarList interface is static - using global functions in SQS namespace.
Input operator-(Input a, Input b)
block operator -
Input operator+(Input a, Input b)
block operator +
Input Ypart(Input2D a)
get y part of (x,y) vector value
Input Xpart(Input2D a)
get x part of (x,y) vector value
Input operator*(Input a, Input b)
block operator *
Input ScalarProduct(Input2D x, Input2D y)
dot product: xvec . yvec
int Print(const char *fmt,...)
for Output methods, can be redirected
Input operator/(Input a, Input b)
block operator /
Input2D UnitVector(Input2D x)
make unit vector from input (Abs(output_vec)==1)
Reference to 2D vector block-expression.