#18199: sage.geometry.polyhedron should have an lrs (lrslib) backend
-----------------------------------+-----------------------------
       Reporter:  mkoeppe          |        Owner:
           Type:  enhancement      |       Status:  new
       Priority:  major            |    Milestone:  sage-wishlist
      Component:  geometry         |   Resolution:
       Keywords:  polyhedron, lrs  |    Merged in:
        Authors:                   |    Reviewers:
Report Upstream:  N/A              |  Work issues:
         Branch:                   |       Commit:
   Dependencies:  #18127           |     Stopgaps:
-----------------------------------+-----------------------------
Description changed by mkoeppe:

Old description:

> Sage already has lrs as an optional package (#18127 renames it lrslib).
>
> For higher-dimensional polytopes, computing vertices by lrs is often much
> faster than the implementations of the double description method in
> cddlib and ppl.
>
> lrs also has very fast and convenient code for removing redundant
> inequalities ("redund").
> See [https://groups.google.com/forum/#!topic/sage-support/WRpS5OgFMm8]
>
> Sage should have a backend_lrs.py to make use of the existing lrs
> package.
>
> Links to older discussions regarding lrs:
> [https://groups.google.com/forum/#!topic/sage-support/AZRzY7JyG_Y]
> [https://groups.google.com/forum/#!topic/sage-devel/oH6Jrjs-HUY]
>
> As has been said in these discussions, lrs also has a key benefit that it
> can generate the vertices as a stream, with very little memory use. This
> feature could be exposed using Python generators, using the Polyhedron
> methods Vrep_generator(), vertex_generator(), ray_generator(),
> line_generator().

New description:

 Sage already has lrs as an optional package (#18127 renames it lrslib).

 For higher-dimensional polytopes, computing vertices by lrs is often much
 faster than the implementations of the double description method in cddlib
 and ppl.
 lrslib 6.2 (#20886) has two modes of parallel computation, `plrs` and
 `mplrs`, see ​http://cgm.cs.mcgill.ca/~avis/C/lrs.html

 lrs also has very fast and convenient code for removing redundant
 inequalities ("redund").
 See [https://groups.google.com/forum/#!topic/sage-support/WRpS5OgFMm8]

 Sage should have a backend_lrs.py to make use of the existing lrs package.

 Links to older discussions regarding lrs:
 [https://groups.google.com/forum/#!topic/sage-support/AZRzY7JyG_Y]
 [https://groups.google.com/forum/#!topic/sage-devel/oH6Jrjs-HUY]

 As has been said in these discussions, lrs also has a key benefit that it
 can generate the vertices as a stream, with very little memory use. This
 feature could be exposed using Python generators, using the Polyhedron
 methods `Vrep_generator()`, `vertex_generator()`, `ray_generator()`,
 `line_generator()`.

 See also: polymake (#20892) has an interface to at least some features of
 lrs

--

--
Ticket URL: <https://trac.sagemath.org/ticket/18199#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to