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:

the current radius between 0 and 1`r`

the current time. elements at a single radius have a time offset`t`

negate the previous value`n`

absolute value of the previous value`m`

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`^`

duplicate the previous value`d`

take the sine of the previous value`s`

take the cosine of the previous value`c`

Raise the second-to-last value to the last value`e`

Pi`P`

# Example

`tcr*`

`tsr*`

*At*

`t=0, r=1`

The formula is evaluated character-by-character

Push the current time onto the stack. The stack is now`t`

`[0]`

Take the top of the stack off the stack and push its cosine onto the stack. The stack is now`c`

`[1]`

Push the current radius onto the stack. The stack is now`r`

`[1 1]`

Pop the top two values of the stack and push their product onto the stack. The stack is now`r`

`[1]`

Push the current time onto the stack. The stack is now`t`

`[1 0]`

Take the top of the stack off the stack and push its sine onto the stack. The stack is now`s`

`[1 0]`

Push the current radius onto the stack. The stack is now`r`

`[1 0 1]`

Pop the top two values of the stack and push their product onto the stack. The stack is now`r`

`[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`