I was generating shader output using randomly assembled equations when I discovered this odd approach - generation depending on results of earlier terms, eg:
First term is x*x, if result is above 100, then next term is x*y, otherwise its sin(x) and so on
Result: