The compiler performs optimizations to make sure that all formulas run as fast as possible. It is helpful to know something about these optimizations when writing formulas.
The optimizations can be divided into two categories:
- Evaluation of constant expressions. Constant expressions are expressions whose value can be evaluated by the compiler. Constant expressions can contain operators, built-in functions, constants and parameters. This is possible because the formula is re-compiled each time a parameter changes, so parameters can be treated as constants by the compiler.
- Replacement of slow operations by faster ones, such as replacing 2*x by x+x (adding is faster than multiplying).
When writing formulas, this has the following consequences:
- Writing to parameters is not recommended. This can make the formula run slower, because parameters cannot be treated as constants anymore.
- You can write constant expressions wherever you want. You do not have to precalculate them, because the compiler can do that for you. So, using 2 + 1/3 is just as fast as using 2.3333. Just use whatever you find most convenient.
- If statements with constant expressions (like if 3 < 2) are completely eliminated by the compiler. This is very helpful when you use lots of if statements depending on the values of enumerated parameters. Therefore making your formula versatile by providing many options does not cause it to run slower.
- You can use descriptive operators like z^4 instead of z*z*z*z or sqr(sqr(z)), since Ultra Fractal automatically chooses the most efficient operation independent of the operators or functions used.