Authors ======= The Parma Polyhedra Library and its documentation is being designed, written, debugged and improved by the following people: Current core development team: ------------------------------ Roberto Bagnara [1] (University of Parma) Patricia M. Hill [2] (University of Leeds) Enea Zaffanella [3] (University of Parma) Former members of the core development team: -------------------------------------------- Elisa Ricci (former student of the University of Parma) has been a major contributor to the development of the PPL, up until December 2002. Current contributors: --------------------- Abramo Bagnara (Opera Unica) rewrote and generalized the support for checked coefficients. He also wrote the support for extended numbers and is currently writing a new implementation of intervals. He also helps on other design and implementation issues. Andrea Cimino (University of Parma) wrote the initial version of our primal simplex solver. He is still working on its refinement and optimization. Katy Dobson [4] (University of Leeds) is working on the formalization and definition of algorithms for rational grids. Elena Mazzi (University of Parma) has been working on our first implementation of bounded differences and octagons. She also participated in the theoretical and practical work concerning widening operators for weakly relational domains. She is still working on this. David Merchat [5] (University of Parma) is helping us with the generation of the library's documentation using Doxygen. Matthew Mundell [6] (University of Leeds) is working on the implementation of rational grids. He also helps on other implementation issues. Andrea Pescetti (University of Parma) is helping with the library's documentation. Andrea was also one of the four students with which the PPL project started. Barbara Quartieri (University of Parma) is working on the implementation of bounded differences and octagons. Alessandro Zaccagnini [7] (University of Parma) has helped with the efficient implementation of GCD and LCM for checked numbers. He is now working on the definitions of interval arithmetic operations. Alessandro is always a very valuable source of mathematical advice. Past contributors: ------------------ Irene Bacchi (University of Parma) worked on a development branch where she implemented several variants of algorithms, checking whether or not the set-union of two polyhedra is the same as their poly-hull. Danilo Bonardi (University of Parma) worked on a development branch where he experimented with the use of metaprogramming techniques based on "expression templates". The objective of this work was to check the effectiveness of these techniques for moving computations from run-time to compile-time. Sara Bonini (former student of the University of Parma) is one of the four students with which the PPL project started. Giordano Fracasso (University of Parma) wrote the initial version of the support for native and checked integer coefficients. Maximiliano Marchesi (University of Parma) helped to improve the documentation for bounded differences. Angela Stazzone (former student of the University of Parma) worked on the library's documentation. Fabio Trabucchi (University of Parma) worked on a development branch where he added serializers for all the objects of the PPL. Support for serialization based on Fabio's work, will be available in a future release of the library. Claudio Trento (University of Pisa) worked on an experimental OCaml interface for the PPL. Tatiana Zolo (former student of the University of Parma) is one of the four students with which the PPL project started. Thanks! ======= The following people have given important help to the project: Lucia Alessandrini (University of Parma) provided 4 hour-long lectures on convex polyhedra for the Italian authors. This was crucial for us to acquire and/or refresh the notions needed for developing the PPL library. Marco Comini [8] (University of Udine) allowed us to use his Mac OS X machine to work on portability to that platform. Bruno Haible [9] (ILOG) made it possible (by writing the AC_LIB_LINKFLAGS macro and explaining how to use it) to allow the use of versions of the GMP library installed into nonstandard places. Bertrand Jeannet [10] (IRISA) wrote the New Polka library [11] and made it available. Herve' Le Verge (r.i.p.) wrote and published an implementation [12] of the Chernikova's algorithm [13] that has set the stage for subsequent implementation work, including our own. Francesco Logozzo [14] (Ecole Polytechnique) helped us straighten out some portability issues on Cygwin. Costantino Medori [15] (University of Parma) helped us on the mathematical aspects of the development. Fred Mesnard [16] (University of La Reunion), the main author of cTI [17], has worked with us at one of the first applications of the PPL: the "cTI" data-flow analyzer, which performs a linear size relation analysis using a domain of convex polyhedra. The China data-flow analyzer [18] uses the Parma Polyhedra Library to perform the same analysis. We have been running China against an old version of cTI that did not use the PPL, using them to analyze the same Prolog programs. Since that systems did not share a single line of code, this gave us excellent opportunities for our initial testing and debugging work. This work has been partly supported by the following projects and organizations: 1. University of Parma's FIL scientific research project (ex 60%) ``Pure and Applied Mathematics''; 2. MURST project ``Automatic Program Certification by Abstract Interpretation'' [19]; 3. MURST project ``Abstract Interpretation, Type Systems and Control-Flow Analysis''. 4. MURST project ``Automatic Aggregate- and Number-Reasoning for Computing: from Decision Algorithms to Constraint Programming with Multisets, Sets, and Maps'' [20]. 5. MURST project ``Constraint Based Verification of Reactive Systems'' [21]. 6. MURST project ``AIDA - Abstract Interpretation: Design and Applications'' [22]. 7. Royal Society Joint project 2004/R1-EU (UK-Italy) ``Automatic Detection of Unstable Numerical Computations''. 8. EPSRC (UK) project EP/C520726/1 ``Numerical Domains for Software Analysis'' [23]. -------- [1] http://www.cs.unipr.it/~bagnara/ [2] http://www.comp.leeds.ac.uk/hill/ [3] http://www.cs.unipr.it/~zaffanella/ [4] http://www.comp.leeds.ac.uk/katyd/ [5] http://www.cs.unipr.it/~merchat/ [6] http://www.mundell.ukfsn.org/ [7] http://www.math.unipr.it/~zaccagni/ [8] http://www.dimi.uniud.it/~comini/ [9] http://www.haible.de/bruno/ [10] http://www.irisa.fr/prive/Bertrand.Jeannet/ [11] http://www.irisa.fr/prive/Bertrand.Jeannet/newpolka.html [12] http://www.cs.unipr.it/ppl/Documentation/chernikova.c [13] http://www.cs.unipr.it/ppl/Documentation/bibliography#LeVerge92 [14] http://www.enseignement.polytechnique.fr/profs/informatique/Francesco.Logozzo/ [15] http://www.math.unipr.it/~medori/ [16] http://www.univ-reunion.fr/~fred/ [17] http://www.cs.unipr.it/cTI/ [18] http://www.cs.unipr.it/China/ [19] http://theory.sci.univr.it/p40/ [20] http://www.cs.unipr.it/Projects/COFIN01 [21] http://www.disi.unige.it/person/DelzannoG/cover/ [22] http://www.cs.unipr.it/Projects/AIDA/ [23] http://www.comp.leeds.ac.uk/hill/linda/