Log message:
Update to 1.1, provided by Kai-Uwe Eckhardt <kuehro@gmx.de> in private mail.
--------------------------------------------------------------------------
NEWS for version 1.1 (released on October 28, 2013)
--------------------------------------------------------------------------
New and Changed Features
========================
o Added a new operator on polyhedra: the positive time elapse.
o In the Java language interface:
- The constraint/generator/... system classes now extend the ArrayList
generic container (rather than Vector);
- Variable objects are now built from a long (rather than int) value,
thereby matching the type used elsewhere for space dimensions;
- added new static method to Variable class
void setStringifier(Variable_Stringifier)
where Variable_Stringifier is an interface allowing for
customization of the output routine for variable's names
(see example in interfaces/Java/tests/Variable_Output_test1.java);
- added value NOT_EQUAL to enumeration Relation_Symbol.
Bugfixes
========
o Portability improved.
o Fixed a precision regression in Polyhedron method
void drop_some_non_integer_points(const Variables_Set&,
Complexity_Class);
o In the Java language interface, fixed a C++/Java conversion error
whereby the construction of a valid Variable object in JNI code
was leading to an exception being thrown. The bug has only been
observed on 32-bit builds.
o In the Java interface, fixed declaration of methods
void drop_some_non_integer_points(...);
so as to accept a Complexity_Class enum value.
o Fixed an issue in method MIP_Problem::OK() whereby the method
was trying to enforce a non-invariant condition.
--------------------------------------------------------------------------
NEWS for version 1.0 (released on June 28, 2012)
--------------------------------------------------------------------------
New and Changed Features
========================
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
========
o Fixed a bug affecting methods
bool BD_Shape<T>::contains(const BD_Shape& y) const;
bool Octagonal_Shape<T>::contains(const Octagonal_Shape& y) const;
whereby the wrong result was obtained when *this is an empty
weakly-relational shape and y is not empty.
o Fixed a bug affecting the PIP solver whereby a wrong result could have
been obtained if the input constraint system contained multiple linear
equality constraints.
--------------------------------------------------------------------------
NEWS for version 0.12.1 (released on April 16, 2012)
--------------------------------------------------------------------------
New and Changed Features
========================
o In the C, Java, OCaml and Prolog interfaces, modified the signature
of the function/method/predicate for setting the deterministic timeout
threshold. The new interfaces take two input values, named `unscaled'
and `scale', that are used to compute the threshold value as
`unscaled * 2^scale'.
o Added new Box<ITV> methods
bool has_upper_bound(Variable var,
Coefficient& n, Coefficient& d, bool& \
closed) const;
bool has_lower_bound(Variable var,
Coefficient& n, Coefficient& d, bool& \
closed) const;
to query a non-empty box for the existence and value of its upper/lower
bound on variable `var'. The methods have been also added to all the
available language interfaces.
o Two BibTeX databases of papers related to the Parma Polyhedra Library
have been added to the distribution (in the `doc' directory).
Bugfixes
========
o Restored the support for deterministic timeouts in the PIP solver
(it was removed by accident in PPL 0.12).
o Minor documentation fixes.
o Portability improved.
--------------------------------------------------------------------------
NEWS for version 0.12 (released on February 27, 2012)
--------------------------------------------------------------------------
New and Changed Features
========================
o New configure options `--with-gmp=DIR', `--with-gmp-include=DIR' and
`--with-gmp-lib=DIR' supersede the (now removed) option
`--with-gmp-prefix'. (The old option never really worked; hopefully
this is the last change in this area.)
o New configuration option `--disable-documentation'. When specified
no new documentation is built: only the documentation already present
in the source tree is installed upon `make install'.
o The resolution process for PIP_Problem now better exploits the
integrality of parameters to simplify the newly generated tautological
constraints, the splitting constraints of decision nodes, and the
expressions defining artificial parameters.
o The implementations of the MIP and PIP solvers are based on a new
data structure leading to significant space and time savings when
the tableau matrix is sparse; the benchmarks of the ppl_lpsol demo
show an improvement on the average case, that grows when the toughest
tests in the benchmark suite are considered.
o When the `--check' option is used, the input data for demo ppl_lpsol
is perturbed the same way as GLPK does, thereby allowing for a
meaningful comparison of the results obtained.
o The input routine for PPL numeric datatypes has been extended to
accept the ISO9899 (C99) hexadecimal floating constant syntax.
o The Parma Watchdog Library has been merged into the
Parma Polyhedra Library.
Bugfixes
========
o Corrected a precision bug in methods
Box<ITV>::upper_bound_assign(const Box&)
Box<ITV>::upper_bound_assign_if_exact(const Box&)
whereby, provided any argument is an empty box and under other rather
specific conditions, the computed result was correct but unnecessarily
imprecise.
o Corrected a bug in method
Grid::relation_with(const Constraint&) const
whereby, under specific conditions, the method was creating invalid
Grid_Generator objects and providing an incorrect result.
|