Archive
This is an archive of the bugs discovered for various versions of the PPL.
Known Bugs in PPL 0.12.1
- May 23, 2012
- Corrected a bug in methods
BD_Shapeand::contains(const BD_Shape& y) Octagonal_Shapewhereby the wrong result was obtained when::contains(const Octagonal_Shape& y) *thisis an empty weakly-relational shape andyis not empty. Relevant commit is e27c255a163af8d1ca70494be28ccfb22984b7e9. - May 4, 2012
- Corrected a bug affecting the PIP solver whereby a wrong result could have been obtained if the input constraint system contained multiple linear equality constraints. Relevant commit is 5453b06aa9e87a44354171c588e09397393a0bb6.
Known Bugs in PPL 0.11.2
- February 14, 2012
- Corrected a precision bug in methods
Boxand::upper_bound_assign(const Box&) Boxwhereby, provided any argument is an empty box and under other rather specific conditions, the computed result was correct but unnecessarily imprecise. Relevant commit is 50bf9eb645f7db8db9157788112b41d88cf18f08.::upper_bound_assign_if_exact(const Box&) - December 3, 2011
-
Corrected a bug in method
Grid::relation_with(const Constraint&) constwhereby, under specific conditions, the method was creating invalid Grid_Generator objects and providing an incorrect result. Relevant commit is b67af6c1ba5a560e2ab48a37cccf8fc18782a257. - October 17, 2011
- Fixed a bug that, under quite specific conditions, caused a wrong result to be computed when re-optimizing a 0-dimension MIP problem. Relevant commit is 09144610d98413a390afed2c0f5b189e7a9e5f30.
Known Bugs in PPL 0.11
- February 10, 2011
- Fixed a bug in the input method for checked integers whereby, under specific conditions, the input stream state bits were not updated. The bug was only affecting builds using checked integer coefficients. Relevant commit is d0f6bd037c90676130e9547e5ed909cf6ba8eee9.
- February 5, 2011
-
Fixed a bug in the OCaml interface, which was affecting functions
ppl_Pointset_Powerset_<INSTANCE>_get_disjunct. Relevant commit is c23ded5ce0023a753fdd5da2dbbd99d1a084566c. - February 5, 2011
-
Corrected a couple of resource (re-)allocation problems that, under
specific conditions, could affect the correctness of Grid constructor
Grid::Grid(const Box<Interval>& box)and NNC_Polyhedron methodPolyhedron::generalized_affine_image(). Relevant commits are a01fecf4cde756aaefe88b8f309f9bdf3e07b670 and bf1edca5e0ddb03674a35218dccce6bc421469e2. - February 4, 2011
-
Corrected a problem in the simplification of
PIP_Problemsolution trees whereby, under specific conditions, the node merging process produced decision nodes that did not satisfy their class invariant. Relevant commit is caaa126b56ccb07884217b33b6cc8c1f79e7f6ca. - October 19, 2010
-
Fixed a precision bug in method
Octagonal_Shape<T>::affine_image()whereby in the case of an invertible affine transformation implementing a variable sign symmetry (and optional translation), the computed result was correct but unnecessarily imprecise. Relevant commit is 5c95fc0eab6a38442751ed16c6cfa9d538917f3f. - October 16, 2010
-
Fixed a bug whereby the argument of all the methods
unconstrain(Variable var)was not checked correctly for space dimension compatibility. Relevant commit is ff5b0796773b34ef9d1e26d2a40b4fdb8376dc8f. - September 16, 2010
-
Corrected an efficiency bug in the C language interface function
ppl_Linear_Expression_add_to_coefficient(). Relevant commit is ba9f6c92b49afbbfc37d864f59fff70df90f6536. - September 7, 2010
-
Fixed a bug affecting constructor
Interval::Interval(const char* s)whereby a wrong interval would be constructed if the string argument denotes a number that can only be represented as an infinity. Relevant commit is 3e2fe287b4efd3b58127951793cc00ffe0ca21c0. - August 29, 2010
-
Fixed a bug affecting the input routine of
ppl_lpsol, whereby the inhomogeneous term of the objective function was disregarded. The bug could only affect the optimized value of the objective function, while having no effect onthe problem's optimization state. Relevant commit is c82a27391846139072cadf0754f59f4805f4f99b. - August 13, 2010
-
Fixed a bug affecting methods
Box::CC76_widening_assign(const T&, Iterator, Iterator)andInterval::CC76_widening_assign(const From&, Iterator, Iterator)whereby a lower bound would not be computed correctly when the two iterators specify an empty list of stop points. Relevant commit is 535657baab7b4f5e6d884a7fcdc2138b1ea0797c.
Known Bugs in PPL 0.10.2
- January 9, 2010
-
Modified
ppl_lpsoltest filesex1.mpsandunboundedmin.mpsso as to explicitly flag problem variables to be integer ones. This change allows to obtain a stable output for the two tests across different versions ofglpk. The problem was caused by a change of behavior, first occurring inglpk-4.38, in the MPS file parsing routines. For more details, see the mailing list threads [Bug-glpk] Variables erroneously read as binary? and [PPL-devel] [Fink-devel] ppl-0.10.2 check thorough test fail. The two relevant commits are 97ce932e012943328164d387cfe9a8d2196ca171 and 56ee86b9ccf001c8dc2ab1558332e9691b2eff3f. - August 15, 2009
-
Fixed a bug whereby
maximizeandminimizeoptimization methods of the class templatePointset_Powersetwere returning the Boolean valuetrue(indicating a successful optimization) even when the pointset powerset was empty, thereby contradicting their specification. Relevant commit is b52a2d273f4f96eec4a2ac5bb453756906e52a88. - August 7, 2009
-
Fixed a bug whereby method
NNC_Polyhedron::poly_hull_assign_if_exact(const NNC_Polyhedron&)was sometimes working incorrectly, flagging some inexact hull computations as exact. The bug was only affecting the domain of NNC polyhedra and domains based on it (e.g., finite powersets of NNC polyhedra). Relevant commit is 325ba80abd8c06c5dd740d35064302bbe65e251b.
Known Bugs in PPL 0.10.1
- April 16, 2009
-
Fixed a bug whereby
make -n(possibly followed by one or more make targets) was not working as expected. Relevant commits are d5c7c849dc491e2057c5da89b777ab61377df240 and 196f2de7fe79d67450109628d144b9b8f4ec2e3e. - April 15, 2009
-
Fixed a bug in the Libtool version information for the C language interface
library, which caused the
libppl_clibrary to be installed with a wrong soname (18ff016b92d1564dc761a0a1dcc528d8c2c4915b). - April 15, 2009
-
Modified the configuration script so as to correctly detect version
4.3.0 of GMP
(5596eca02f2dea09e57ea22a240c2f3eab8be9e5).
Note: strictly speaking, this is not a PPL bug, since GMP 4.3.0
(released a few hours after the release of PPL 0.10.1)
includes a backward-incompatible change to variable
gmp_version.
Known Bugs in PPL 0.10
- March 26, 2009
-
Fixed several bugs in the OCaml interface code that were reported
by Kenneth MacKenzie (thanks!). Corrections include:
- garbage collection issues (778dfb88238cb7f66cb638d9af2411cd88aa0038);
- proper handling of unit values (8bd3d1d46d8b44f57d29b39912c3802968856596);
- proper handling of tokens in widening functions (aadc083b812f6bc477ad2c4bd08155f04992d310).
- March 24, 2009
-
Found a bug affecting the method
Octagonal_Shape<T>::affine_image(var, expr)whereby a wrong result can be computed, under specific conditions, ifexprhas the formvar + n. The bug has been corrected in the git master branch (d81e9642493f53fa6456d19e4ba3107bcfdf42a8). - March 22, 2009
- Found a bug affecting the Java, OCaml and Prolog language interfaces whereby the method/function/predicate for dropping a disjunct from a Pointset_Powerset object were returning an invalid iterator. The bug has been corrected in the git master branch (6a6734db48e2ca605dfc27ce5f1a923eb867ed25).
- February 3, 2009
-
Found a bug affecting PPL 0.10 and the CVS head version
on all big-endian architectures.
The bug has already been corrected (though not yet in an optimal
way) in the CVS head version.
A patch for PPL 0.10
is also available.
If for some reason you cannot patch the sources, another workaround
is to configure the library,
on big-endian architectures only, specifying
CPPFLAGS="-UWORDS_BIGENDIAN -DPPL_WORDS_BIGENDIAN=1"at the end of the configure command, and then use these flags to compile C++ application code that includesppl.hh(no further precaution is needed for applications using any other interface). - February 2, 2009
-
Found a bug affecting method
Polyhedron::simplify_using_context_assignand methods for adding generators to a polyhedron whereby, under rather specific condition, an assertion fails when working with empty polyhedra in a zero-dimension vector space. The bug has already been corrected in the CVS head version. - November 24, 2008
-
Found a bug in a private method that affects the public methods
Grid::bounds_from_above(), Grid::bounds_from_below(), Grid::bounds_from_maximize(), Grid::bounds_from_minimize()causing all of them to wrongly return true in certain cases where the grid generators were up-to-date but not minimized. The bug has already been corrected in the CVS head version. - November 20, 2008
-
Found a bug in method
Partially_Reduced_Product<D1, D2, R>::time_elapse_assign(y)whereby, if the product y was not already reduced, the operation could lose precision. The bug has already been corrected in the CVS head version. A simple workaround is also available: it is sufficient to perform any check such as emptiness just before calling the method.Found a bug in the OCaml interface code for functions
ppl_Grid_generalized_affine_image_with_congruenceandppl_Grid_generalized_affine_preimage_with_congruence. The bug has already been corrected in the CVS head version. - November 18, 2008
-
Found a bug in method
Polyhedron::contains_integer_point()whereby, under very specific conditions, an empty polyhedron is incorrectly said to contain an integer point. The bug has already been corrected in the CVS head version. A simple workaround is also available: it is sufficient to perform an emptiness check just before calling the method above.
Known Bugs in PPL 0.9
- December 3, 2007
- Found a bug in an internal method handling the insertion of a constraint or generator in the corresponding system. The bug only occurs under very specific conditions: in particular, when a not necessarily closed constraint/generator is inserted in an empty system having a higher space dimension. The bug has already been corrected in the CVS head version.
- October 10, 2007
-
Found a bug in methods
Grid::constraints()andGrid::minimized_constraints()that caused an internal assertion to fail when the grid had space dimension 0. The bug, which can only be observed if the library is configured with assertions checking enabled, has already been corrected in the CVS head version. - September 30, 2007
-
Found bugs that prevent building the library on systems not supported
by the Parma Watchdog Library or when the library is configured by
using the
--disable-watchdogoption. The bugs have already been corrected in the CVS head version.
Known Bugs in PPL 0.8
- February 27, 2006
- Found a bug in an internal method that, under some circumstances, could cause a computation on polyhedra to yield a wrong result. The bug has already been corrected in the CVS head version.
- January 27, 2006
- Found a bug in the SICStus Prolog interface whereby the library could not be built on x86_64 architectures. The bug has already been corrected in the CVS head version.
Known Bugs in PPL 0.7
- October 04, 2005
-
Found a bug in method
void Polyhedra_Powerset<PH>::concatenate_assign(const Polyhedra_Powerset& y)that could result in the generation of invalid powersets. The bug has already been corrected in the CVS head version. - July 04, 2005
-
Found a bug in methods
void Polyhedron::generalized_affine_imagethat could manifest as an assertion violation when the polyhedron was represented by an inconsistent constraint system. The bug has already been corrected in the CVS head version. - February 11, 2005
- Found a bug that could manifest itself when the constraint system of some polyhedron is copied and then new constraints are inserted into the copy. The bug has already been corrected in the CVS head version.
- January 13, 2005
- Found a bug whereby the occurrence of an `out of memory' error during the allocation of a row of integer coefficients could have resulted in a memory leak. The bug has already been corrected in the CVS head version.
- January 10, 2005
-
Found a bug in the specialized constructors
Polyhedra_Powerset<NNC_Polyhedron>(const Polyhedra_Powerset<C_Polyhedron>&)andPolyhedra_Powerset<C_Polyhedron>(const Polyhedra_Powerset<C_Polyhedron>&)whereby the newly built Polyhedra_Powerset object could have been flagged as non-redundant even though it was containing redundant disjuncts. Found a similar bug in generic constructorPolyhedra_Powerset(const Constraint_System& cs)that manifests whencsis denoting an empty polyhedron. The bugs have already been corrected in the CVS head version.
Known Bugs in PPL 0.6.1
- September 8, 2004
-
Found (thanks to Sriram Sankaranarayanan) a bug in a private method
of class
GenSysthat was affecting the widening methodvoid Polyhedron::H79_widening_assign(const Polyhedron& y, unsigned* tp = 0)as well as all the limited and bounded extrapolation methods for polyhedra. The bug has already been corrected in the CVS head version. A patch for PPL 0.6.1 is also available. - September 15, 2004
-
Corrected a bug that was affecting the methods
bool Polyhedra_PowerSet::geometrically_covers(const Polyhedra_PowerSet&) constandbool Polyhedra_PowerSet::geometrically_equals(const Polyhedra_PowerSet&) const. The bug has already been corrected in the CVS head version. A patch for PPL 0.6.1 is also available. - November 6, 2004
-
Fixed a bug in
template <typename Partial_Function> void Polyhedron::map_space_dimensions(const Partial_Function& pfunc)that could manifest itself when used with a partial function encoding permutation. The bug has already been corrected in the CVS head version. - November 8, 2004
-
Corrected a bug that was affecting method
bool Polyhedron::is_universe() const. The bug has already been corrected in the CVS head version.
Known Bugs in PPL 0.5
- August 20, 2003
-
Found (thanks to Axel Simon) a bug in the C interface function
int ppl_Polyhedron_map_dimensions(ppl_Polyhedron_t ph, ppl_dimension_type maps[], size_t n)wherebyphwas assigned a wrong result. The bug has already been corrected in the CVS head version. A patch for PPL 0.5 is also available.
Known Bugs in PPL 0.4.2
- October 24, 2002
-
Found a bug in function
LinExpression& operator-=(LinExpression&, const LinExpression&)whereby a wrong result was produced under some circumstances. The bug has already been corrected in the CVS head version. A patch for PPL 0.4.2 is also available. - December 5, 2002
-
Found a bug in method
Polyhedron::minimized_constraints()that, under some circumstances, could cause a wrong result or a program crash. The bug has already been corrected in the CVS head version.
Known Bugs in PPL 0.4.1
- October 2, 2002
-
Found a bug in methods
const ConSys& Polyhedron::minimized_constraints() constandconst GenSys& Polyhedron::minimized_generators() constwhereby a library invariant was violated when*thiswas the zero-dimension space universe NNC polyhedron. The bug has already been corrected in the CVS head version. - September 27, 2002
-
Found a bug in method
Polyhedron::affine_image(const Variable& v, const LinExpression& expr, const Integer& d)whereby a wrong result was obtained when `d' was a negative Integer. The same bug was also affecting methodPolyhedron::affine_preimage(). The bug has already been corrected in the CVS head version. - September 23, 2002
-
Found a bug in a private method used to implement the public method
Poly_Gen_Relation Polyhedron::relation_with(const Generator& g) constwhereby a wrong result was obtained when `g' was a line. The bug has already been corrected in the CVS head version. - September 10, 2002
-
Found a bug in method
bool Polyhedron::operator<=(const Polyhedron&) constwhereby the lines of the polyhedron were handled improperly. The bug has already been corrected in the CVS head version. - August 12, 2002
-
Found a bug in method
Polyhedron::add_generator(const Generator&)whereby we were not adding the corresponding closure point when adding a point to an empty NNC polyhedron. The bug has already been corrected in the CVS head version. - August 12, 2002
-
Found a bug in method
GenSys::insert(const Generator&)whereby the insertion of a generator into an empty generator system might be mishandled. The bug has already been corrected in the CVS head version.
Known Bugs in PPL 0.4
- July 10, 2002
-
Found a bug in method
Polyhedron::poly_difference_assign(const Polyhedron& y)whereby a wrong result may be obtained when the constraint system defining polyhedronycontains some equality constraints. The bug has been fixed in PPL 0.4.1. - July 10, 2002
-
Found a bug in method
Polyhedron& Polyhedron::operator=(const Polyhedron& y)whereby one of the implementation invariants is not enforced after the assignment of an empty polyhedron to a Polyhedron object. This bug should not affect common computations: it is only visible when the library has been built with the configuration option--enable-assertions, which causes the automatic invocation of the methodbool Polyhedron::OK(bool check_not_empty = false) const(or, by explicitly invoking this invariant checking method in the appropriate context). The bug has been fixed in PPL 0.4.1.
