oximo v0.2.0
This release expands oximo from a linear/quadratic modeler into a full nonlinear and global optimization stack: a new BARON backend, NLP/MINLP support across Gurobi and GAMS, QP in HiGHS, an .nl writer, and scalar parameters.
Added
- NLP / MINLP support. Gurobi and GAMS backends now translate and solve nonlinear and mixed-integer-nonlinear models.
- Quadratic programming. QP support in the HiGHS backend and a quadratic extraction module in
oximo-expr. - Scalar parameters (
Param). Arena-stored parameters inoximo-exprthat resolve during lowering, scalarParamsupport inModel, and propagation through every backend and the.nlwriter. .nlwriter (oximo-io). New.nlwriter with ASCII and binary modes, scientific-notation float precision, header comments (ASCII only), optional sidecar/auxiliary files (.col/.row), andParamsupport.- BARON backend (
oximo-baron). New crate providing a backend for the BARON global MINLP solver. Re-exported fromoximobehind thebaronfeature. - Absolute value (
Abs). NewAbsexpression inoximo-exprwith lowering support in Gurobi, GAMS, and BARON. - Division operator.
Expr / Exprwith constant folding inoximo-expr, plus nonlinear detection for division inoximo-core. - Variable fixing convenience.
Model::fixfor single-variableExprandExpr::var_id()to extract aVarId. - Expression classification.
ExprClassand aclassifyhelper used to determine model kind (LP/QP/NLP/...). - Duals & reduced costs (GAMS). Parse marginals/reduced costs.
Changed
- New
sum_overAPI inoximo-expr/oximo-core; examples and tests updated. dottakes slices, with simplified generics and a panic on mismatched lengths.- Gurobi now handles variable domains and prefers
SolCountwhen checking for an available solution. - GAMS validates the selected solver against supported solver types and summarizes
.lstoutput on errors. - HiGHS uses the non-panicking API in
Options. SolverErrornow uses itsDisplayimpl inDebug.- Bumped
highsto 2.2.0. - Internal:
SmolStrfor string index keys.
Full Changelog: v0.1.0...v0.2.0