otspot_model/lib.rs
1//! Algebraic modeling API for `otspot`.
2//!
3//! Provides [`Model`], [`Variable`], [`Expression`], [`Constraint`],
4//! the [`constraint!`] macro, and associated error/result types.
5//!
6//! # Example
7//! ```
8//! use otspot_model::{Model, constraint};
9//!
10//! let mut model = Model::new("example");
11//! let x = model.add_var("x", 0.0, 10.0);
12//! let y = model.add_var("y", 0.0, 10.0);
13//! model.add_constraint(constraint!((x + y) <= 8.0));
14//! model.minimize(2.0 * x + y);
15//! let result = model.solve().unwrap();
16//! assert!((result[x] + result[y]).abs() < 1e-4);
17//! ```
18
19pub mod constraint;
20pub mod expression;
21pub mod quad_expr;
22pub mod variable;
23mod model;
24
25pub use constraint::{Constraint, ConstraintSense};
26pub use expression::Expression;
27pub use quad_expr::QuadExpr;
28pub use variable::{VarKind, Variable};
29pub use model::{Model, ModelError, ModelResult, SolutionProof, SolveError};