y-max

y-min

Commands

Basic Operators
-3.14 + 1234 - 22 ^ 2 * 22 / 7 Basic operations (+, -, *, /, ^, //, %)
x = 5 Variable assignment (all identifiers default to 0)
My_VAR = 3.1e-100 Scientific notation
zero = 0xF0d - 0b111100001101 Hexidecimal and binary literals
x = (((-b) + (b^2 - 4*a*c)^.5) / (2*a)) Grouping
f(x, y) = x + y + z Function assignment (x and y are variable, z is an identifier)
f(a, b, x) Function calls (a, b, and x's values are passed)
5 * 2 == 10 Comparison (==, !=, <, >, <=, >=) (return 1.0 or 0.0)
f'(1) + y''(x) + g''''(7) N'th numerical derivative (function must have 1 variable)

Macros (Graphing, Algebra, Misc.)
Macros are syntactically the same as normal functions, but they are "expanded" (the equation tree of the function is replaced by the result of the macro call) before the command is evaluated. This enables constructions like graph(deriv(x)) and disables constructions like graph(clear()) (whose expansions are [graph(deriv(x)) => graph(1) => NAN] and [graph(clear()) => graph(NAN) => NAN], respectively).
(Graphing)
print_tree(expr) Prints the parsed expression tree to the developer console
graph(e) Adds expression e to graph (x is used as the variable)
ungraph(n = 0) Removes the n'th foremost function from the graph
graph_axes() Adds the axes to the graph
ungraph_axes() Removes the axes from the graph
set_graph_window(x_min, y_min, width, height) Manually sets the dimensions of the graphed area
(Algebra)
deriv(expr, var=x) Symbolic derivative with respect to the given variable
simp(expr) Symbolic simplification (trivial axioms and term/factor cancellation)
expand(expr) Symbolic expansion (distribution of factors over sums and exponents over products)
(Misc)
ans() Returns the result of the last command
clear() Clears the terminal
sqrt(expr) Expands to expr^0.5

Special Variables
PI approx. 22 / 7 ± 0.01
E ln(E) == 1
NAN Not-A-Number
RAND_MAX Largest possible result of rand()
DERIV_STEP Step-Size when calculating nderiv, (1e-6 by default)
INT_NUM_RECTS Number of rectangles used by nintegral (100 by default)
TICS_ENABLED Boolean option to enable/disable tics on axes
ECHO_TREE Unconditionally echos the tree before macros (~>) and after macros (->)
ECHO_ANS Unconditionally echos the numerical result (+>)
ECHO_AUTO Echos the tree after macro expansion or the numerical result, depending on whether the tree was modified during macro expansion (=>)
PARTIAL Symbolic derivative treats non-differential variables as constants? (default = 1)
AUTO_SIMP Automatically call simp() after symbolic derivative / before graphing? (default = 1)
INT_POWER_EXPANSION_THRESHOLD Maximum absolute-value of an integer-exponent of a sum to expand. (default = 3)

Normal Built-In Functions
max(n, ...) Variadic maximum
min(n, ...) Variadic minimum
gcd(n, ...) Variadic greatest common divisor
floor(n) Rounds towards negative infinity
ceil(n) Rounds towards positive infinity
int(n) Rounds towards zero
abs(n) Absolute value
pow(b, e) Analagous to b ^ e
rand() Random integer between 0 and RAND_MAX
factorial(n) n!
perm(n, r) n! / (n - r)!
comb(n, r) n! / ((n - r)! * r!)
deg(r) Converts r (a quanitity in radians) to degrees
rad(d) Converts d (a quanitity in degrees) to radians
sin(n), cos(n), tan(n) Trigonometric functions
csc(n), sec(n), cot(n) Trigonometric functions
asin(n), acos(n), atan(n) Inverse trigonometric functions
ln(n), lg(n), log(n) Logarithm base E, 2, and 10, respectively
logb(x, b) Log of x base b = log(x) / log(b)
nderiv(f, d, x) Numerical derivative (of expression f at x with respect to d)
nintegral(f, d, s, e, r = INT_NUM_RECTS) Numerical derivative of f with respect to d from s to e (approximaged using a Midpoint Riemann Sum of r rectangles)
Key-Bindings
Up/Down Arrow Keys Go backward / forward in command history

Graph Functionality

Panning Hold the left mouse-button down, and drag along the graph
Zooming Put the cursor over the region to zoom onto, scroll up or down
Graphing Functions Call the graph(e) function in the terminal
Removing Functions Call ungraph() or use the 'x' buttons in the user interface
Re-layering and Coloring Functions Use the user interface
Reset window bounds to default 20x20 around (0, 0) Double-Click on graph
Toggle Trace Mode Right-Click on graph