Manipulation of Linear Systems of (in)Equalities

Variable elimination (Gaussian elimination, Fourier-Motzkin elimination), Moore-Penrose pseudoinverse, reduction to reduced row echelon form, value substitution, projecting a vector on the convex polytope described by a system of (in)equations, simplify systems by removing spurious columns and rows and collapse implied equalities, test if a matrix is totally unimodular, compute variable ranges implied by linear (in)equalities.



  • bugfix in 'eliminate': faulty update of H matrix led to crashes in some cases.
  • bugfix in 'compact': ins some cases the wrong neq was returned.


  • bugfix in ranges. Crashed on some cases where matrices w/zero rows were created.
  • native routines now registered as requested by CRAN


  • new function 'is_totally_unimodular'
  • new function 'ranges' computes variable ranges implied by a system of (in)equations
  • eliminate gains argument 'eps' to control numerical accuracy
  • deprecated sparseConstraints in favor of the more consistent name sparse_constraints
  • bugfix: pinv crashed on matrices with a single s.v.
  • bugfix: eliminate would sometimes report the wrong number of (in)equalities
  • bugfix: eliminate sometimes crashed because of a mismatch in colnames of history matrix

version 0.1.0

  • Initial release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("lintools") by Mark van der Loo, 10 months ago

Report a bug at

Browse source code at

Authors: Mark van der Loo [aut, cre], Edwin de Jonge [aut]

Documentation:   PDF Manual  

GPL-3 license

Imports utils

Suggests testthat, knitr

Imported by deductive, rspa.

See at CRAN