Types
Supported types are: Boolean, Integer, Double and String.
- Boolean
- Boolean can take two values: true or false.
- Integer
- Integer is a 64-bit signed integer number.
- Notation:
- In decimal notation : 1,2,…
- In decimal notation : 0d125, 0D125
- In hexadecimal notation : 0xffab1234, 0Xffab1234
- In binary notation : 0b101100, 0B101100
- Double
- Double is a 64-bit double precision floating point.
- Notation:
- In floating notation: 1.0, 1., .1, 3.14, …
- In exponential notation : 1e14
- String
- String is UNICODE.
Typing Mechanism
You can constrain the type of any variable/IO with types, however
constraining a type is not mandatory.
The Behavior Modeler Type inference mechanism determines Variable/IO type from its usage. The
computed type can be seen in the tool type of the Variable/IO.
Functions
A set of functions are available. Each function works on specific types or a set of
types. Informative error messages appear in case of inconsistencies.
Global Functions
= |
Equality operator |
A = B : returns true if the value of A and B are
equal |
<> |
Inequality operator |
A <> B : returns true if the value of A and B are
different |
Boolean Functions
not |
not A : returns true if A is false, returns false if A is
true |
and |
A and B : returns true if A and B are true, false
otherwise |
or |
A or B : returns true if A or B are true, false
otherwise |
xor |
A xor B : returns true if A and B have 2 distinct values,
false otherwise |
Orderable Functions
x < y |
returns true if x is less than y |
x > y |
returns true if x is greater than y |
x <= y |
returns true if x is less or equal to y |
x >= y |
returns true if x is greater or equal to y |
max (x,y) |
returns x if x is greater than y |
min (x,y) |
returns x id x is less than y |
Bitwise Functions
A | B
lor (A, B)
|
Bitwise or |
A & B
land (A, B)
|
Bitwise and |
A ^^ B
lxor (A, B)
|
Bitwise xor |
~A
lnot (A)
|
Bitwise not |
A << N
lsl (A, N)
|
Left-shift by N bits |
A >> N
lsr (A, N)
|
Right-shift by N bits |
Numerical Functions
+ |
A + B : Addition |
- |
A - B : Substraction |
* |
A * B : Multiplication |
/ |
A / B : Division |
** |
A ** B : Raising to power (exponentiation) |
abs |
abs (A) : Absolute value |
Mathematical Functions
x % y
mod(x,y)
|
Returns the integer modulus of x/y, i.e. x-floor(x/y)*y.
Result and
arguments shall have type Real or Integer. If either of the
arguments is Real the
result is Real otherwise Integer.
|
sin (x) |
sine |
cos (x) |
cosine |
tan (x) |
tangent (x shall not be: ..., -π/2, π/2, 3π/2, ...) |
asin (x) |
inverse sine (-1 ≤ x ≤ 1) |
acos (x) |
inverse cosine (-1 ≤ x ≤ 1) |
atan (x) |
inverse tangent |
atan2 (x,y) |
function calculates the principal value of the arc tangent of
y/x, using the signs of the two arguments to determine the
quadrant of the result |
sinh (x) |
hyperbolic sine |
cosh (x) |
hyperbolic cosine |
tanh (x) |
hyperbolic tangent |
exp (x) |
exponential, base e |
log (x) |
natural (base e) logarithm (x > 0) |
log10 (x) |
base 10 logarithm (x > 0) |
sqrt (x) |
Returns the square root of v if v>=0. Argument v needs to be
an Integer or Real expression. |
rand() |
Returns a pseudo-random integer in the range between 0 and
32767
rand() % 100 returns a value in the range 0 to 99
|
String Functions
A ++ B |
Concatenate A and B after string conversion.
A and B can be String/Boolean/Integer/Double.
|
Other Functions
If expr1 then expr2 else expr3 |
if expr1 is true returns expr2, otherwise returns
expr3 |
Type Conversion Function
BooleanToNumber |
BooleanToNumber(x) : if true returns 1, otherwise returns
0 |
NumberToBoolean |
NumberToBoolean(x) : if zero returns false, otherwise returns
true |
DoubleToInteger |
DoubleToInteger(x) : The fractional part is
discarded. |
IntegerToDouble |
IntegerToDouble(x) : The integer value is converted into the
nearest real value that can be represented into the destination
floating-point type. |
ToString |
ToString(x) : Convert Boolean/Integer or Double to Unicode
string. |
Case Expressions
e1, e2, e3 |
Record of expressions. Test expression will be compared with
record expressions.
Test(v)
case 1,2,3 : ….
|
n1 -> n2 |
Between operator. Test expression value has to be between n1
& n2.
Test(v)
case 1 -> 3 : ….
|
= |
Equality operator (Operator is optional).
Test(v)
case 1 : ….
case =2 :…
|
<> |
Inequality operator.
Test(v)
case <>1 : ….
|
>=
<=
>
<
|
Comparison operators.
Test(v)
case >1 : ….
case <= -5 :….
|
Default Values for Simulation
Boolean |
Integer |
Double |
String |
False |
0 |
0.0 |
“” |
|