xref|hvref(1)

  Name
xref|hvref - produce a cross reference list between H- and V-representations.

  Synopsis

xref [input-file]

hvref [input-file]

  Description

These programs are part of and must be compiled with lrslib which is a C library. All computations are done in exact arithmetic.

xref and hvref produce a cross reference list between H- and V-representations.

xref/hvref Cross reference listing between V- and H-representations

In the example below we start from an H-representation of cube.ine but the same steps apply to the V-representation cube.ext. It is recommended to first remove any redundancies from the input file using redund.

1. Add printcobasis and incidence options to cube.ine and run lrs.
 % cat cube.ine
 cube
 H-representation
 begin
 6 4 rational
  0 1 0 0
  0 0 1 0
  0 0 0 1
  1 -1 0 0
  1 0 -1 0
  1 0 0 -1
 end
 printcobasis
 incidence

% lrs cube.ine cube.ext

2. Run xref on the output file cube.ext getting cube.ext.ex

 % xref cube.ext
 % cat cube.ext.ex lg% cat cube.ext.x
 V-representation
     1 4 5 6 #
     2 1 5 6 #
     3 2 4 6 #
     4 1 2 6 #
     5 3 4 5 #
     6 1 3 5 #
     7 2 3 4 #
     8 1 2 3 #

3. Edit the file cube.ext.x to insert a second line that contains two integers

rows maxindex

where rows >= # output lines in cube.ext.x
      maxindex >= # input lines in cube.ine

or just use 0 0 and run hvref, the output will tell you which values to use.

% hvref cube.ext.x % hvref cube.ext.x

 V-representation
 8 8
 1: 4 5 6
 2: 1 5 6
 3: 2 4 6
 4: 1 2 6
 5: 3 4 5
 6: 1 3 5
 7: 2 3 4
 8: 1 2 3

 H-representation
 6 8
 1: 2 4 6 8
 2: 3 4 7 8
 3: 5 6 7 8
 4: 1 3 5 7
 5: 1 2 5 6
 6: 1 2 3 4
 input rows=8 maxindex=6

  Notes

1.  FAQ page
    https://inf.ethz.ch/personal/fukudak/polyfaq/polyfaq.html

2.  User's guide for lrslib
    http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html

  Author
David Avis <avis at cs dot mcgill dot ca >

  See also
mplrs(1), lrslib(5), lrsnash(1)