Help Parses a mathematical expression in the string and returns the value
Author vvvv group
Credits Project JEDI Code Library (JCL)
Warnings
Bugs
start a forum thread about this node
The required format of the expression is Pascal style.
Comparison | > < = <= >= |
Logical | and or xor not |
Math | +, -, *, /, ^, div, mod |
Brackets | ( ) |
Factorial | ! |
Percentage | % |
assign to variables | := |
-
-
Random
-
exp(x)
-
if(x, y, z)
-
random
-
randg(Mean, StdDev)
-
sqr(x)
-
sqrt(x)
-
abs(x)
-
round(x)
-
trunc(x)
-
ln(x)
-
log10(x)
-
logN(x, y)
-
power(x, y)
-
pow(x, y)
-
intpower(x, y)
-
max(x, y)
-
min(x, y)
-
sin(x)
-
cos(x)
-
tan(x)
-
arcsin(x)
-
arccos(x)
-
arctan2(x, y)
-
sinh(x)
-
cosh(x)
-
tanh(x)
-
arcsinh(x)
-
arccosh(x)
-
arctanh(x)
-
degtorad(x)
-
radtodeg(x)
-
factorial | x! power |
x^y percentage |
x% hexadecimal |
$x (for example $FF is converted to 255) |
Implicit multiplying is not supported: e.g. (X+1)(24-3) generates a syntax error and should be written (x+1)*(24-3)
The precedence of the operands is as follows.
1 highest | ! -x +x % 2 |
^ 3 |
* / div mod 4 |
+ - 5 |
> >= < <= = 6 |
not 7 |
or and xor 8 lowest |
:= |
You can use user-defined variables in the expressions and also assign to variables using the := operand
The compiler removes constant expressions and replaces these with the evaluated result:
4*4*x becomes 16*x
ln(5)+3*x becomes 1.609437912+3*x
limitation
4*x+3+3+5 evaluates as 4*x+3+3+5 (due to precedence rules)
whereas
4*x+(3+3+5) becomes 4*x+11
Tip: Use brackets to be sure that constant expressions are removed by the compiler
this text is mostly lifted from the readme of the Freeware component by Egbert van Nes
sorry this is currently not possible. you would need to decompose the formula into separate nodes. or write a little c# plugin.
Developer: Egbert van Nes
anonymous user login
~2d ago
~2d ago
~9d ago
~11d ago
~13d ago
~16d ago
~16d ago
~24d ago
~30d ago
~30d ago