- Add documentation for solving system (PR #16).
- Separate types for coefficents and values (PR #17).
- Remove the dependency on
num
(PR #19). - Remove messages at the
App
level (PR #22).
- Fix the issue 13 about strict formats (PR #18).
- Reworking the library build system, now only relying on dune. The Makefile is now clearer and simpler to use.
- Logs are handled by the
logs
library and debug is activated by this library. - The
Rat2
module now abstract bounds as strict upper, strict lower or soft bounds instead of pairs of rationals.
- Now, asserting bounds returns whether these bounds are trivially implied by those that are already known
- Add a field nb_pivots in the environment to count the number of pivots that have been made so far.
- Bugfix in maximization
- Add support for linear optimization (!!!). An minimal example is given in tests/standalone_minimal_maximization.ml
- Some bugfixes when assuming inconsistent bounds
- Improve build and testing
- A functor called
Basic
provides three modules:Core
: provides some basic functions, and a functionempty
to create an empty environmentAssert
: exports two functionsvar
andpolys
to assert bounds on variables and polynomials, respectivelySolve
: exports a functionsolve
that tries to find a solution for the constrains
- Two flags can be set when creating an empty environment to activate debug mode and some invariants verification
- Implementation is fully functional, incremental and backtrackable
- Linear optimization is not supported yet