1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#![deny(missing_docs)]
//!  A Linear Programming modeler that is easy to use, performant with large problems, and well-typed.
//!
//!  ```rust
//!  use good_lp::{variables, variable, coin_cbc, SolverModel, Solution};
//!
//!  let mut vars = variables!();
//!  let a = vars.add(variable().max(1));
//!  let b = vars.add(variable().min(2).max(4));
//!  let solution = vars.maximise(10 * (a - b / 5) - b)
//!      .using(coin_cbc)
//!      .with(a + 2. << b)
//!      .with(1 + a >> 4. - b)
//!      .solve()?;
//!
//!  assert_eq!(solution.value(a), 1.);
//!  assert_eq!(solution.value(b), 3.);
//!  # use good_lp::ResolutionError;
//!  # Ok::<_, ResolutionError>(())
//!  ```

pub use expression::Expression;
pub use variable::{Variable, variable};
pub use constraint::Constraint;
pub use solvers::{ResolutionError, Solution, SolverModel};
pub use solvers::coin_cbc::coin_cbc;

mod expression;
#[macro_use]
pub mod variable;
mod solvers;
pub mod constraint;
mod variables_macro;