Enter formula. You should leave [x, y] as the top two elements on the stack.

# Examples

Example 1 Example 2 Example 3 Example 4

# Documentation

Formulas are defined using "Reverse Polish Notation." Here are the different operations it supports:

• `r` the current radius between 0 and 1
• `t` the current time. elements at a single radius have a time offset
• `n` negate the previous value
• `m` absolute value of the previous value
• `+` add the previous two values
• `*` multiply the previous two values
• `-` subtract the previous value from the one before it
• `/` divide the previous value from the one before it
• `&` bitwise-and the previous two values
• `|` bitwise-or the previous two values
• `^` bitwise-xor the previous two values
• `d` duplicate the previous value
• `s` take the sine of the previous value
• `c` take the cosine of the previous value
• `e` Raise the second-to-last value to the last value
• `P` Pi

# Example

`tcr*` `tsr*`
At `t=0, r=1`

The formula is evaluated character-by-character

1. `t` Push the current time onto the stack. The stack is now ``
2. `c` Take the top of the stack off the stack and push its cosine onto the stack. The stack is now ``
3. `r` Push the current radius onto the stack. The stack is now `[1 1]`
4. `r` Pop the top two values of the stack and push their product onto the stack. The stack is now ``
5. `t` Push the current time onto the stack. The stack is now `[1 0]`
6. `s` Take the top of the stack off the stack and push its sine onto the stack. The stack is now `[1 0]`
7. `r` Push the current radius onto the stack. The stack is now `[1 0 1]`
8. `r` Pop the top two values of the stack and push their product onto the stack. The stack is now `[1 0]`

Now that we have gone through every character, the circle is drawn at the point specified by the top two values `x=1, y=0`