Skip to main content

otspot_model/
lib.rs

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