#10039: Make Parma Polyhedra Library a standard library
----------------------------+-----------------------------------------------
Reporter: vbraun | Owner: mhampton
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-feature
Component: geometry | Keywords: ppl spkg
Author: Volker Braun | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
----------------------------+-----------------------------------------------
Changes (by vbraun):
* cc: jdemeyer (added)
* status: needs_work => needs_review
Old description:
> The Parma Polyhedra Library (ppl) is for many workloads the fastest
> library for polyhedral computations. It is also high-quality code, for
> example GCC uses it (optionally) to optimize loops.
> * ppl has already been widely tested on a multitude of platforms.
> * Native C++ with a pure C interface.
> * Contains a huge testsuite _and_ passes its own testsuite (in contrast
> to some other polydedral library that shall remain unnamed)
>
> Official webpage: http://www.cs.unipr.it/ppl/
>
> My plan is to
> 1. Create a PPL spkg.
> 2. Write a Cython interface.
> 3. Base `sage.geometry.cone.Cone` on PPL instead of `Polyhedron/cddlib`
> 4. Split `sage.geometry.polyhedra.Polyhedron` into an abstract base
> class and derived classes that use different polyhedral computation
> libraries.
>
> Current status:
> 1. Spkg can be found here:
> http://www.stp.dias.ie/~vbraun/Sage/spkg/ppl-0.11.spkg
> 2. My cython wrapper for PPL is attached. It has full doctest coverage
> and any invalid input is caught and raises `ValueError`.
> 3. Is split off into trac #10140.
>
> For convenience I mirrored the reference manual page here:
> http://www.stp.dias.ie/~vbraun/Sage/html/en/reference/sage/libs/ppl.html
>
> Dependencies:
> * #10094: cython and c++
> * #9828: Upgrade to Cython 0.13
New description:
The Parma Polyhedra Library (ppl) is for many workloads the fastest
library for polyhedral computations. It is also high-quality code, for
example GCC uses it (optionally) to optimize loops.
* ppl has already been widely tested on a multitude of platforms.
* Native C++ with a pure C interface.
* Contains a huge testsuite _and_ passes its own testsuite (in contrast
to some other polydedral library that shall remain unnamed)
Official webpage: http://www.cs.unipr.it/ppl/
My plan is to
1. Create a PPL spkg.
2. Write a Cython interface.
3. Base `sage.geometry.cone.Cone` on PPL instead of `Polyhedron/cddlib`
4. Split `sage.geometry.polyhedra.Polyhedron` into an abstract base
class and derived classes that use different polyhedral computation
libraries.
Current status:
1. Spkg can be found here:
http://www.stp.dias.ie/~vbraun/Sage/spkg/ppl-0.11.spkg
2. My cython wrapper for PPL is attached. It has full doctest coverage
and any invalid input is caught and raises `ValueError`.
3. Is split off into trac #10140.
For convenience I mirrored the reference manual page here:
http://www.stp.dias.ie/~vbraun/Sage/html/en/reference/sage/libs/ppl.html
Dependencies:
* #10094: cython and c++
* #9828: Upgrade to Cython 0.13
* #10233: Incomplete cython search path in `setup.py`
--
Comment:
Is `SAGE_LOCAL!=SAGE_ROOT/local` in your install? It should work in either
case, of course. I looked into how cython discovers the dependencies and
the problem is that the `setup.py` expects the extension "`.h`" for C/C++
headers. But PPL uses `ppl.hh`. I fixed the dependency discovery for
cython in #10233, which is a new prerequisite for this patch.
I also changed the ppl wrapper (this ticket) to rely on the search path
instead of `cdef extern from "../../local/include/ppl.hh"`, which I
probably should have done from the beginning.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10039#comment:21>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.