A system of linear (in)equations can be compactified by removing
zero-rows and zero-columns (=variables). Such rows and columns may
arise after substitution (see subst_value) or eliminaton
of a variable (see eliminate).
[numeric] The first neq rows in A and
b are treated as linear equalities.
nleq
[numeric] The nleq rows after neq are treated as
inequations of the form a.x<=b. All remaining rows are treated as strict inequations
of the form a.x<b.
eps
[numeric] Anything with absolute value < eps is considered zero.
remove_columns
[logical] Toggle remove spurious columns from A and variables from x
remove_rows
[logical] Toggle remove spurious rows
implied_equations
[logical] replace cases of a.x<=b and a.x>=b with
a.x==b.
Value
A list with the following elements.
A: The compactified version of input A
b: The compactified version of input b
x: The compactified version of input x
neq: number of equations in new system
nleq: number of inequations of the form a.x<=b in the new system
cols_removed: [logical] indicates what elements of x (columns of A) have been removed
Details
It is assumend that the system of equations is in normalized form (see link{normalize}).