#10039: Make Parma Polyhedra Library a standard library
----------------------------+-----------------------------------------------
Reporter: vbraun | Owner: mhampton
Type: enhancement | Status: new
Priority: major | Milestone: sage-feature
Component: geometry | Keywords: ppl spkg
Author: Volker Braun | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
----------------------------+-----------------------------------------------
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.p0.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
--
Comment(by vbraun):
The testsuite fails on Solaris gcc 4.5.0, most likely due to a gcc bug.
For reference, the real error is
{{{
interval1.cc:76:3: error: no matching function for call to
'Parma_Polyhedra_Library::Interval<float,
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int,
<unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy> >
>::join_assign(double)'
interval1.cc:194:3: instantiated from here
}}}
Everything should work fine with gcc 4.5.1. In particular, I could compile
and run the testsuite on OpenSolaris/i386 with gcc 4.5.1. Also note that
the offending floating point code is currently not used in the Cython
wrapper. A similar bug report is here:
https://www.cs.unipr.it/mantis/view.php?id=110
About the `-W`, the gcc manual says:
> -Wextra: This enables some extra warning flags that are not enabled by
-Wall. (This option used to be called -W. The older name is still
supported, but the newer name is more descriptive.)
I have addressed the other issues that you raised. The updated spgk is
here:
http://www.stp.dias.ie/~vbraun/Sage/spkg/ppl-0.11.spkg
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10039#comment:15>
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.