[PPL-devel] [GIT] ppl/ppl(master): Improved section announcing sparse/ dense row representation adoption.
Enea Zaffanella
zaffanella at cs.unipr.it
Wed Jun 27 10:21:10 CEST 2012
Module: ppl/ppl
Branch: master
Commit: bf81124478b8102147d413f69d8c23177f4911fe
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=bf81124478b8102147d413f69d8c23177f4911fe
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Wed Jun 27 10:20:11 2012 +0200
Improved section announcing sparse/dense row representation adoption.
---
NEWS | 46 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/NEWS b/NEWS
index f220beb..fac7d33 100644
--- a/NEWS
+++ b/NEWS
@@ -15,14 +15,44 @@ NEWS for version 1.0 (released on June 28, 2012)
New and Changed Features
========================
-o Added a generic interface for sequences of coefficients enabling a
- seamless switch between the dense or the sparse row representation.
- The implementation of many library entities (linear expressions,
- constraints, generators, congruences, and their systems) can now be
- tailored to the specific usage context, sometimes leading to
- significant memory space savings (e.g., for constraint systems
- describing weakly relational abstractions such as boxes and
- octagonal shapes).
+o Significant improvements have been obtained in both time and space
+ resource usage by the definition of data structures and algorithms
+ for the case of "sparse rows", i.e., sequences of coefficients
+ where most of the values are zero.
+
+o The library fully supports two different representations for rows:
+ the "dense" representation is an array-like representation tailored
+ to sequences having most of their coefficients different from zero;
+ the "sparse" representation saves memory space (as well as CPU
+ cycles) when most of the coefficients in the sequence are zero.
+
+o A generic interface allows for a seamless interaction between the
+ dense and the sparse row representation. Most library entities
+ (linear expressions, constraints, generators, congruences, and
+ their systems) can be built using either representation, specified
+ as a constructor's argument.
+
+o As a by-product of this sparse/dense refactoring work, efficiency
+ improvements have been obtained even for those computations that
+ are still based on the dense row representation.
+
+o Reasonable default values for the row representation are provided
+ for each library entity, automatically leading to significant
+ memory space savings even in old client/library code, e.g., when
+ dealing with constraint systems describing weakly relational
+ abstractions such as boxes and octagonal shapes.
+
+o If desired, these default values can be customized to user's needs
+ by changing just a few lines of library code. For instance, the
+ constraint systems stored inside C_Polyhedron and NNC_Polyhedron
+ objects can be made to use the sparse representation by just
+ changing the following line in Polyhedron.defs.hh:
+
+ static const Representation default_con_sys_repr = DENSE;
+
+ to become
+
+ static const Representation default_con_sys_repr = SPARSE;
Bugfixes
More information about the PPL-devel
mailing list