package ocplib-simplex

  1. Overview
  2. Docs
A library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities

Install

Dune Dependency

Authors

Maintainers

Sources

ocplib-simplex-0.5.1.tbz
sha256=a5c814be4d18e60c525d37c5b21e880b05b42e7c57b351aa3d20173521d513cf
sha512=2cf2936792c4429556fa7349069474056d5ae4ca0cf8ad3587880ebbc32cec39fad9b36df7c1ae18fa15f89fe4291bdb5a350b20d0cf84ce5ae651a77d0dd163

Description

A (fully) functional OCaml implementation of the simplex algorithm for solving systems of linear inequalities. The implementation is incremental and backtrackable. It is able to extract unsat-cores for unsatisfiable problems. Versions > 0.1 also support linear optimization.

Published: 02 Apr 2024

README

Ocplib-simplex

Ocplib-simplex a is library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities and optimizing linear objective functions. The implementation is incremental and backtrackable. It is able to extract unsat-cores for unsatisfiable problems. Versions > 0.1 also support linear optimization.

Website

Ocplib-simplex's web is available at: https://ocamlpro.github.io/ocplib-simplex

Dependencies

ocplib-simplex requires 4.08.1 or higher and ocamlfind. You can use make opam-deps to install dependencies in the current switch.

Build and Install Instructions

The easiest way to install ocplib-simplex is to use OPAM:

$ opam install ocplib-simplex

If you want to install ocplib-simplex from sources, use the following instructions:

$ make opam-deps (if you are using OPAM and some deps are missing)
$ make
$ make install

to compile and install ocplib-simplex on your system. You can uninstall the library with make uninstall.

Minimal Examples

Solving a system of linear inequalities: see the file tests/standalone_minimal.ml

Linear optimization: see the file tests/standalone_minimal_maximization.ml

Contributing

Don't hesitate to report encountered bugs on this Git repo's issues tracker. Please follow the [contribution guide][contributing].

TODO

  • the code is not (well) documented,

  • some parts of the code need factorization/simplification,

  • some invariants (check unsat-core, linear optimization) are missing.

Licensing

ocplib-simplex is Copyright (C) --- OCamlPro. it is distributed under the terms of the GNU Lesser General Public License (LGPL) version 2.1 (see LICENSE file for more details).

Dependencies (4)

  1. logs >= "0.5.0"
  2. ocamlfind >= "1.9.1"
  3. dune >= "2.0"
  4. ocaml >= "4.02.0"

Dev Dependencies (2)

  1. odoc with-doc
  2. zarith with-test

Used by (1)

  1. alt-ergo-lib >= "2.5.0"

Conflicts

None