1 unstable release
0.1.0 | Nov 10, 2019 |
---|
#29 in #solving
52KB
1K
SLoC
Super Slick Simple Substitution Solver (S5)
S5 is a simple equation solver written in Rust for the purpose of solving some homework-style problems in orbital mechanics. It can be used for any system of equations though (not necessarily modelling orbital mechanics).
How it works
It works by taking all known variables, finding an equation with exactly one unknown variable, solving for it in terms of the knowns, and finally calculating the solution (hence the term "substitution" in the name).
Organization
This repo is a Rust workspace comprising of two crates:
s5
- the solver libraryproblems
- a crate usings5
as a dependency to solve problems in the text Fundamentals of Astrodynamics.
The s3
crate is what your project would use; problems
is just an example
crate and is not required to use S5.
Installation
The solver is distributed as a Rust library and can be added to any
Rust project by adding this to Cargo.toml
:
s5 = "0.1.0"
Usage
Please see the docs here
Contributing
There are three ways of contributing to S5:
- Improving the solver itself (look for TODOs)
- Improving documentation
- Completing the
problems
crate (intends to solve all problems in Fundamentals of Astrodynamics using S5)
License
MIT. Refer to LICENSE.txt
.
lib.rs
:
A very basic equation s5 for physics problems.
This crate implements a s5 that consumes a set of equations modelling some system plus
known variable values and deduces values for as many other system variables as possible. See
solver_state
for API usage and the problems
crate for example usage for solving problems
from the text book Fundamentals of Astrodynamics.
Organization
The modules constants
, variables
and formulas
contain the types used for
constructing the equations that model your physics system, as well as providing known values
for your problem variables. See formulas
for examples on building formulas.
The solver_state
module implements the s5 itself.