u(t) is called 60 times per second.
t: Elapsed time in seconds.
S: Shorthand for Math.sin.
C: Shorthand for Math.cos.
T: Shorthand for Math.tan.
R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
Interesting. I once wrote an n-card "24 game" solver which is similar but far more limited in terms of operators - by far the most significant optimization i could find was to combinations based on subexpressions that are equivalent to one already traversed i.e nodes in your AST - maybe that could be applied to yours as well?
I should clarify: to by pruning I mean not mearly skipping evaluation of individual permutations but to be able to skip entire subtrees of permutations by detecting equivalence at the root of that subtree.
I am also having difficultly with >3 non-trivial outputs. I think the search space is too large. But at least I found some simplifications, such as: [1,3,5,7] => X-~X
Finally got it to solve a non linear one: D=[2,3,6,11,18,27] (2+X*X), just need a bit more patience
u(t) is called 60 times per second.
t: elapsed time in seconds.
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
S: Math.sin
C: Math.cos
T: Math.tan
R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)