thales 0.3.3

A comprehensive Computer Algebra System (CAS) library for symbolic mathematics, equation solving, calculus, and linear algebra
Documentation

thales

CI Crates.io Documentation License Rust

A comprehensive Computer Algebra System (CAS) library for symbolic mathematics, equation solving, calculus, and numerical methods. Named after Thales of Miletus, the first mathematician in the Greek tradition.

Full Documentation on docs.rs

Features

  • Expression Parsing - Parse mathematical expressions with full operator precedence
  • Equation Solving - Linear, quadratic, polynomial, transcendental, and systems of equations
  • Calculus - Differentiation, integration, limits, Taylor series, ODEs
  • Numerical Methods - Newton-Raphson, bisection, Brent's method when symbolic fails
  • Coordinate Systems - 2D/3D transformations, complex numbers, De Moivre's theorem
  • Units & Dimensions - Dimensional analysis and unit conversion
  • iOS Support - FFI bindings for Swift via swift-bridge

Installation

[dependencies]
thales = "0.3.0"

Quick Start

Solve an Equation

use thales::{parse_equation, SmartSolver, Solver, Variable};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let equation = parse_equation("2*x + 5 = 13")?;
    let solver = SmartSolver::new();
    let x = Variable::new("x");
    let (solution, path) = solver.solve(&equation, &x)?;

    // View step-by-step solution
    for step in path.steps() {
        println!("{}", step);
    }
    Ok(())
}

Coordinate Transformations

use thales::{Cartesian2D, Polar};

fn main() {
    let point = Cartesian2D::new(3.0, 4.0);
    let polar = point.to_polar();

    assert!((polar.r - 5.0).abs() < 1e-10);

    // Round-trip conversion
    let back = polar.to_cartesian();
    assert!((back.x - 3.0).abs() < 1e-10);
}

Documentation

The full documentation is available on docs.rs/thales, including:

Guides

Guide Description
Solving Equations Linear, quadratic, polynomial, and systems
Calculus Operations Derivatives, integrals, limits, ODEs
Series Expansions Taylor, Maclaurin, Laurent, asymptotic
Coordinate Systems 2D/3D transforms, complex numbers
Numerical Methods Root-finding algorithms
Working with Units Dimensional analysis
Error Handling ThalesError patterns

iOS Cross-Compilation

Build for iOS with FFI support:

# Add iOS targets
rustup target add aarch64-apple-ios aarch64-apple-ios-sim

# Build for device
cargo build --release --features ffi --target aarch64-apple-ios

See IOS_BUILD.md for complete iOS integration instructions.

Changelog

See CHANGELOG.md for version history and release notes.

License

MIT License - see LICENSE for details.

Links