- What syntax does the function input accept?
- Arithmetic with + - * / and ^ (exponent); parentheses; the variable x; the constants pi and e; and the named functions sin, cos, tan, sqrt, log (base 10), ln (natural log), and abs. You can prefix the expression with 'y =' if you like. Examples that work: x^2, sin(2*x), sqrt(x^2 + 1), e^x, abs(x - 3), log(x). What doesn't work: piecewise functions, implicit functions like x^2 + y^2 = 1, derivatives, integrals, summation notation, or any function not in the list above — that's Desmos territory.
- How many functions can I plot at once?
- Three. The widget shows three input rows by design — green (y1), blue (y2), coral (y3). If you only want one curve, leave y2 and y3 empty.
- Is '^' right-associative or left-associative?
- Right-associative, like in standard mathematical notation and like Python's **. So 2^3^2 evaluates as 2^(3^2) = 2^9 = 512, not (2^3)^2 = 64. If you want the left-associative reading, parenthesize explicitly: (2^3)^2.
- What does -x^2 mean?
- It means -(x^2), the negated parabola. That's the standard mathematical reading — exponent binds tighter than unary minus. If you want the parabola of a negated input, write (-x)^2, which is the same as x^2 anyway.
- Why does the chart break in some places?
- Because the function is undefined there. 1/x has a vertical asymptote at x=0; sqrt(x) is undefined for x<0; log(x) and ln(x) are undefined for x≤0; tan(x) shoots to infinity at x = pi/2 + nπ. At those samples the value is NaN, and the chart draws a gap instead of a misleading line through the asymptote.
- How is the y range chosen?
- Auto-fit to the data, using the 5th and 95th percentile so a single spike near an asymptote doesn't compress everything else into a flat line. If every sample is undefined, the range falls back to -10 to 10. There's no manual y-range control in v1 — change the x range to zoom in or out.
- Is this safe? You're evaluating expressions from text.
- Yes. The expression you type goes through a recursive-descent parser that only accepts the grammar listed above (numbers, x, pi, e, the seven named functions, +, -, *, /, ^, and parentheses). eval() and the Function() constructor are never called. The parsed result is an AST that gets evaluated against each sampled x value with plain switch statements — no string interpretation at any point.
- Can I export the graph?
- Not in v1. The chart renders as inline SVG, so you can right-click → 'Save image' in most browsers, or take a screenshot. A 'Download as PNG' button might land in a later version.
- Why does it sample 200 points across the range?
- 200 is enough to draw smooth curves for typical functions at typical zoom levels without making the browser do thousands of evaluations on every keystroke. Higher-frequency functions (like sin(100*x)) will look jagged because the sample rate isn't keeping up with the wavelength — narrow the x range to fix that.
- How does this compare to Desmos or a TI-84?
- It doesn't — and that's the point. Desmos has implicit functions, sliders, parametric curves, regressions, tables, and a tutorial. A TI-84 has a button for everything and costs $100. This tool plots y = f(x). One job. If you need more, Desmos is free and open in your other tab.