Skip to main content

Crate mathr

Crate mathr 

Source
Expand description

§mathr

A pure-Rust mathematics library and CLI that bundles symbolic and numerical computation:

  • Expression AST, parser and evaluator (expr, parser, eval) with a standard library of elementary functions (sin, cos, exp, log, …) and constants (pi, e, …).
  • FFT from scratch (fft): Cooley–Tukey radix-2 (forward, inverse, 2D, real-input) plus magnitude / power spectra, convolution, cross-correlation, and window functions (Hann, Hamming, Blackman).
  • Numerical calculus (calculus): high-order finite-difference derivatives, trapezoidal and Simpson’s integrators, adaptive quadrature, partial derivatives and gradients.
  • Symbolic algebra (symbolic, simplify): differentiation by the usual calculus rules, plus a simplifier that flattens identities and folds constants. Expression equality via canonical form (expr).
  • Equation solving (solver): bisection, Newton–Raphson (with numeric-derivative fallback), secant, and Durand–Kerner for polynomial roots.
  • Plotting (plot): PNG output via plotters, with single-, multi- and scatter-plot variants.
  • Matrix operations (matrix): arithmetic, determinant, inverse, linear system solving, trace, LU decomposition with partial pivoting, and rank estimation.
  • Statistics (stats): mean, median, variance, stddev, quartiles, correlation, linear regression.
  • Number theory (numtheory): GCD, LCM, primality, factorization, binomial coefficients, Fibonacci, sieve, Euler’s totient, Miller–Rabin, Chinese Remainder Theorem, modular exponentiation, Jacobi symbol, continued fractions, linear Diophantine solver.
  • ODE solvers (ode): Euler, RK4, RK4 systems, adaptive RKF45.
  • Taylor series (taylor): symbolic Taylor expansion around a point.
  • Interpolation (interpolate): Lagrange, Newton divided-difference, linear interpolation, and natural / clamped cubic splines.
  • Special functions (special): Gamma, log-Gamma, Beta, erf, erfc, sinc, incomplete gamma P, Bessel functions J_0, J_1, J_n.

The CLI (mathr "<expr or command>") is a thin wrapper around the same library functions. It accepts plain math expressions, LaTeX/TeX input, and command keywords like diff, solve, int, gcd, etc.

Re-exports§

pub use error::MathError;
pub use error::Result;

Modules§

calculus
Numerical calculus: differentiation, integration, vector calculus helpers.
complex
error
eval
expr
fft
FFT implementation from scratch.
interpolate
Polynomial interpolation from scratch.
matrix
Matrix operations from scratch.
numtheory
Number theory from scratch.
ode
Ordinary differential equation (ODE) solvers from scratch.
parser
plot
Plotting via the plotters crate. Output is rendered to PNG files.
prelude
Re-exports of the most common types for downstream use mathr::*;.
repl
An interactive REPL that ties together the parser, evaluator, symbolic differentiation, numeric integration, root-finders and plotter.
simplify
Algebraic simplification of Expr values.
solver
Equation solvers: Newton–Raphson, bisection, secant, and polynomial root finding via the Durand–Kerner method.
special
Special functions from scratch.
stats
Descriptive statistics from scratch.
symbolic
Symbolic differentiation.
taylor
Symbolic Taylor series expansion from scratch.