Expand description
slp
is a Linear Programming Solver.
To see the usage docs, visit here.
§An example
fn main() {
use slp::*;
use slp::Rational64;
use slp::Solution;
let input = "
vars x1>=0, x2>=0
max 2x1+3x2
subject to
2x1 + x2 <= 18,
6x1 + 5x2 <= 60,
2x1 + 5x2 <= 40
";
let mut solver = Solver::<Rational64>::new(&input);
let solution = solver.solve();
assert_eq!(solution, Solution::Optimal(Rational64::from_integer(28), vec![
Rational64::from_integer(5),
Rational64::from_integer(6)
]));
match solution {
Solution::Infeasible => println!("INFEASIBLE"),
Solution::Unbounded => println!("UNBOUNDED"),
Solution::Optimal(obj, model) => {
println!("OPTIMAL {}", obj);
print!("SOLUTION");
for v in model {
print!(" {}", v);
}
println!();
}
}
}
Re-exports§
pub use num;
Modules§
- parser
- Parser module for Linear Programming Problems.
Structs§
- BigInt
- A big signed integer type.
- Ratio
- Represents the ratio between two numbers.
- Solver
- Linear Programming Solver.
Enums§
- Solution
- Solution to an LP instance as returned by the solve method of an LP instance.
- Solver
Settings - Solver settings that can be passed to the solver instance.
Traits§
- Number
- Number trait used in this library.
Type Aliases§
- BigRational
- Alias for arbitrary precision rationals.
- Rational
- Alias for a
Ratio
of machine-sized integers. - Rational32
- Alias for a
Ratio
of 32-bit-sized integers. - Rational64
- Alias for a
Ratio
of 64-bit-sized integers.