#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.

Reply via email to