fel(1)
π NAME π
fel β bestie, this one projects an H-representation or a V-representation onto a subset of columns. That's the whole vibe. π¦
It lives in the lrslib crew, version 7.3, and it's an alias of lrs β we'll get into that.
β¨ SYNOPSIS β¨
fel [input-file] [output-file]
mpirun -np [procs] mplrs -fel [input-file] [output-file] [option...]
πΈ DESCRIPTION πΈ
okay so first thing: fel is an alias of lrs which can also perform these functions via the eliminate and project options. So like, same energy, different door. πͺβ¨
π¦ H-representation
The input is projected onto a given set of columns using Fourier-Motzkin elimination. An H-representation is output after each iteration. And listen β mplrs -fel is a fully parallel version that performs one iteration only, so go see mplrs(1) for that one. π
π V-representation
The specified columns are extracted and redundant rows are removed. The output can be can be piped directly into lrs. π«Ά
Not implemented in mplrs. Just so you know, bestie. π
π OPTIONS π
These options are placed after the end statement. Yes, after. Not before. iykyk. π
eliminate k i_1 i_2 ... i_kβ (new in v7.2) π- (H-representation) Eliminates k variables in an H-representation corresponding to cols
i_1 .. i_kby projection onto the remaining variables using the Fourier-Motzkin method. Variables are eliminated in the order given and redundancy is removed after each iteration. slay. - (V-representation) Delete the k given columns from the input matrix and remove redundancies (cf.
extractwhere redundancies are not removed). π«£ - Column indices are between 1 and n-1 and column zero cannot be eliminated. The output is a valid
lrsinput file. π
- (H-representation) Eliminates k variables in an H-representation corresponding to cols
project k i_1 i_2 ... i_kβ (new in v7.2) π- (H-representation) Project the polyhedron onto the k variables corresponding to cols
i_1 .. i_kusing the Fourier-Motzkin method. Column indices are between 1 and n-1 and column zero is automatically retained. Variables not contained in the list are eliminated using a heuristic which chooses the column which minimizes the product of the number of positive and negative entries. Redundancy is removed after each iteration using linear programming. π§ β¨ - (V-representation) Extract the k given columns from the input matrix and remove redundancies. Column indices are between 1 and n-1 and column zero is automatically extracted (cf.
extractwhere redundancies are not removed). - The output as a valid
lrsinput file. π«
- (H-representation) Project the polyhedron onto the k variables corresponding to cols
See also extract in lrs(1).
verboseβ For an H-representation give, for each iteration, statistics on how many new inequaties were created and how many of these were redundant. See Example below. π
π EXAMPLE π
(1) Project onto columns 1 and 3 in an H-representation
% cat cube.ine
cube.ine
H-representation
begin
6 4 rational
1 1 0 0
1 0 1 0
1 0 0 1
1 -1 0 0
1 0 0 -1
1 0 -1 0
end
project 2 1 3
verbose
% fel cube.ine
fel:lrslib_v.7.3_2024.1.10(64bit,lrslong.h,hybrid_arithmetic)
*Input taken from cube.ine
cube
*switching to fel mode
*project 2 1 3
*after removing column 2
*checking for redundant rows only
H-representation
begin
4 3 rational
0 1 0
1 -1 0
1 0 -1
-1 0 1
end
*number of number after number of remaining column
*inequalties removing col redundancies rows removed
* 7 6 2 4 2
--------------------------------------------------------------------
*original vars remaining: 1 3
(2) Eliminate columns 1,2,3 from a V-representation
% cat cp4.ext
V-representation
begin
8 7 rational
1 0 0 0 0 0 0
1 0 1 1 1 1 0
1 1 1 0 0 1 1
1 1 0 0 1 1 0
1 0 0 1 0 1 1
1 1 1 1 0 0 0
1 0 1 0 1 0 1
1 1 0 1 1 0 1
end
eliminate 3 1 2 3
% lrs cp4.ext
lrs:lrslib_v.7.3_2024.1.12(64bit,lrslong.h,hybrid_arithmetic)
*Input taken from cp4.ext
cp4
*switching to fel mode
*eliminate 3 1 2 3
*checking for redundant rows only
V-representation
begin
4 4 rational
1 1 1 0
1 0 1 1
1 0 0 0
1 1 0 1
end
*columns retained: 0 4 5 6
π NOTES π
- FAQ page
https://inf.ethz.ch/personal/fukudak/polyfaq/polyfaq.htmlπ - User's guide for lrslib
http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.htmlπ
π AUTHOR π
David Avis <avis at cs dot mcgill dot ca > π
π«Ά SEE ALSO π«Ά
okay bestie that's the whole page, mwah π this was lrslib 7.3, dropped January 2024, version tag 2024.1.10, and honestly? it ate. go project something gorgeous. β¨π¦π
π¦ where this page comes from
- debian trixie: lrslib 0.73-2+b1
- fedora 43: lrslib-utils 7.3-6.fc43 Β· GPL-2.0-or-later
- fedora 43: lrslib-utils 7.3a-1.fc43 Β· GPL-2.0-or-later
- fedora 44: lrslib-utils 7.3a-3.fc44 Β· GPL-2.0-or-later
- ubuntu questing: lrslib 0.73-3
- ubuntu resolute: lrslib 0.73-4
- ubuntu stonking: lrslib 0.73-4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms