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.
- 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
[dependencies]
thales = "0.3.3"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(())
}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);
}The full documentation is available on docs.rs/thales, including:
- User Guides - Step-by-step tutorials
- API Reference - Complete type and function documentation
- Examples - Working code examples
| 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 |
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-iosSee IOS_BUILD.md for complete iOS integration instructions.
See CHANGELOG.md for version history and release notes.
MIT License - see LICENSE for details.
- Crate: crates.io/crates/thales
- Documentation: docs.rs/thales
- Repository: github.com/ChrisGVE/thales
- Issues: Report bugs