The jmax command line
One binary spans the whole scientific-computing surface — symbolic math, automatic differentiation, optimization, differential equations, linear algebra, signal processing, statistics, dataframes, and units. Every command below is real and runs today. This page mirrors api.charlot-lang.dev.
Evaluate & Run
jmax eval "<expr>"
Evaluate an expression — scalars, matrices, vectors, symbolic, or composed numeric functions.
jmax eval "[[1,2],[3,4]] * [5,6]" → [17, 39]
jmax run file.jmax
Run a JMax program and print its result.
jmax run fit_model.jmax
jmax plot file.jmax
Run a program and open its plots as SVG.
jmax plot dashboard.jmax
jmax emit <target> file
Lower a function to ONNX, StableHLO, WGSL, Triton, or MLIR-linalg.
jmax emit wgsl kernel.jmax
Symbolic & Verification
jmax eval "expand((x+1)^2)"
Computer-algebra: expand, simplify, differentiate, integrate, solve — exact, canonical.
→ 1 + x^2 + 2*x
jmax eval "integrate(x^2, x)"
Rule-based symbolic integration; the inverse of differentiation.
→ x^3/3
jmax eval "solve(x^2-1, x)"
Solve polynomial equations exactly.
→ x = 1, x = -1
jmax verify "<lhs> == <rhs>"
Prove an identity two ways: a sound CAS self-check, and an emitted Lean 4 theorem.
jmax verify "(x+1)^2 == x^2 + 2*x + 1"
Autodiff
jmax grad "<f>" <point...>
Gradient by reverse-mode automatic differentiation of the computation graph.
jmax grad "x^2*y + sin(x)" 1.3 0.7
jmax hessian "<f>" <point...>
Full Hessian via second-order (forward-over-reverse) AD.
jmax hessian "x^2*y + sin(x)" 1.3 0.7
Optimization
jmax minimize "<f>" <x0...>
Unconstrained minimization (gradient descent; --newton for the AD-Hessian Newton method).
jmax minimize "(1-x)^2 + 100*(y-x^2)^2" -1.2 1 --newton
jmax root "<f>" <x0>
Find a root by Newton's method (derivative via AD).
jmax root "cos(x) - x" 0.5 → 0.7390851
jmax fit "<model>" data.csv
Levenberg-Marquardt curve fitting; Jacobian from AD.
jmax fit "a*exp(b*x)" data.csv --p0 1,0
jmax lp file · jmax qp file [--ineq]
Linear programs (two-phase simplex) and quadratic programs (KKT / active-set).
jmax lp problem.txt → max cᵀx s.t. Ax ≤ b
Differential Equations
jmax ode "<dy/dt>" y0
Integrate an ODE — adaptive Dormand-Prince RK45, or --stiff for an implicit solver with an AD Jacobian.
jmax ode "1000*(cos(t) - y)" 2 --tf 1 --stiff
Linear Algebra
jmax eig file · jmax svd file
Eigenvalues (symmetric, Jacobi) and singular values.
jmax eig sym.txt → 3, 1
jmax det file · jmax rank file
Determinant (LU) and numerical rank (SVD).
jmax det m.txt → 10
jmax linsolve A b · jmax pinv file
Solve A·x = b, and the Moore-Penrose pseudoinverse.
jmax linsolve A.txt b.txt → x
Signal Processing
jmax fft signal.txt
Magnitude spectrum via radix-2 FFT.
jmax fft sig.txt → spectral peak at bin k
jmax spectrogram signal
Short-time Fourier transform — per-frame magnitude spectra.
jmax spectrogram sig.txt --frame 16 --hop 8
jmax biquad signal
Apply an IIR biquad (RBJ low/high-pass) filter.
jmax biquad sig.txt --kind lowpass --fc 0.1
Statistics
jmax stats file
Summary statistics — n, mean, std, min, median, max.
jmax stats data.txt
jmax sample <dist> <params>
Deterministic sampling from Normal / Uniform / Exponential.
jmax sample normal 0 1 -n 5 --seed 42
jmax ttest a b · jmax wilcoxon a b
Welch two-sample t-test; Wilcoxon signed-rank (paired, nonparametric).
jmax ttest a.txt b.txt → t, p
jmax anova g1 g2 … · jmax friedman m
One-way ANOVA, Friedman repeated-measures, Levene, Mann-Whitney, KS.
jmax anova g1.txt g2.txt g3.txt → F, p
Dataframes
jmax df file.csv
Inspect a CSV: shape, inferred types, head, per-column describe.
jmax df cities.csv
jmax df file --groupby c --value v
Group-by aggregation (mean / sum / count / min / max).
jmax df sales.csv --groupby city --value revenue --agg sum
jmax df file --to-parquet out
Read CSV or Parquet; write real Parquet (validated against Apache Arrow).
jmax df data.csv --to-parquet data.parquet
Units
jmax convert <v> <from> <to>
Dimensional unit conversion with compound units and metric prefixes.
jmax convert 60 km/hour m/s → 16.667 m/s