Operations are seperated by newlines (hitting the enter key), and parameters go after the operator seperated by
spaces.
Whitespace before and after a command will be ignored.
Create comments with ".
Standard | |||
---|---|---|---|
operation | description | parameters required | arguments required |
10 | places 10/1 on top of the stack -10 also works |
none | none |
3/5 | places 3/5 on top of the stack -3/5 also works |
none | none |
0.2 | places 1/5 on top of the stack -0.2 also works |
none | none |
0.1[6] | places 1/6 on top of the stack -0.1[6] also works |
none | none |
+ | addition | none | 2 rationals |
matrix addition | none | 2 matrices | |
- | subtraction | none | 2 rationals |
* | multiplication | none | 2 rationals |
scale matrix | none | 1 matrix and 1 rational (order doesn't matter) | |
matrix multiplication | none | 2 matrices (columns of 1st = rows of 2nd) | |
/ | division | none | 2 rationals |
int | integer part | none | 1 rational |
floor | rounds down | none | 1 rational |
ceil | rounds up | none | 1 rational |
den | extracts denominator | none | 1 rational |
% | modulus | none | 2 rationals |
gcd | greatest common divisor | none | 2 integers (rational with denominator of 1) |
lcm | lowest common multiple | none | 2 integers (rational with denominator of 1) |
step | x <= 0 → 0, 0 < x → 1 |
none | 1 rational |
compare | compares 2 rationals outputing -1, 0, or 1 | none | 2 rationals |
# | value stack height | none | none |
[ | in parameters, prepend a [ to use a stack value from bottom (0 is bottom) | it is the parameter | none |
] | in parameters, prepend a ] to use a stack value from top (0 is top) | it is the parameter | none |
>> | copies value at depth | depth to copy (0 is top) | none |
Stack Manipulation | |||
operation | description | parameters required | arguments required |
-> | moves value at depth to the top | depth to pull (0 is top) | none |
<- | moves top value to depth (inverse of ->) (0 is top) | depth to push | none |
del | deletes value at depth | depth to delete (0 is top) | none |
Matrices | |||
operation | description | parameters required | arguments required |
m | create matrix | columns, rows | (columns*rows) rationals |
addRow | adds a scaled copy of one row to another | row from, row to (0 is first row) | 1 matrix and 1 rational (order doesn't matter) |
scaleRow | scales a row of a matrix by a rational | row number (0 is first row) | 1 matrix and 1 rational (order doesn't matter) |
swapRows | swaps 2 rows of a matrix | 2 rows to swap (0 is first row) | 1 matrix |
T | transposes a matrix | none | 1 matrix |
inv | inverses a matrix | none | 1 matrix |
inverses a rational | none | 1 rational | |
ref | does gaussian elimination | none | 1 matrix |
ind | pushes index to stack | column, row (0 is first row/column) | 1 matrix (stays) |
rip | rips the last column off a matrix | none | 1 matrix |
flip | flips the columns of a matrix | none | 1 matrix |
dim | dimensions of matrix | none | 1 matrix (stays) |
dot | dot product of 2 vectors | none | 2 matrices (1 column, same size) |
hadamard | hadamard product | none | 2 matrices (same size) |
kronecker | kronecker product | none | 2 matrices |
outer | outer product | none | 2 matrices (1 column) |
Loops | |||
operation | description | parameters required | arguments required |
jmp | jumps forwards or backwards in instructions | distance to jump | none |
repeat | adds a new loop to the repeat pile | number of loops | none |
next | does next iteration of top repeat | none | none |
>>> | copy iteration of loop | loop depth to copy | none |
break | breaks out of top loop | none | none |
leap | a combination of break and jmp | distance to jump after break | none |
Auxillary Manipulation | |||
operation | description | parameters required | arguments required |
hold | remembers a rational or matrix for later, overriding any existing value | name of value | 1 rational or matrix (stays) |
lose | forgets a stored value, does nothing if it doesn't exist | name to forget | none |
place | copies stored value to stack | name of value to place | none |
exists | place 1 or 0 if a value exists | name to check | none |
$ | in parameters, prepend a $ to use an auxillary value | it is the parameter | none |