Spindalis
A bioinformatics library for numerical modeling, optimisation, data analysis, and simulation written in Rust.
Spindalis provides a collection of numerical methods, polynomial parsing and evaluation tools, derivative computation, and optimisation algorithms for scientific computing and bioinformatics applications.
Table of Contents
Features
- Polynomial parsing and evaluation
- Derivative computation
- Root and Extrema finding with Bisection and Newton–Raphson methods
- Extensible modules for numerical modelling and optimisation
Installation
Add Spindalis as a dependency in your Cargo.toml:
[]
= { = "https://github.com/lignum-vitae/spindalis.git" }
Then run:
cargo build
Project layout
| Module | Decsription |
|---|---|
utils |
Utility functions such as Arr2D, Arr2DError, forward substitution, and back substitution |
polynomials |
Parsing and evaluating simple and extended polynomials |
derivatives |
Differentiating simple and extended polynomials |
integrals |
Integrating simple and extended polynomials |
solvers |
Solving equations and differential equations, including root-finding, extrema-finding, and ODE solvers |
solvers/decomposition |
Decomposition algorithms including LU decomposition and LU decomposition with partial pivoting |
regressors |
Linear and non-linear regression, including least-squares, Gaussian, and polynomial regression |
reduction |
Linear and non-linear dimensionality reduction algorithms, including PCA |
Running Examples
Working examples of the available algorithms as well as a full list of available algorithms can be found in the
examples/ directory.
Run any example with the following command:
cargo run --example <example_name>
Do not include .rs when running examples.
Contributing
We welcome contributions! Please read our:
Stability
This project is in the alpha stage. APIs may change without warning until version 1.0.0.
License
This project is licensed under the MIT License - see the LICENSE file for details.