From 13182533251c2f95510e14b9a2c7d1069a898e0592d2c037e049a822ed39cc34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Tue, 19 Sep 2017 15:50:06 +0000 Subject: [PATCH] Accepting request 526296 from devel:libraries:c_c++ as discussed a priori with rguenther, transfer the package to /science with new maintainer OBS-URL: https://build.opensuse.org/request/show/526296 OBS-URL: https://build.opensuse.org/package/show/science/ppl?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + GLS-0.12-1.1 | 1220 +++++++++++++++++++++++++++++++++++++++++ baselibs.conf | 6 + ppl-1.2.tar.xz | 3 + ppl-1.2.tar.xz.sign | Bin 0 -> 287 bytes ppl-testsuite.changes | 20 + ppl-testsuite.spec | 205 +++++++ ppl.changes | 178 ++++++ ppl.keyring | 117 ++++ ppl.spec | 205 +++++++ pre_checkin.sh | 3 + 12 files changed, 1981 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 GLS-0.12-1.1 create mode 100644 baselibs.conf create mode 100644 ppl-1.2.tar.xz create mode 100644 ppl-1.2.tar.xz.sign create mode 100644 ppl-testsuite.changes create mode 100644 ppl-testsuite.spec create mode 100644 ppl.changes create mode 100644 ppl.keyring create mode 100644 ppl.spec create mode 100644 pre_checkin.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/GLS-0.12-1.1 b/GLS-0.12-1.1 new file mode 100644 index 0000000..17c0476 --- /dev/null +++ b/GLS-0.12-1.1 @@ -0,0 +1,1220 @@ +eefc370 Update version. +703378a Mark ChangeLog. +dacf219 Updated. +bbcad29 Updated. +637c3cf Worked around a Doxygen bug. +8391990 Updated. +f993d2f Updated. +346cfc0 Label updated. +81b01e9 BenerecettiFM13 has been published. +24bf4c8 Updated. +31307ff Test renamed. +1b2d7f5 Improved. +c0c660f Version number bumped. +c4307aa Fixed a bug. +36781bc A couple of corrections. +02983e9 Punctuation. +79acc26 Corrected. +a841400 Interfaced Polyhedron::positive_time_elapse_assign(). Various other improvements. +ed99c6f Missing comment added. +07039e7 Commented-out code removed. +696e60b Version number bumped. +05b0312 Merge branch 'polyops'. +7e6ceed Version number bumped. +6d1cac4 Path fixed. +8a1ca27 Give up on -Werror: it increasingly causes problems. (Thanks to Stephen Montgomery-Smith.) +52f8c24 Directory fixed. +6d75298 Version number bumped. +5319687 Mention recently fixed Java interface bug. +fa7a5ed Initialize custom_compare_ext field in structure custom_operations. +8c73089 Do not clean inexistent dat file. Be consistent in naming dat files in Grid's ascii_dump/load tests. +161ea78 Convert C++ Variable id's to jlong before passing them to Java methods. +eebc8c9 Adapted to recent versions of GNU Prolog so as to work on 64-bit machines. +5f8b496 Version number bumped. +ebcf2aa Use the serial test harness in these directories. +ddd1c4f Automake `subdir-objects' option is not for us. +fc81a9b Updated. +eabbef2 Put under Git control. +7ab8b27 Use the `subdir-objects' Automake option. +38ef7ac Fixed typo in the Java interface for method `frequency' and added testcase. Bug reported by Gianluca Amato. +37c8c97 The documentation details of the Polyhedron::conversion() static method are not meant for the user manual. +eb2c84b Version number bumped. +fc53336 Path fixed. +89386ce Give up on -Werror: it increasingly causes problems. (Thanks to Stephen Montgomery-Smith.) +8fe8ea8 Directory fixed. +69ba9e3 Version number bumped. +7251d8f Mention recently fixed Java interface bug. +df36ca0 Initialize custom_compare_ext field in structure custom_operations. +0cc1a72 Do not clean inexistent dat file. Be consistent in naming dat files in Grid's ascii_dump/load tests. +30478fb Convert C++ Variable id's to jlong before passing them to Java methods. +389c982 Adapted to recent versions of GNU Prolog so as to work on 64-bit machines. +f1487c8 Version number bumped. +b50626a Use the serial test harness in these directories. +bd44c92 Automake `subdir-objects' option is not for us. +0b2e3fd Updated. +772c80b Put under Git control. +b6c2866 Use the `subdir-objects' Automake option. +34b0df5 Fixed typo in the Java interface for method `frequency' and added testcase. Bug reported by Gianluca Amato. +5090488 The documentation details of the Polyhedron::conversion() static method are not meant for the user manual. +4bf7d3f Merge branch 'master' into polyops +b062855 Switch to the new GLPK API routines. Old API routines where completely removed in GLPK 4.49. +5b86ec7 Version number bumped. +8162935 Converted to free MPS format. +ecec8a8 Added test cases for the positive time elapse operator. Modified the user manual and the credits in order to acknowledge the new function and its authors, respectively. +46edbec Apparently, some versions of Doxygen require this line. (Thanks to Matthias Klose.) +90e0684 Trailing white space removed. +5c7a1d8 Updated. +f6bb7f2 Version number bumped. +b66224f Fixed capitalization. +9fd4b05 Added a testcase showing an issue in method MIP_Problem::OK(). The method checks for too strong (i.e., invlaid) invariants in the case of a MIP_Problem subject to space dimnesion additions. Modified method OK() to check those invariants on the "internal" space dimension, rather the external one. While at it, modified private method MIP_Problem::process_pending_constraints() to avoid returning a bool value (which is never checked). +eaac930e Fixed constructor from a different partially reduced product element. +87f0954 Fix indentation. +464f7b6 Activate a couple of tests that were ignored. +ad11ba0 Complete application of systematic file header renaming. +3822e9e Added missing line. +09a5a44 Obsolete link updated. +3e14a54 Merge branch 'master' into polyops +fba4b31 Comments fixed. (Thanks to Marco Faella.) +6790e32 Merge branch 'polyops' of ssh://git.cs.unipr.it/ppl/ppl into polyops +a357bc4 first draft of positive_time_elapse added +479fd86 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +aee1d00 Links updated. +fd568b0 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +3d42a8f Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +9ddca3f Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +45e0f69 Missing comments added. +22b223f Version number bumped. +1356383 Typo fixed. (Thanks to Chia-Hsun Cheng and Marco Bodrato.) +1084b95 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +225f9cb Typo fixed. (Thanks to Chia-Hsun Cheng and Marco Bodrato.) +efd4b12 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +377a173 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +c84e435 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. +464eca0 Extended copyright years. +decf66d Version number bumped. +9f843ae GMP version 5.1.0 (and, presumably, later versions) defines std::numeric_limits. +e1bfeb7 Updated. +ec6f51a Detect bogus versions of std::floor(long double). +de75769 Do recognize also llvm-gcc and llvm-g++. Floating-point-based abstractions are disabled when clang++ or llvm-g++ are detected. +3a66052 Removed wrong observation on time-elapse for closed polyhedra. (Thanks to Marco Faella for pointing this out.) +0ec237e Updated. +70de9a0 EList is not Watchdog specific. Avoided needless naming incongruences. +5572ab3 Fixed several Doxygen warnings. +f243827 Version number bumped. +6d75839 Updated news. +ec402f2 Added a Java testcase for method drop_some_non_integer_points(). +cd98130 Fixed a precision problem in method Polyhedron::drop_some_non_integer_points(). +a9c8f53 Added a new test showing a precision problem in one of the methods Polyhedron::drop_some_non_integer_points(); +0f82172 Fixed Java interface issues for method drop_some_non_integer_points(), reported by Zell (Zhoulai). +a1141d9 Added test invocations that were left out by mistake. +70be8fa Indentation fixed. +685ee64 Avoided user defined and implementation define behaviors of left and right shift. +55575dc Avoided some "magic constants". Detected by ECLAIR service nomagicc. +004c134 Fixed float_ieee754_half::POS_INF and float_ieee754_half::NEG_INF. They were swapped. +490e191 Revert "Two comments turned into assertions." +364dfbe Avoided a couple of "magic constants". Detected by ECLAIR service nomagicc. +88fdc38 Comments should never be used for "commenting out" code. Detected by ECLAIR service cmntdout. +56f7bba Unusual and difficult-to-maintain comment removed. +e4ced22 Two comments turned into assertions. +82085ae Do not declare more than one variable per declaration. Detected by ECLAIR service declgrup_srceline. +d757935 Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. +eb5a736 Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. +b23873f Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. +15a0946 Guarantee that header file names are unique as per C++11's 16.2#5. Detected by ECLAIR service hedrname. +fd2a314 Fixed the code layout for several if-then-elses. +765172c Fixed comments that were meant to be Doxygen comments. Detected by ECLAIR service cmntdecl_srceline. +15181d4 Comment fixed. +ccf34d6 Advertise the portability improvements. +416ab74 Avoid a non-portable GNU Make idiom (using `$<' in a non-suffix rule context). +f624713 Modified the Expression_Adapter infrastructure. Prefer the creation of transient, lightweight adapters to the usage of wild reference casts. While at it, improved documentation and systematically renamed `Expression' inner typedefs as `expr_type'. +dd88081 Do not use TABs for code layout. Detected by ECLAIR service tabindnt. +ec76e73 Avoided som implicit integral conversion that changed the signedness of the underlying type. Detected by ECLAIR service utypflag. +e21546a Unwanted recursion removed. Detected by ECLAIR service funrecsn. +55227bf Prefer explicit cast to implicit narrowing conversion. Detected by ECLAIR service utypflag. +0873d96 Added helper method insert_precise_aux to avoid recursive call. Detected by ECLAIR service funrecsn. +076f771 Added several missing tags in Doxygen comments. +3307c8d Unwanted recursion removed. Detected by ECLAIR service funrecsn. +2a9d181 Fixed several minor documentation issues. +f6fd3a3 Use PPL_U when macro parameters are used as template type arguments. +5d14a67 Avoid outer-scope name hiding. Detected by ECLAIR service declhidn. +2d2a72e Avoid outer-scope name hiding. Detected by ECLAIR service declhidn. +359a800 Indentation fixed. Detected by ECLAIR service indntion. +38e903c Avoid implicit floating-integral conversions. Detected by ECLAIR service utypflag. +4cc7bec Do not let constant unsigned integer expressions wrap-around. Detected by ECLAIR service cnstwrap. +079da25 Use a standard comment header block. Detected by ECLAIR service cmntfile. +88e9d49 Literals fixed. +d9ca22e Comment improved. +c7decce Do not use comments to "comment out" code. Detected by ECLAIR service cmntdout. +60feec9 Use a standard comment header block. Detected by ECLAIR service cmntfile. +0b783b0 Code should not be on the same line as a null statement. Detected by ECLAIR service nullstmt. +93c41b7 Do not use C-style casts. Detected by ECLAIR service castexpr. +2b67686 Detected by ECLAIR service inclmixd. +19bb7a9 Fixed a couple of name hiding issues in Expression_Hide_Inhomo adapter. This commit is meanto to be part of 9e4c9c57ae8ffca73bb9ee6c75a43d6ed6cd4096 +9e4c9c5 Changed the way of accessing the underlying expression in classes Constraint, Generator, Congruence and Grid_Generator. +72e6f15 Version number bumped. +88cf8d3 Added a few recent changes regarding the Java language interface. +dda4797 A couple of changes to the Java interface: - Variable's id are of long type (like space dimension arguments); - added NOT_EQUAL value to enumeration Relation_Symbol. +da8fa48 Updated. +a292feb Added test class Custom_Variable_Stringifier and corresponding example for testing customization of Variable output in the Java interface. +af3298e Added native methods toString() and setStringifier() to class Variable. Implemented variable output function using the customizable stringifier. +7cf8a12 Added Variable_Stringifier interface. +1773d43 The default output function for Variable's objects made public. There is no actual reason to have it private: being public, we simplify the life of a user willing to set it back to default. +3a754d5 Use ArrayList instead of Vector for (constraints, ...) systems in Java. Added a paragraph to the introduction of the user manual to stress that the PPL *_System classes extend ArrayList. While at it, removed many useless import directives. Also fixed a couple of indentation issues. +6480261 Avoid a non-portable GNU Make idiom (using $< in a non-suffix rule context). +8a29319 Changed test04 to print more info when noisy. +3349eba Use std::floor() and std::frexp() instead of floorl() and frexpl(), respectively. +70012d3 Typo fixed. +2b53a49 Typo fixed. +88b390a Spurious blank line removed. +c8e7c38 Added AmatoPS12. +ff65402 Updated. +85218ea Work around a Doxygen bug. Stick to ASCII. +8a7f6b2 More PPL citations. +b16a683 Stick to ASCII. +e67bf30 Added a section on README.configure describing dense/sparse row choices. +3d84573 More PPL citations. +d3eee0d New PPL citations. +6d8e6c8 Redundant script removed. +88bea81 Upgraded doxygen configuration files to version 1.8.1.1. +3270894 Avoid useless namespace closing and reopening. +bf81124 Improved section announcing sparse/dense row representation adoption. +671176a Updated. +b953bd3 Updated. +e3e1b20 Updated. +dbcdb67 Updated. +6ead05b Updated. +6fd9b5f Notes fixed. +f3a3f61 BagnaraMPZ12IC has just been published. +ac5b71f Updated. +8875a80 Updated. +ff9eb6e Unconditionally distribute the man page. +e7616ab Fixed fpu rounding set/restore. +781172d Use macro PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS to exclude several classes/functions from user documentation. While at it, also wrap several long lines. +3033ad3 Version bumped. +9c2f92d Indentation fixed. +1fdc42b Cater for systems where Watchdog objects are not supported. +1ea5be4 Removed a couple of typedefs. These have become useless (and confusing) after the merge of sparse_matrices. +98e065d Fixed another couple of Doxygen warnings. +29702bd Fixed several Doxygen warnings. +94006e2 Typo in documentation fixed. +f7672cf Long source lines avoided. +d7d5124 Test restored. +25f38f8 Restore the pre-PPL rounding mode before using libm functions. +38a6756 Documentation of restore_pre_PPL_rounding() extended. +224d39b Updated. +b7d8c73 Message improved. +2cd23c6 Fixed a couple of Doxygen references. +ea7568f Mentioned a bug corrected. +57fc492 Fixed copy-and-paste mistake. (Thanks to Christian Luidolt.) +e27c255 Fixed a bug affecting method contains() of weakly-relational shapes. +5e45d91 Added tests showing a bug in method contains() of weakly-relational shapes. +794459a Links fixed. +597ea89 Mention a recently fixed bug in the PIP solver. +300c3a4 Properly match #endif's directives using comments. +2bfa68a Inclusions reordered to match the PPL coding standard. +339b75d Added missing inclusion of . +5453b06 Recompute the sign of the special_equality_row after modyfying it. This fixes the bug shown by test04() in tests/PIP_Problem/pipproblem3.cc. +62166e5 Added a new test showing a bug in PIP_Problem. The test was reduced from a slightly bigger one provided by Fred Mesnard. +b1156e9 Make sure template specializations are declared. +3500e3b Avoid implicit conversions changing integer signedness. Detected by ECLAIR service utypflag. +6c49cfb Fixed indentation. Detected by ECLAIR service indntion. +af42e4f Avoid C-style casts. Detected by ECLAIR service castexpr. +b36a417 Prefer PPL_UNREACHABLE to PPL_ASSERT(false). +f9e934b Avoid redundant explicit casts. Detected by ECLAIR service castexpr. +afcc028 Avoid unsigned integer wrap-around in constant expressions. Detected by ECLAIR service cnstwrap. +42943b3 Prefer parentheses to excessive reliance on C++ operator precedence rules. Detected by ECLAIR service exprprns. +10a80c3 Reduced scope of local variable. Detected by ECLAIR service minscope. +329c4ac Fixed comment about case-block termination. Detected by ECLAIR service swchsynt. +294b398 Fixed file comment block. Detected by ECLAIR service cmntfile. +2bc7eac Avoid use C++ library for exact conversion from floating point numbers to string: the library is free to ignore requested precision. +2a45cd9 Updated copyright years. +da2c524 Corrected expected results for (overflowing) tests on bounded coefficients. +126c34b Changed sign of overflow in 16-bits Prolog test. +e2d19cc test01() no longer overflows with 8-bits and assertions on C polyhedra. +0adb0e2 test09() no longer overflows with 8-bit coefficients and assertions on. +a57c6b6 Fixed typo. +1fd3370 Protect in_assert flag from exceptions. +0cb66f9 Another test where we get an overflow with changed sign. +70e0472 Sign of overflow has changed. +c0f985b test14() overflows with 16 bit integers and assertions turned off. +6e0e4f3 test16() overflows on 16 bits even with assertions turned off. +b8385e5 Test sampleh7.ine no longer causes an overflow. +eb9d162 Allow for Prolog exception errors to have message functor ppl_length_error. +d0e0499 Version number bumped. +dbf14ac Weaken assertion in mixed Sparse-Dense linear_combine(). (Note: they can be called in Constraint_System::affine_preimage() with a second argument row with a smaller size than the first one; see e.g. test02() in tests/Concrete_Expression/polyhedron1.cc). a call in Constraint_System::affine_preimage()). +beeeb4d Wrap a few long lines. +01eee00 Merge branch 'master' into sparse_matrices +c098c05 Fixed a few copy&paste errors in documentation. +46f8f37 Merge branch 'master' into sparse_matrices +440744b Use macro PPL_USED. +02b57d1 Merge branch 'master' into sparse_matrices +c26fbfa Prefer set_space_dimension(d) to 0*Variable(d-1) trick. +669dea9 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. +a2831e3 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. +a00d503 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. +763a8e6 Added static data member recording default representation choice for the constraint/generator systems stored in a Polyhedron object. Current default values are DENSE. Use these values when constructing the con_sys and gen_sys data members. +c892e0f Avoid kludge for setting space dimension of congruence system. +c73f2c9 Improved methods (minimized_) constrints() and congruences(). +4d43258 By default, use a SPARSE representation for all syntactic representations. +daa305b Restored (after adapting it) commented out code. +faaf9b9 Merge branch 'master' into sparse_matrices +c1bbb65 Prefer pre-increment to post-increment. In a few places, improve readability by incrementing on a separate instruction. +4c0a1c6 Weaken assertion in Linear_System::shift_space_dimensions(). The variable argument is not required to be a space dimension of the system (it can be off-by-one). Removed a couple of useless inclusions. +e2c4169 Improved documentation for {Dense,Sparse}_Row::add_zeroes_and_shift(). Prefer using `coeff_allocator' rather than operator new. +adf7cee Do not call is_sorted() in method remove_row_no_check(). +d8ff8bc Added test showing an assertion crashing in Linear_System::remove_row_no_ok(). The tests mirrors in C++ a crash originally obtained with the OCaml interface. +8be2dc6 Merge branch 'master' into sparse_matrices +95219a9 Fixed a performance regression caused by a bug in the computation of the number of subsumed rows. +8f6d05d Restored old code trying to keep the system sortedness flag on. Factored out of loop some invariant space dimension computation. +3f4b4ad By default, use the default_representation in constructors. +a62e7d2 Restored some checks in OK() methods for constraint/generator systems. +45c9de9 Fixed bug spotted in test12() in tests/BD_Shape/boundedaffinepreimage1.cc. +b4b3f73 Added test showing a bug in BD_Shape::bounded_affine_preimage(). NOTE: the bug only affects the sparse_matrices branch and was synthesized from a corresponding Java interface test. +1ed36cb Fixed a bug in generalized_affine_image. +21b5672 Fixed a couple of comments and/or code layout issues. +96e0e97 Removed useless return of a void-typed expression. +79ab9a8 Unused variable declaration removed. +3c4a948 Merge branch 'master' into sparse_matrices +c966621 Restored public accessibility of several OK() methods. +ae6854c Added missing name qualification. +e5107ef Avoid warnings about unused variables. +93e499e Added new source file Linear_Expression_Impl.cc. Move template specializations that are not inline into new source file. Move other ones into Linear_Expression_Impl.inlines.hh. Prefer virtual method print() to non-standard virtual operator<< variant. +013b9e8 Avoid a couple of warnings about unused variables. +f6b04c0 Merge branch 'master' into sparse_matrices +8ce105e Reordered inclusions so that *.types.hh are included before *.defs.hh. +126ad84 Added missing inclusion. +77b9607 Files .inlines.hh should not include .defs.hh. +cbe0c72 Be more systematic when including Scalar_Products header files. +119aeb2 Use computed reference (and avoid unused variable warning). +6ee60dd Use helper function used() to avoid unused variable warnings. +611c99c Do not use typename keyword for non-dependent type names. +0eb6677 Sparse_Row: fix a bug in the constructor from a Dense_Row with a specified size. +37eeb42 Merge branch 'master' into sparse_matrices +589bf4d Grid_Generator_System: make the insert() method that recycles the input consistent with the one that doesn't. +8f42137 Constraint_System:optimize the constructor from a Congruence_System. +ce0f55f Constraint_System: make the insert() methods that recycle input consistent with those that don't. +e90141b Linear_System: remove the add_*row*() methods, and add a insert_pending_no_ok() instead. +28b0a0d Constraint_System, Generator_System, Grid_Generator_System: make some methods private. +a203238 termination: remove a useless helper function and move assign_all_inequalities_approximation() into Termination_Helpers. +1563b94 Congruence_System: make some methods private. +089d088 Linear_System: optimize the merge_rows_assign() method. +7821f9f Constraint, Generator, Grid_Generator: now constructors that take a space dimension actually construct an object with that space dimension (even in the NNC topology). +08f0ba4 Constraint, Congruence, Generator, Grid_Generator: remove the constructor that takes a space dimension. +1bca85a Generator: don't be friend of Grid_Generator. +6f2b99e Congruence: avoid including Constraint.defs.hh in Congruence.inlines.hh. +16557da Linear_System: simplify some methods. +d607407 Linear_System: fix the set_representation() method. +479908f Generator: simplify the OK() method. +a404707 Congruence: make is_equal_at_dimension() private. +f79604e Congruence: remove some related functions/operators. +c10e6b8 Grid: avoid using operator-=() and sub_mul_assign() on Congruences. +b89b87c Congruence: simplify one of the create() methods. +b51813e Constraint: avoid resizing Linear_Expressions when possible. +1535ef3 Constraint: improve readability and simplify the implementation. +7159b96 Use the copy-and-swap idiom in the assignment operator, in various classes. +070a43d Constraint_System, Generator_System: declare the swap() function in the header file. +9c6423f Implement swapping of Variables. +8a8a48c BD_Shape: avoid iterating through coefficients known to be 0, in generalized_affine_image(). +3826ae7 BD_Shape: clarify the contract of extract_bounded_difference(). +d791ea0 Constraint: remove the constructor from Congruence with a specified size. +7d280f1 Constraint, Generator, Grid_Generator: make all Topology-related constructors and methods private. +dd24906 Generator: make Kind, the constructors that take a Kind, and the [set_]is_line_or_equality() and [set_]is_ray_or_point_or_inequality() methods private. +9a785c6 Constraint: reorder the method declarations. +31e40bf Constraint: make the [set_]is_line_or_equality() and [set_]is_ray_or_point_or_inequality() methods private. +5cdc156 Constraint: make Kind and the constructors that take a Kind private. +fbc5f33 tests/Polyhedron/linearsystem1: avoid using a low-level constructor of Constraint. +a74dd27 Congruence: remove the set_inhomogeneous_term() method. +7cc646c Congruence: remove the shift_coefficients() method, use shift_space_dimensions() instead. +42bb58a Congruence: remove the add_space_dimensions() and add_space_dimensions() methods. +dc94560 Congruence: now the is_equal_at_dimension() method takes a Variable instead of a dimension_type. +b126355 Congruence: remove the modulus() method that returns a non-const reference. +b320062 Linear_Expression: make the negate() method private. +e428074 *_System: remove the release_row(s)() and take_ownership_of_rows() methods. Adapt client code. +e3f2f5b *_System (except Congruence_System): add a Representation field and a Representation parameter to all constructors. Make sure that all the rows have the same representation. +09fb1cd Implement the representation() and set_representation() methods, in various classes. +96e5d59 Constraint_System, Generator_System, Grid_Generator_System: use Linear_System's ascii_dump() and ascii_load() methods. +adf670d Linear_System: fix the ascii_dump() method by adding a missing space. +4069226 Congruece_System: make some methods public/private. +65beb73 Congruence_System, Linear_System: remove the internal_row_type typedef. +22c74b3 *_System, Matrix: remove the resize_no_copy() method. +3c4de27 Congruence_System: make the API higher-level: use the space dimension instead of the number of columns. +c9d40c9 Congruence_System: add a Representation field and a Representation parameter to all constructors. Make sure that all the rows have the same representation. +cad52ef Add ascii_load()/ascii_dump() functions for the Representation enum. +8460d58 Grid: fix a bug in relation_with(). +c1a9268 tests/Grid: use the Recycle_Input tag in the tests, fixing compilation errors. +edb5c61 test/Polyhedron/sparserow1: rename m_swap() into coefficient_swap(), fixing compilation errors. +c748c6e Merge branch 'master' into sparse_matrices +4c0dab7 Constraint, Generator, Grid_Generator, Congruence: add a default_representation constant and a Representation argument to constructors and factory methods. +a434f2b Grid_Generator: remove an obsolete typedef for row_type. +4280ced Use Constraint::Expression, Generator::Expression, Grid_Generator::Expression, Congruence::Expression instead of const Linear_Expression& when relevant. +46c0533 Congruence: remove the non-const expression() method and add an Expression typedef, for consistency with Constraint, Generator and Grid_Generator and to allow different implementations in the future. +adaf750 *_System: use the Recycle_Input tag instead of adding 'recycled' or 'recycling' to the method's name. +a0f059a Grid_Generator: make some methods private. +ea378d9 Generator: make some methods private. +e886a32 Constraint: make some methods private. +fed5b61 MIP_Problem, PIP_Problem: don't check Constraint::OK(), the Constraint class is responsible for making sure that all constraints are OK(). +e5f1a49 Octagonal_Shape: remove an unused variable. +f5aa780 Box: remove an unused variable. +323a335 Matrix: fix a compilation error caused by the renaming of *_Row::swap() to swap_coefficients(). +f5d91bc Merge branch 'master' into sparse_matrices_test +3915e7a Merge commit '0ae35bbbc1e8f4d1a38ced7fe7190be9a29e4fb6' into sparse_matrices_test +511aa56 Merge commit 'dbedf8514da0b58c7c5ff8c37356a9ffc8d1f835' into sparse_matrices_test +81ac726 Merge commit 'a9a6632bfcc7a546a2a7edcb636e47f60e4839b4' into sparse_matrices_test +dc35fb6 Merge commit '5d31265f3e17b7e1d0d03d0009a1906b2d03165c' into sparse_matrices_test +129623e Merge commit '39c1356315950be2201142fba21cf0f861e234c1' into sparse_matrices_test +59ea760 Grid_Generator: remove an obsolete swap() method that takes two Variables. +3d49034 Dense_Row, Sparse_Row: rename the swap() methods that take two dimension_type or two iterators into swap_coefficients(), to avoid name clashes with swap(). +45ab694 Merge commit '0442fb1660eb2a57e4412b44505a3a28a8d826f0' into sparse_matrices_test +a037e26 Merge commit '97f3e98708cbb53eabf0fb0c30f38e50eb549369' into sparse_matrices_test +5a7778b Merge commit '367a91ec09da66585614d6829dbb089066d57c77' into sparse_matrices_test +d1668f4 Merge commit 'a6e777561ba56e830bd44128adc8038609c8cb23' into sparse_matrices_test +0798bb9 Merge commit 'fa86778c6ae396672711e10f2c195df3cb13311f' into sparse_matrices_test +f58219b Merge commit '703cc3ccfae900375897b441b2abfe0ad6e0f210' into sparse_matrices_test +40b84cb Merge commit '09144610d98413a390afed2c0f5b189e7a9e5f30' into sparse_matrices_test +aa3422e Merge commit '95285ecc6049e25569f31f07d64d4f53a1be732e' into sparse_matrices_test +3433371 Merge commit 'a87bb62c2afee1571db0d44ac02b756c9e30cb3c' into sparse_matrices_test +a66ee10 Merge commit '50dc24772dc142eed06b6109672b3804e15a0804' into sparse_matrices_test +1d62ef7 Grid: add an assertion. +b81949a Constraint, Generator, Grid_Generator: make the expr field private again, and add needed friend declarations. +0ebb4b0 Generator: simplify the space_dimension() method. +9002b30 Constraint: use the expression() method instead of the expr field, in operator<<(). +c3e5d8c Congruence: use the expression() method instead of the expr field, in the constructors from a Constraint. +8db6e42 Grid: use the expression() method instead of the expr field, in constrains(). +440c1f0 Grid: use the expression() method instead of the expr field, in relation_with(). +6d29ffb Grid: use the expression() method instead of the expr field, in conversion(). +18c4519 Grid: use the expression() method instead of the expr field, in expand_space_dimension(). +3730a68 Grid: use the expression() method instead of the expr field, in map_space_dimensions(). +2eabf35 Polyhedron: use the expression() method instead of the expr field, in time_elapse_assign(). +98485ed Polyhedron: use the expression() method instead of the expr field, in constrains(). +d5b7022 Polyhedron: use the expression() method instead of the expr field, in contains_integer_point(). +7b7c94d Polyhedron: use the expression() method instead of the expr field, in is_universe(). +2273ff9 Polyhedron: use the expression() method instead of the expr field, in drop_some_non_integer_points(). +2d8bfbc Polyhedron: use the expression() method instead of the expr field, in strongly_minimize_constraints(). +8a6e4ff Polyhedron: use the expression() method instead of the expr field, in map_space_dimensions(). +225b1d5 Octagonal_Shape_Helper: use the expression() method instead of the expr field. +25f5cd3 MIP_Problem: use the expression() method instead of the expr field, in process_pending_constraints(). +dd991b8 MIP_Problem: use the expression() method instead of the expr field, in parse_constraints(). +7af715e PIP_Solution_Node: use the expression() method instead of the expr field, in update_tableau(). +05e0497 PIP_Problem: use the expression() method instead of the expr field, in solve(). +d7b29da termination: use the expression() method instead of the expr field, in one_affine_ranking_function_MS(). +ce06871 termination: use the expression() method instead of the expr field, in fill_constraint_systems_PR_original(). +1b4b509 termination: use the expression() method instead of the expr field, in fill_constraint_systems_PR(). +9d9b71a termination: use the expression() method instead of the expr field, in fill_constraint_systems_MS(). +09dbf85 wrap_assign: use the expression() method instead of the expr field, in wrap_assign_ind(). +763b2ca Box: use the expression() method instead of the expr field, in propagate_constraint_no_check(). +c486d85 Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Generator. +cf7010e Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Constraint. +b70721e Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Congruence. +72d1550 Box: use the expression() method instead of the expr field, in the constructor from a Generator_System. +87d553e Box: use the expression() method instead of the expr field, in extract_interval_constraint(). +17387ea BHRZ03_Certificate: use the expression() method instead of the expr field, in compare(). +9388de4 BHRZ03_Certificate: use the expression() method instead of the expr field, in the constructor from a Polyhedron. +4dde8ba BD_Shape: use the expression() method instead of the expr field, in the constructor from a Generator_System. +5f23084 BD_Shape: use the expression() method instead of the expr field, in extract_bounded_difference(). +5963778 Affine_Space: use the expression() method instead of the expr field, in the constructor from a Generator_System. +5384688 Linear_Expression_Impl: remove the constructors from Constraint, Generator, Grid_Generator and Congruence. +3d7bb5b Linear_Expression: simplify the constructors from Constraint, Generator, Grid_Generator and Congruence. +898c6c0 Linear_Expression: add constructors from wrapped expressions. +2da44bf Grid_Generator: add two fields that wrap 'expr', hiding implementation details, and add an expression() method that returns the fully-wrapped expression. +73db2b0 Generator: add two fields that wrap 'expr', hiding implementation details, and add an expression() method that returns the fully-wrapped expression. +493eb02 Constraint: add a field that wraps 'expr', hiding implementation details, and add an expression() method that returns it. +3e416cc Constraint, Generator, Grid_Generator: remove the expression() method, and (temporarily) let client code use the expr field directly. +436023e tests/linearsystem1: avoid using the Constraint::expression() method. +16ca5cd Add the Expression_Hide_Last and Expression_Hide_Inhomo classes. +dbf2677 Generator: make some methods public/private and rearrange declarations in the class definition. +a97a7b0 Constraint, Generator, Grid_Generator: remove the non-const expression() method. +2fdf8a2 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() a fterwards (#3). +1d6fb9d Linear_System: remove the normalize() method. +c62b805 Linear_System: call shift_space_dimensions() on the rows instead of on their expressions. +eacf685 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() afterwards (#2). +4a99ec1 Generator, Constraint: normalize if necessary, in set_space_dimension(). Also add and use some unchecked methods. +17e8f6e Linear_System: avoid constructing invalid rows and fixing them afterwards, in add_universe_rows_and_columns(). +2577070 Constraint: the constructor from a Linear_Expression that takes a Type and a Topology no longer reduces the space dimension by 1. +c9e4437 Generator: the constructor from a Linear_Expression that takes a Type and a Topology no longer reduces the space dimension by 1. +27cc6ca Generator: add a constructor that takes a Linear_Expression, a Kind and a Topology. +3498564 Constraint: add a constructor that takes a Linear_Expression, a Kind and a Topology. +aac128e Add some comments. +5fb0802 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() afterwards. +c55d120 Polyhedron: make sure that mid_g is OK() before passing it to relation_with(), in BFT00_poly_hull_assign_if_exact(). Patch by Enea Zaffanella. +4f29d90 Congruence, Generator, Grid_Generator, Constraint: add a shift_space_dimensions() method. Use these methods in Polyhedron::concatenate_assign(). +cc2b405 Add a TODO. +d5afc56 Grid_Generator: remove the negate() method. +0d53c2d Remove some TODOs/FIXMEs. +f79b0b8 Congruence: make all *normalize() methods public. +fddc7b2 Congruence: improve the documentation of set_modulus() and remove the set_is_equality() method. +689266e Modify some comments. +9fcad9c Congruence: remove the negate() method. +d891d58 Congruence, Congruence_System: the affine_preimage() methods now take a Variable instead of a dimension_type. +cefe291 Avoid using the Linear_Expression get() and set() methods that take a dimension_type, where possible. +9249e34 Linear_Expression: add a get() and a set() method that take a Variable. +a40958b Linear_Expression: move the is_unbounded_obj_function() method to the MIP_Problem class, and modify it to use the public API of Linear_Expression. +eadb38b Congruence: simplify the constructors from a Constraint. +82098a5 Congruence: add a Recycle_Input tag to the constructor that steals the contents of a Linear_Expression. +8a49d6c Remove an obsolete TODO. +b0a797a Generator: remove the constructors that take a reserved_size. +69a0edd Linear_Expression_Impl: optimize the constructor from a Linear_Expression that takes a space dimension. +bb4d1ab Linear_Expression: move the modify_according_to_evolution() method to the Polyhedron class, and modify it to use the public API of Linear_Expression. +64a6798 Congruence: the constructor from a Linear_Expression and a modulus does not reduce by 1 the space dimension anymore. +21e45ca Linear_Expression, Congruence, Constraint, Generator, Grid_Generator: now most constructors take a space dimension instead of a size. +7cc182a Linear_Expression: allow the caller to specify the desired representation, to query it and also to change it afterwards. Also add the Representation enum. +868e1f6 Remove the Row typedef, use individual typedefs inside classes that need it instead. +e7c50af Linear_Expression_Interface, Linear_Expression_Impl: remove the swap() method. It's not needed, since Linear_Expression can just swap pointers. +c310fa6 Linear_Expression: optimize add_mul_assign() and sub_mul_assign() for the n==0 case. +8b589a9 BD_Shape: optimize deduce_v_minus_u_bounds(). +32715df BD_Shape: optimize the frequency() method. +bf0231e Add/Improve some TODO comments. +ab4dccd Octagonal_Shape: improve some TODO comments. +3d25172 Box: optimize generalized_affine_preimage(). +572b296 Box: optimize affine_image() and affine_preimage(). +74fd74f Box: optimize the alternative implementation of propagate_constraint_no_check(). +456a4b7 Box: optimize propagate_constraint_no_check(). +3d51070 Box: use Linear_Expression::last_nonzero() in propagate_constraint_no_check(). +fdf01b8 Linear_Expression: add a last_nonzero() method. +f0eadf7 Box: optimize the frequency() method. +fb2fc45 Box: optimize the max_min() method. +70ed80a Box: optimize the relation_with() method that takes a Generator. +203ee29 Box: optimize the relation_with() method that takes a Constraint. +4684866 Box: optimize the relation_with() method that takes a Congruence. +623e601 Box: optimize the bounds() method. +4ba5fa3 Box: optimize the constructor from a Generator_System (#2). +4802136 Box: optimize the constructor from a Generator_System (#1). +7336920 termination: avoid pointlessly copying Generator objects. +f713ff4 termination: optimize fill_constraint_system_PR_original(). +10178e3 termination: optimize fill_constraint_system_PR() (2/2). +3704285 termination: optimize fill_constraint_system_PR() (1/2). +b3f4f0f termination: optimize fill_constraint_systems_MS(). +3366091 BD_Shape: optimize generalized_affine_image() (2/2). +bcd2bb6 BD_Shape/generalizedaffinepreimage1: allow bigger floating-point errors (#2). +967735f BD_Shape: optimize generalized_affine_image() (1/2). +119e645 BD_Shape/generalizedaffinepreimage1: allow bigger floating-point errors. +d61bdb7 BD_Shape: optimize bounded_affine_image(). +3322712 BD_Shape: optimize affine_image(). +7d74f07 BD_Shape: optimize refine() (3/3). +f2f238f BD_Shape: optimize refine() (2/3). +519f729 BD_Shape: optimize refine() (1/3). +ae5dc10 BD_Shape: optimize deduce_u_minus_v_bounds(). +0af6eae BD_Shape: two little optimization in relation_with(). +d2460cc BD_Shape: optimize the constructor from a Generator_System. +0a71b47 Octagonal_Shape: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). +3d70d7f Octagonal_Shape: optimize deduce_v_pm_u_bounds() and deduce_minus_v_pm_u_bounds(). +4ef99b7 BD_Shape: optimize the constructor from a Generator_System. +c794e02 Grid: optimize map_space_dimensions() using Linear_Expression::const_iterator. +79564d0 Grid_Generator: optimize operator<<() and move the code in a fancy_print() method. +68318ab BD_Shape: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). +84f39f4 Grid: use Linear_Expression::const_iterator to improve performance, in generalized_affine_image() and generalized_affine_preimage(). +7b10c5a Grid: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). +c6f93c8 Constraint: optimize operator<<(). +cf69a89 Linear_System: add a TODO comment. +9888d74 Polyhedron: optimize map_space_dimensions(). +9cd6bc0 Grid: add a comment about a missing break and use Linear_Expression::have_a_common_variable(), in relation_with(). +5d9e741 Grid: use the inhomogeneous_term() method instead of get(0), in simplify(). +a243a59 Generator: optimize operator<<() and move the code in a fancy_print() method so that it can access Linear_Expression's private methods. +291b5f1 Congruence: optimize operator<<(). +238e04f Congruence: use inhomogeneous_term() and set_inhomogeneous_term() instead of get(0) and set(0, c), in normalize(). +c5464d8 Polyhedron: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). +ab9474b Linear_Expression: add a have_a_common_variable() method. +666edcb Polyhedron: explicitly specify !=0 in a condition, in simplify_using_context_assign(). +84c5dca MIP_Problem: choose_branching_variable() now scans input_cs by row instead of by column, increasing cache-efficiency. +68d9f17 MIP_Problem: improve some comments. +1459f0e PIP_Solution_Node: use Linear_Expression::const_iterator in update_tableau(). +5d0568b PIP_Tree: remove two useless variables in compatibility_check_find_pivot_in_set(). +62d6c4c PIP_Tree: improve a comment. +6a537e9 PIP_Problem: add a comment. +b52aec9 MIP_Problem: use Linear_Expression::const_iterator in process_pending_constraints(). +16a9907 Linear_Expression: add a const_iterator type and begin(), end() and lower_bound() methods. +0eebd18 CO_Tree: if an exception is thrown, the tree may be in a state where structure_OK() is false, but it can still be destroyed (the stored size may be wrong in such cases). +bc3f4d7 CO_Tree: fix typo in comment. +653fa8b CO_Tree: when constructing a new element, update the index only if the construction was successful, to avoid destroying an unallocated object if the constructor throws. +f5bfabb Remove an unused variable. +201db3c Linear_Expression_Impl: add an optimized version of has_a_free_dimension_helper() for sparse rows, and slightly improve the dense version. +3e3601a Linear_Expression_Impl: add an optimized version of first_nonzero() for sparse rows, and slightly improve the dense version. +862283a Linear_Expression_Impl: add an optimized version of last_nonzero() for sparse rows, and slightly improve the dense version. +fe385b4 Linear_Expression_Impl: add an optimized version of all_zeroes_except() for sparse rows, and slightly improve the dense version. +63aa379 Linear_Expression_Impl: add an optimized version of all_zeroes() for sparse rows, and slightly improve the dense version. +acfbc0e Linear_Expression_Impl: add an optimized version of gcd() for sparse rows, and slightly improve the dense version. +79427f6 Linear_Expression_Impl: add an optimized version of num_zeroes() for sparse rows, and slightly improve the dense version. +0d382fe Linear_Expression_Impl: add an optimized version of all_zeroes() for sparse rows, and slightly improve the dense version. +ca2095e Linear_Expression_Impl: add an optimized version of all_homogeneous_terms_are_zero() for sparse rows, and slightly improve the dense version. +d30c9ef Linear_Expression_Impl: add an optimized version of is_zero() for sparse rows, and slightly improve the dense version. +ad39593 Sparse_Row: add a num_stored_elements() method. +252b2fe Linear_Expression: inline some trivial methods. +970eb4f Linear_Expression_Impl: use a stronger invariant for sparse rows. +86fcc08 Linear_Expression: remove operator[]. +4e772e0 Linear_Expression: remove the sub_mul_assign() method. +432fbd7 Congruence: remove operator[]. +7d5530a Congruence: remove the sub_mul_assign() method. +4b4d090 Grid: avoid using Linear_Expression::operator[], in conversion() (#3). +44cc8b6 Grid: avoid using Linear_Expression::operator[], in conversion() (#2). +162e1f7 Grid: avoid using Linear_Expression::operator[], in conversion(). +472ca25 Grid: simplify/optimize lower_triangular(). +0dbe5f7 Grid_Generator: simplify scale_to_divisor() using mul_assign(). +75847a3 Grid: use linear_combine() instead of sub_mul_assign(), in reduce_reduced(). +f2a54f6 Linear_Expression_Impl: simplify the add_mul_assign() and the sub_mul_assign() methods that take a Coefficient and a Linear_Expression. +b9f9d5c Linear_Expression_Impl: simplify the add_mul_assign() method that takes a Variable and a Coefficient. +d396c0d Linear_Expression_Impl: optimize exact_div_assign(). +8b9a8ce Linear_Expression_Impl: optimize add_mul_assign(). +7067e25 Linear_Expression_Impl: optimize neg_assign(). +8c12929 Linear_Expression_Impl: optimize operator/=(). +4a09f80 Linear_Expression_Impl: optimize operator*=(). +c0708c9 Linear_Expression_Impl: optimize the operator+=() and operator-=() that take a Variable. +f8563b5 Linear_Expression_Impl: simplify the operator+=() and operator-=() that take a Linear_Expression. +65fe0df Linear_Expression_Impl: avoid storing zeroes in sparse rows, in permute_space_dimensions(). +6835424 Linear_Expression_Impl: simplify the constructor from a Variable. +74c2708 Linear_Expression_Impl: simplify the constructors from Constraints and Generators. +d9faa3e Linear_Expression_Impl: optimize compare() for sparse rows. +022715f Linear_Expression_Impl: use an optimized version of remove_space_dimensions() for sparse rows. +a41c5f8 Linear_Expression_Impl: avoid storing zeroes in sparse rows, and prefer using get() instead of operator[]. +74d89cc Linear_Expression_Impl: improve the constructor from a Coefficient. +d7f7c39 Linear_Expression: add some assertions. +8e85700 Linear_Expression_Impl: improve/simplify the implementation of linear_combine(). +770df61 Linear_Expression: document that the coefficients for the linear_combine() methods must be nonzero. +3bb5d86 Dense_Row: document that the coefficients for the linear_combine() methods must be nonzero. +74d5603 Indentation fixes and a minor change. +22d8615 Add some assertions. +fcc49b9 Grid: simplify reduce_parameter_with_line(). +1bbcee6 Linear_Expression: add a mul_assign() method. +a55dcf6 Grid: call Linear_Expression::all_zeroes() in rows_are_zero(). +208477f Grid: simplify/optimize the reduce_line_with_line(), reduce_parameter_with_line() and reduce_equality_with_equality() methods. +d952412 Use the get() and set() methods of Linear_Expression instead of operator[], in various places. +bae7476 Linear_Expression: add a set() method, and modify the get() method to return a Coefficient_traits::const_reference. +240417d Sparse_Row: optimize the copy constructor with a size parameter. +62a47c9 Little optimizations in the linear_combine() functions that take a Sparse_Row and a Dense_Row. +ce5b973 Optimize various linear_combine() functions/methods. +006c7b4 termination: only call linear_combine() when needed. +128bd3a Grid: slightly change the precondition of reduce_pc_with_pc() and simplify/optimize it. +1700c2d Linear_Expression: add two linear_combine_lax() methods. +d10ede6 CO_Tree: make insert_in_empty_tree() exception-safe. +8e7ee9b CO_Tree: make copy_data_from() exception-safe. +9597652 CO_Tree: make init() exception-safe. +659a231 CO_Tree: fix a bug in insert_precise(), where the data1 reference was invalidated by growing/rebalancing the tree and then it was used. +8bd0740 Fix a bug in the linear_combine() function that takes a Sparse_Row and a Dense_Row. +58564bd Sparse_Row: fix the doxygen documentation of the swap() method that takes two iterators. +2ead812 Sparse_Row: add a fast_swap() method. +888659a CO_Tree: add a fast_shift() method. +8eaaf26 Polyhedron: optimize/simplify generalized_affine_preimage(). +c52bd6b Polyhedron: optimize/simplify generalized_affine_image(). +177da44 Polyhedron: simplify/optimize contains_integer_point() (#2). +27f7598 Polyhedron: simplify/optimize contains_integer_point() (#1). +ee2461e MIP_Problem: optimize/simplify evaluate_objective_function(). +53b3065 MIP_Problem: optimize/simplify second_phase(). +8c659e7 MIP_Problem: use is_unbounded_obj_function() in process_pending_constraints(). +f5b2033 Linear_Expression: add a is_unbounded_obj_function() method. +5d215f5 Linear_Expression_Impl: add an assertion and fix an existing one, in scalar_product_assign(). +b0a92e7 Grid: optimize/simplify generalized_affine_preimage(). +67619c2 Grid: optimize/simplify generalized_affine_image(). +40d48e7 Grid: optimize/simplify simplify_using_context_assign(). +4e50eeb Grid: optimize/simplify constrains(). +b8ee0ab Grid: optimize/simplify the relation_with() method that takes a Constraint. +8c79d76 Grid: optimize/simplify the relation_with() method that takes a Generator. +926f3b8 Grid: optimize/simplify the constructor from a Polyhedron. +2799476 Box: optimize/simplify generalized_affine_image(). +804fff6 Box: optimize/simplify generalized_affine_preimage(). +552410f Linear_Expression: add two get_row() methods. +63576c0 Box: remove an unused constant. +3d70dce Dense_Row: the linear_combine() methods now detect when coeff1==1 and save some work. +5e4a37d Add some TODOs. +d701868 Octagonal_Shape: use Linear_Expression::last_nonzero() and Linear_Expression::all_zeroes(), making some methods faster. +d9a3106 Octagonal_Shape: optimize relation_with(). +a37767c Octagonal_Shape: little optimization in max_min(). +61aaf3a Octagonal_Shape: add some TODOs. +06f4946 Congruence, Constraint, Grid_Generator: don't take a capacity argument in methods/constructors. +b7b3e9b BD_Shape: use Linear_Expression::last_nonzero() and Linear_Expression::all_zeroes() instead of duplicating the implementation. +5e2a080 BD_Shape: replace expr.coefficient(Variable(n-1)) with expr.get(n), in several places. Also add some TODOs. +e315c09 BD_Shape: fix an off-by-one error in generalized_affine_image(). +c8368dd BD_Shape: optimize and simplify the relation_with() method that takes a Constraint. +701c61e termination: move some helper functions into a Termination_Helpers class, make it friend of Linear_Expression and optimize/simplify such functions. +87f7377 Linear_System, Constraint_System, Generator_System, Grid_Generator_System: add a shift_space_dimensions() method. +aa00ea1 Octagonal_Shape: move the extract_octagonal_difference() function into a class Octagonal_Shape_Helper, and make it a friend of Linear_Expression. Also optimize this function. +fe2c930 Generator: simplify and optimize is_matching_closure_point(). +efb1c86 Linear_Expression: add two additional is_equal_to() methods that work on a range. +b78cf0b Constraint: simplify and optimize is_tautological() and is_inconsistent(). +4c680c2 Constraint: simplify and optimize the constructors from a Congruence. +48f201c Linear_Expression: add a constructor from a Congruence that takes a size parameter. +c6d652d BD_Shape_Helpers: remove a useless parameter from extract_bounded_difference(). +acd82c3 BD_Shape: move the extract_bounded_difference() function into a class BD_Shape_Helpers, and make it a friend of Linear_Expression. Also optimize this function. +86fa71a Add some TODOs. +e5a1f32 Congruence_System: simplify operator==() and make is_equal_to() call operator==() instead of duplicating code. +8a4b2b1 Congruence_System: simplify and optimize has_a_free_dimension(). +8c615f3 Linear_Expression: add a has_a_free_dimension_helper() method. +9f96fa2 Congruence_System: simplify and optimize permute_space_dimensions(). +69fa632 Move extract_interval_{constraint,congruence}() into a Box_Helpers class, and make it friend of Linear_Expression. Also optimize and simplify these two functions. +c1980bc MIP_Problem: use Linear_Expression::first_nonzero() in parse_constraints(). +baaa514 Linear_Expression: add a first_nonzero() method. +43c5c61 Scalar_Products: simplify and optimize the code by calling Linear_Expression::scalar_product_{sign,assign}(). +a6965e9 Linear_Expression: add two scalar_product_assign() and scalar_product_sign() methods. +045663c Linear_Expression_Impl: support interaction between Dense_Row-based and Sparse_Row-based linear expressions. +e4dca5c Sparse_Row: add a constructor from a Dense_Row with a specific size and capacity. +e616fa6 Sparse_Row: simplify the implementation of the operator=() method that takes a Dense_Row. +d776993 Add swap() functions that take a Sparse_Row and a Dense_Row. +bdf474d MIP_Problem: call the linear_combine() function that takes a Dense_Row and a Sparse_Row when needed. +0734355 Add operator==() and linear_combine() functions that take any combination of dense and sparse rows. +7214142 Dense_Row: add a sizing constructor from a Sparse_Row. +a496c91 Make Linear_Expression_Impl a template, preparing support for sparse Linear_Expression objects. +0ca8276 Linear_Expression: contain a Linear_Expression_Interface* instead of a Linear_Expression_Impl*. +764e11e Create an interface named Linear_Expression_Interface with the methods in Linear_Expression_Impl, and let Linear_Expression_Impl derive from Linear_Expression_Interface. +99caf76 BHRZ03_Certificate: use Linear_Expression::num_zeroes() to simplify and optimize the code. +6290884 Linear_Expression: add a num_zeroes() method. +ebf6364 Add a TODO. +eb363c8 PIP_Problem: optimize and simplify solve(). +207bd8c Linear_Expression: add an all_zeroes_except() method. +5c7ea02 Constraint_System: optimize the affine_preimage() method slightly. +00455fa Grid: optimize and simplify expand_space_dimension(). +1985f1e Grid: optimize and simplify max_min(). +2262e47 Partially_Reduced_Product: optimize and simplify shrink_to_congruence_no_check(). +65e3b89 Polyhedron: optimize and simplify expand_space_dimension(). +0273e72 Grid: optimize and simplify select_wider_generators(). +dd66dfc Linear_Expression_Impl: fix the constructor from a Grid_Generator. +4b6d2b3 Linear_Expression_Impl: optimize and simplify the constructor from a Congruence. +ef217d6 PIP_Tree_Node::Artificial_Parameter: optimize and simplify operator==(). +1fbe33f PIP_Tree: add comment. +fab96d8 wrap_assign: optimize and simplify wrap_assign_ind(). +a39e512 Linear_Expression: make the all_zeroes() method that takes a Variables_Set public. +cdbfd09 Affine_Space: optimize the constructor from a Generator_System. +93d83f4 Congruence: store the modulus in a separate Coefficient field instead of inside the linear expression. +b0f60fc Linear_Expression, Linear_Expression_Impl: add an operator/=() method that takes a Coefficient. +9ee09e8 Linear_Expression_Impl: fix add_mul_assign() and sub_mul_assign(). +d1d479c Linear_Expression: add a comment about friend declarations. +f568449 Linear_Expression: inline/uninline code. +0ac5464 Simplify some Linear_Expression-related operators' implementations and remove a useless constructor. +558f24d Linear_Expression: implement a stronger invariant in OK() and use it in the assertions. +6c1250a Linear_Expression: remove the get_row() methods. +ea86064 test/Polyhedron/linearsystem1: avoid calling Linear_Expression::get_row(). +5a56545 Remove the last 2 calls to Linear_Expression::get_row(). +64771f5 Congruence: avoid calling Linear_Expression::get_row(), and reuse code when possible. +bc1e068 Linear_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. +c8efb7b Linear_Expression: turn a comment into a doxygen comment. +21a33c2 Linear_Expression: add a last_nonzero() method and use it in Linear_System. +af2f741 Constraint, Generator, Grid_Generator, Linear_Expression: replace the linear_combine() and linear_combine_inhomogeneous() methods with a method that takes a dimension_type. +fa0d3b7 Polyhedron: move a code fragment into Linear_Expression, and optimize it for sparse rows. +a9cd236 Polyhedron: use Linear_Expression::all_zeroes(). +ed0c0a2 Linear_Expression: add an all_zeroes() method that takes a Variables_Set. +73a1749 Grid_Generator_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. +d520fe5 Constraint_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. +e72c534 Dense_Row: fix the precondition-related assertions in linear_combine(). +4066c7b Generator_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. +8b31d90 Grid_Generator: avoid calling Linear_Expression::get_row(), and reuse code when possible (#2). +5acae4b Linear_Expression: add a negate() method. +5cab35e Grid_Generator: avoid calling Linear_Expression::get_row(), and reuse code when possible (#1). +d8b8859 Constraint, Generator, Grid_Generator, Congruence: use Linear_Expression::sign_normalize(). +1f7cefe Linear_Expression: add a sign_normalize() method. +495b2c4 Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#3). +acf4bf6 Linear_Expression: add a linear_combine() method that works on a range. +c552084 Dense_Row: add a linear_combine() method that works on a range. +86fb879 Sparse_Row: add a linear_combine() method that works on a range. +01e537a Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#2). +98b686f Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#1). +369b3d3 Polyhedron: avoid calling Linear_Expression::get_row(), and reuse code when possible. +ddcdb86 Polyhedron: simplify some code and avoid using Linear_Expression::get_row(). +d041734 Polyhedron: simplify the code, reusing existing Linear_Expression methods and related functions. +9aeb94d Dense_Row: optimize operator=() so that it avoids reallocation if possible. +30bb510 PIP_Tree_Node::Artificial_Parameter: simplify the implementation of a constructor. +feffa55 Linear_Expression: improve the gcd() method. +0475200 Polyhedron: avoid some calls to Linear_Expression::get_row(). +5cc9b91 Polyhedron: avoid some calls to Linear_Expression::get_row(). +a8825e6 Linear_Expression: add a gcd() and an exact_div_assign() method. +ff23140 Polyhedron: avoid some calls to Linear_Expression::get_row(). +1c31ff6 Linear_Expression: add a all_zeroes() method. +8ba2105 Polyhedron: call Linear_Expression::shift_space_dimensions() when needed. +a67984b Grid: avoid some calls to Linear_Expression::get_row(). +367bf40 Linear_Expression: add a shift_space_dimensions() method. +ff3ae4c Grid: avoid some calls to Linear_Expression::get_row(). +bcfcab0 Congruence: contain a Linear_Expression instead of a Dense_Row. +2220649 Linear_Expression: add private operator[] methods and a get() method. +c6a7aa1 Grid: use the sub_mul_assign() function on ranges. +db4cb36 Grid: avoid calling Linear_Expression::get_row(). +7f13d93 Congruence: add a sub_mul_assign() function that works on a range of indexes. +c7f4741 Linear_Expression: add a sub_mul_assign() function that works on a range of indexes. +27e4c6d Constraint_System: avoid using Linear_Expression::get_row() in has_strict_inequalities(). +ff99bba Constraint_System: avoid using Linear_Expression::get_row() in adjust_topology_and_space_dimension(). +d73822e Generator_System: avoid calling Linear_Expression::get_row() and Generator.expression() in some methods. +5b8f471 Generator: remove the swap() method that takes two dimension_type parameters. +a9c740d Constraint, Generator: use Linear_Expression::ascii_{dump,load}() when needed. +39ce5f1 Linear_Expression: the ascii_dump() and ascii_load() methods now produce the same output, no matter if the representation is dense or sparse (note that sparse representations are still *not* supported, however). +10ba867 Constraint: use the {set_,}epsilon_coefficient() methods. +0a1efe6 Constraint: add the epsilon_coefficient() and set_epsilon_coefficient() methods. +705116c Generator: use the {set_,}epsilon_coefficient() methods. +3bdf400 Generator: add the epsilon_coefficient() and set_epsilon_coefficient() methods. +abefaa1 Generator: avoid using Linear_Expression::get_row() in several methods (#2). +71247a6 Generator: avoid using Linear_Expression::get_row() in several methods. +1dc8351 Generator: use Linear_Expression::permute_space_dimensions() in permute_space_dimensions(). +37d313b Generator: use Linear_Expression::remove_space_dimensions() in remove_space_dimensions(). +230e5ea Generator: avoid calling Linear_Expression::get_row() in point(), closure_point(), ray() and line(). +50a03f9 The compare() function for Generator objects now uses the compare() for Linear_Expression, and it is a friend of the Generator class. +9f1709c Constraint: avoid calling Linear_Expression::get_row() in sign_normalize(). +311eaed The compare() function for Constrant objects now uses the compare() for Linear_Expression, and it is a friend of the Constraint class. +cde9d33 Add a compare() function for Linear_Expression objects. +ce28578 Constraint, Generator, Grid_Generator: remove the linear_combine() method that takes a dimension_type. +72492f5 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#3). +e37fd99 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#2). +7577a99 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#1). +46d836e Polyhedron: use Generator::linear_combine_inhomogeneous() instead of the linear_combine() method that takes a dimension_type, in BHRZ03_evolving_points(). +a9c868e Grid_Generator: add a linear_combine() method a a linear_combine_inhomogeneous() method. +5c2af1e Generator: add a linear_combine() method a a linear_combine_inhomogeneous() method. +7ef60b4 Constraint: add a linear_combine() method a a linear_combine_inhomogeneous() method. +84230b7 Linear_Expression: add a linear_combine() method a a linear_combine_inhomogeneous() method. +0e43e5d Constraint: remove some calls to Linear_Expression::get_row() (#2). +069a3d5 Replace an assert() with PPL_ASSERT(). +7d63368 Constraint: remove some calls to Linear_Expression::get_row() (#1). +1ab03cc Linear_Expression: add some methods. +3ea01c9 Grid_Generator: contain a Linear_Expression object instead of deriving from Linear_Expression. +13918c9 Congruence: add the expression() methods. +fa9ca98 Generator: contain a Linear_Expression object instead of deriving from Linear_Expression. +bb3a7d2 Constraint: contain a Linear_Expression object instead of deriving from Linear_Expression. +f735489 Generator: add an expression() method. +9ed2625 Remove the Linear_Row class. +1b003e6 Grid_Generator: inherit directly from Linear_Expression instead of Linear_Row. +e88dcdf Generator: inherit directly from Linear_Expression instead of Linear_Row. +71ad73f Constraint: inherit directly from Linear_Expression instead of Linear_Row. +9569181 Congruence: remove an unnecessary include. +b235654 Polyhedron: fix a comment. +4b6c0fd Polyhedron: add an include. +b3803c6 MIP_Problem: add an include. +0df4eea Linear_Row: remove all methods. +9ea65ac Grid_Generator: remove the Topology field, as Grid_Generator objects are always closed. +0eaad93 Grid_Generator: contain a Kind field and a Topology field instead of a Flags field. +743be7b Generator: contain a Kind field and a Topology field instead of a Flags field. +79065d5 Constraint: contain a Kind field and a Topology field instead of a Flags field. +72266fa Generator: add a constructor. +66f094f Linear_System: remove the add_pending_row() method that takes a Row::Flags argument. +0a4af54 Linear_Row: move the flags and all the methods involving flags to derived classes (Constraint, Generator and Grid_Generator). +2e0e596 Revert "Generator: use neg_assign(Linear_Expression&) in the point() method." +a2955cb Revert "Grid_Generator: use neg_assign(Linear_Expression&) in the parameter() and grid_poin() methods." +1544a3e Grid_Generator: use neg_assign(Linear_Expression&) in the parameter() and grid_poin() methods. +d89a152 Generator: use neg_assign(Linear_Expression&) in the point() method. +8d11cf7 Add a neg_assign() function that takes a Linear_Expression&. +d5a783a Linear_Expression: improve the constructors from Constraint, Generator and Grid_Generator. +a9f37c8 Scalar_Products: improve the internal implementation. +aae7eee Scalar_Products: work on Linear_Expression objects instead of Dense_Row ones. +67f7b03 Linear_Row: contain a Linear_Expression instead of a Dense_Row. +2c4d11c Congruence: add the get_row() methods. +9d80a8e Constraint: remove the OK() method with an argument. +cf2f437 Fix some comments. +c18dffc Polyhedron: use a Constraint_System instead of a Linear_System, in simplify_using_context_assign(). +81fd96a Polyhedron: the helper add_to_system_and_check_independence() function now takes an arbitrary system instead of a Linear_System. +91167ed Polyhedron: don't assume that Constraint IS-A Linear_Row, in topological_closure_assign(). +a7dbd16 Polyhedron: don't assume that Generator IS-A Linear_Row, in constrains(). +b4ecf49 Polyhedron: don't assume that Generator IS-A Linear_Row, in BFT00_poly_hull_assign_if_exact(). +fa06188 Linear_System: remove the remove_trailing_space_dimensions() and remove_trailing_space_dimensions_without_normalizing() methods. +392b310 Linear_System: call Row::swap_space_dimensions() in swap_space_dimensions(). +c5bcc0f Grid_Generator: add a swap_space_dimensions() method. +62dc90d Generator: add a swap_space_dimensions() method. +fa8a1ab Constraint: add a swap_space_dimensions() method. +b3d0320 Linear_System: use Row::permute_space_dimensions() in permute_space_dimensions(). +de9a59d Grid_Generator: add a permute_space_dimensions() method. +bce9f48 Generator: add a permute_space_dimensions() method. +2f0bfb8 Constraint: add a permute_space_dimensions() method. +4d177a7 *_System: invariants are now guaranteed, so make the OK() methods private. +2c7092c Linear_System: fix some comments. +c201fe1 Linear_Expression: contain a Dense_Row instead of a Linear_Row. +f60eda0 Scalar_Products: (temporarily) work on Dense_Row objects instead of Linear_Row ones. +70799b2 Linear_Expression: rename the get_linear_row() methods into get_row(). +fd93ad9 Linear_System: all rows now have the same space dimension instead of the same number of columns. +03a8a0f Partially_Reduced_Product: if the space dimension is greater than max_space_dimension(), throw an error directly instead of constructing objects with the wrong dimensions and expecting them to throw. +95d1cf1 Linear_System: the remove_space_dimensions() method now removes invalid rows from the system and uses the remove_space_dimensions() methods of rows objects. +67d69d1 Grid_Generator: add a remove_space_dimensions() method. +28716a5 Generator: add a remove_space_dimensions() method. +eb9d583 Constraint: add a remove_space_dimensions() method. +750f191 Generator: use a more meaningful format in ascii representation, and use it in Generator_System. +b7ce400 tests/Polyhedron/linearsystem1: test Linear_System instead of Linear_System. +df12ea8 Linear_Row: add the mark_as_{,not_}necessarily_closed() methods and change the semantics of set_topology() and set_{,not_}necessarily_closed(). Update client code to match. +f0d82a2 Generator: construct a valid object in the default constructor. +d905298 Polyhedron: use a Linear_System instead of a Linear_System, in simplify_using_context_assign(). +7f7eb49 Linear_System: remove the increase_space_dimension() method, use set_space_dimension() instead. +0502008 Generator_System: affine_image() now takes a Variable instead of a column index. +7306b56 Constraint_System: affine_preimage() now takes a Variable instead of a column index. +6a8bca3 Swapping_Vector: use a swap() method instead of std::swap(). +c51dee5 Fix typos. +330efa5 *_System: remove the swap_rows() method. +452671e Polyhedron: use *_System::remove_row(), in simplify() (#2). +9398010 Polyhedron: use *_System::remove_row(), in simplify(). +cb6b72a Linear_System: simplify and improve the remove_rows() method, adding a helper swap_row_intervals() method. +62090db Generator_System: add a remove_rows() method. +ff5aae8 Constraint_System: add a remove_rows() method. +fa10cef Polyhedron: call *_System::remove_row() when appropriate, in the constructor from a Box. +984e9b1 Polyhedron: call *_System::remove_rows() when needed, in conversion(). +ee935d0 Generator_System: add a remove_rows() method. +865f341 Constraint_System: add a remove_rows() method. +9f5bad8 Linear_System: add a remove_rows() method. +cd6f2c5 Generator_System: add a remove_row() method. +347b7d0 Constraint_System: set the sortedness correctly, in ascii_load(). +42010ea Polyhedron: use Constraint_System::remove_row() in strongly_minimize_constraints(). +725dcd6 Constraint_System: add a remove_rows() method. +a2a57ea Generator_System: use Linear_System::remove_row() in remove_invalid_lines_and_rays(). +0762679 Linear_System: improve the remove_row() method. +f19a92b Linear_System: add a remove_rows() method. +90c4c16 Grid: use Congruence_System::remove_rows() in remove_higher_space_dimensions(). +b37b96a Congruence_System: add a remove_rows() method. +e7d0e18 Constraint_System: use Linear_System::remove_row() in adjust_topology_and_space_dimension(). +0dad962 Generator_System: use Linear_System::remove_row() in adjust_topology_and_space_dimension(). +1a18fb0 Grid_Generator_System: use Linear_System::remove_row() in remove_invalid_lines_and_parameters(). +a6044df Linear_System: add a remove_row() method. +c279bc0 Grid_Generator_System: simplify the add_universe_rows_and_columns() method. +710ffa5 Grid_Generator_System: simplify the insert() method. +e94ad48 Grid_Generator_System: simplify the recycling_insert() method. +ffcd262 Constraint_System: remove the release_row() method. +5fea09b Constraint_System: output the size of each row in ascii_dump(), and read it in ascii_load(). +74495f4 Constraint: un-inline the ascii_dump() and ascii_load() methods. +5510704 Constraint_System: output the topology of each row in ascii_dump(), and read it in ascii_load(). +e2d4a1f tests/Polyhedron: fix the Makefile.am file. +83f3dc8 Linear_System, Constraint_System: remove the raw_*() methods. +1b749eb Linear_System: avoid using raw_set_topology() in ascii_load(). +fbaf1e1 Polyhedron: use the mark_as_{,not_}necessarily_closed() methods instead of the raw_set_{,not_}necessarily_closed() ones. +1beb6de Constraint_System: add the mark_as_{,not_}necessarily_closed() methods. +3b981c4 Linear_System: add the mark_as_{,not_}necessarily_closed() methods. +0346bd8 Grid_Generator_System: use higher-level methods of Linear_System, in ascii_load(). +b0f0dfa Generator_System: use higher-level methods of Linear_System, in ascii_load(). +c19de5e Generator_System: use higher-level methods of Linear_System, in convert_into_non_necessarily_closed(). +85a2c16 Constraint_System: use higher-level methods of Linear_System, in ascii_load(). +9a136a7 Constraint_System: use higher-level methods of Linear_System, in insert() and insert_pending(). +9e5c607 Generator_System: simplify the adjust_topology_and_space_dimension() method, using higher-level operations. +a005b04 Constraint_System: simplify the adjust_topology_and_space_dimension() method, using higher-level operations. +3cdeef3 Linear_System: add the set_topology() and set_{,not_}necessarily_closed() methods. +c2375f5 *_System: rename the set_topology() and set_*necessarily_closed() methods into raw_set_topology() and raw_set_necessarily_closed(). Also implement Linear_Row set_*necessarily_closed() methods in term of set_topology(). +500673b Constraint_System, Generator_System, Linear_System: replace the three-argument constructor with a two-argument one. +167784c Generator_System: remove the remove_trailing_columns() method. +e833def *_System: resize_no_copy() now takes the number of space dimensions as argument instead of the number of columns. +fe90464 Constraint_System, Generator_System, Grid_Generator_System: avoid using resize_no_copy() in ascii_load(). +6b74c27 Constraint_System, Generator_System: remove the add_columns() method. +22e0c1c Polyhedron: avoid using *_System::num_columns(). +d598885 Constraint_System, Generator_System: remove the add_zero_columns() method. +074e0ed Constraint_System, Generator_System: remove the swap_columns() method. +904500e Polyhedron, Grid_Generator_System: use *_System::remove_space_dimensions() when needed. +b5452f0 Linear_System, Constraint_System, Generator_System: add a remove_space_dimensions() method. +fff5196 Polyhedron: use *_System::set_space_dimension() when needed. +bb29508 Constraint, Generator, Grid_Generator, Linear_System, Generator_System, Constraint_System: add a set_space_dimension() method. +a73dcbd Linear_System, Constraint_System, Generator_System: add a swap_space_dimensions() method and use it instead of permute_space_dimensions() when it's enough. +9b376e8 Linear_System: move the epsilon coefficients and try to preserve sortedness in add_universe_rows_and_columns(). +de67f8f Linear_System: avoid depending on Linear_Row. +f0655c8 Grid_Generator: improve the documentation of is_equal_to() and simplify its implementation. +34c5ba9 Generator: add an is_equal_to() method. +fca5bc7 Constraint: add an is_equal_to() method. +4ca4554 Linear_System: prefer using swap() methods instead of std::swap(), to avoid performance regressions caused by wrong inclusions. +acf1b42 Grid_Generator_System: remove the add_zero_columns() method. +4c0550f Grid: use Grid_Generator_System::set_space_dimension() instead of Grid_Generator_System::add_zero_columns(). +37801af *_System: replace the permute_columns() method with an higher-level permute_space_dimensions(). +6d8db6e Grid_Generator_System: affine_image() now takes a Variable argument instead of its space dimension. +6bfe6ff Grid_Generator_System: remove the num_columns() method. +6bf55c7 Grid_Generator_System: replace the higher_space_dimensions() method with set_space_dimension(). +fc0b9e5 Constraint_System, Generator_System, Grid_Generator_System: remove the internal_row_type typedef. +71de0b1 Grid: avoid using *_System::internal_row_type. +a9b5d3d Polyhedron: avoid using *_System::internal_row_type. +6250fb3 Constraint_System: contain a Linear_System instead of a Linear_System. +8e79515 Linear_System: avoid copying rows during resize. +c236a07 Scalar_Products: actually implement the scalar product between a Generator and a Constraint. +e4c7357 Grid_Generator_System: contain a Linear_System instead of a Linear_System. +744e4c6 Grid_Generator_System: contain a Linear_System object instead of inheriting from Linear_System. +b9a750a Constraint_System: contain a Linear_System object instead of deriving from Linear_System. +f92e1b8 Linear_System: assert OK() at the end of each non-const method; apply some minor changes to avoid triggering assertions. +b5a0955 Polyhedron: keep Linear_System objects valid at each step. +5d680e1 Constraint_System: keep Linear_System objects valid at each step. +aa7e3e6 Linear_System: update index_first_pending in sort_rows(). +e397fa0 Linear_System: prepare for adding more assertions. +2eb0ea5 Linear_System: empty systems now have the minimum number of columns required by their topology. +44cec5e Linear_System: avoid using references to access the current object methods and fields; other minor changes. +5c081c2 Matrix: add a FIXME comment. +1dd7bed Constraint_System: don't depend on Polyhedron. +aa7a595 Grid_Generator_System: inherit from Linear_System with the 'public' specifier and avoid being friend of Grid. +c600412 Constraint_System: avoid being friend of Polyhedron. +2072002 Generator_System: contain a Linear_System instead of a Linear_System. +817e99f Linear_System: always compare rows as Linear_Row objects when sorting the system. +dfe7b0b Linear_Row: remove the iter_swap() function. +04a7154 Generator: add some constructors/methods calling the corresponding Linear_Row constructors/methods. +2bb1e8d Generator: inherit from Linear_Row with the 'public' specifier. +476cfbb Congruence: contain a Dense_Row object instead of deriving from the Dense_Row class. +730fb70 Grid: avoid calling Congruence::size(), in reduce_pc_with_pc(). +89080fe Linear_System: don't call contained objects' OK(), in OK(); also remove the OK() argument. +cbcc6b8 Constraint_System, Generator_System, Grid_Generator_System: don't call contained objects' OK(), in OK(). +8a786eb Grid: avoid using Congruence::operator[], in conversion(). +78d35df Congruence_System: use Congruence::set_space_dimension() instead of Congruence::resize(), in resize_no_copy(). +a22a4a2 Generator_System: contain a Linear_System object instead of inheriting from it. +f46e2a9 Generator_System: make some methods public and remove most friend declarations. +f8e3dae Linear_Expression: contain a Linear_Row object instead of deriving from it. +398e476 Linear_Expression: inherit from Dense_Row with the 'public' specifier, instead of 'private', and remove most friend declarations. +626802e Dense_Row: fix regression in ascii_dump(), introduced in commit 0db87bcb. +511787f Congruence: remove the set_coefficient() method, and add a permute_columns() method instead. +91e9886 Congruence_System: avoid using Congruence::set_coefficient() in add_unit_rows_and_columns(). +dcbcd0f Congruence: add FIXME comment. +6429017 Linear_Expression: add a set_space_dimension() method. +53e743c Congruence_System: remove the non-const operator[]. +0a53c3d Grid: avoid using the non-const Congruence_System::operator[], in simplify(). +2e7c4e7 Grid: prepare the simplify() method for further changes. +08192bd Grid: use the appropriate methods of Congruence instead of accessing the modulus and the inhomogeneous term directly, in simplify(). +ae47add Grid: use a switch instead of nested ifs and gotos, in simplify(). +cfa5dec Congruence_System: add a release_row() method. +1db1d23 Grid: avoid using Congruence::operator[], in reduce_congruence_with_equality(). +befdd04 Add operator+=(), operator-=(), add_mul_assign() and sub_mul_assign() for congruences. +394233e Grid: avoid using the non-const Congruence_System::operator[], in conversion(). +9c9a049 Grid: avoid using the non-const Congruence::operator[], in multiply_grid(). +278524b Grid: avoid using the non-const Congruence_System::operator[], in remove_higher_space_dimensions(). +35d9f17 Congruence_System: add a swap_rows() method. +efc45b4 Congruence_System: avoid using the non-const Congruence_System::operator[]. +ac549e8 Merge the Row_Flags class into Linear_Row::Flags. +0db87bc A Row_Flags field is now contained in Linear_Row, instead of Sparse_Row and Dense_Row. +12e7aec Grid: avoid using the non-const Congruence_System::operator[], in construct(). +7aff773 Congruence: add a set_inhomogeneous_term() method(). +955bee2 Grid: change the signature of the multiply_grid() helper method. +e1c52f9 Grid: change the signature of the reduce_congruence_with_equality() helper method. +7c70fad Congruence_System: avoid using resize_no_copy() in ascii_load(). +d28d135 Grid: avoid using the Congruence_System::resize_no_copy() method and the non-const Congruence_System::operator[], in conversion(). +1fa1d01 Grid: remove a useless cast in set_empty(). +b25f7de Congruence_System: merge the increase_space_dimension() and hemove_higher_space_dimensions() methods into a single set_space_dimension() method. +3512418 Congruence: add the scale() and affine_preimage() methods and use them in Congruence_System. +8adce40 Replaced the algorithm used for sorting Linear_System and Bit_Matrix. +8bbcceb Congruence_System: remove the add_zero_rows(), add_zero_columns() and remove_trailing_columns() methods. +0c22231 Grid: avoid using Congruence_System::add_zero_columns() in add_space_dimensions_and_embed(). +c5040f0 Grid: avoid using Congruence_System::add_zero_columns() in add_space_dimensions(). +3cd72d3 Grid: avoid using Congruence_System::add_zero_rows(), in simplify(). +6344960 Grid: avoid using Congruence_System::add_zero_rows(), in simplify(). +7f82c43 Congruence_System: add an insert_recycled() method. +ddf9d0d Congruence_System: replace the insert_verbatim() method with a new insert_verbatim_recycled() method. +35dd7a9 Congruence: now the default constructor takes an optional argument. +5422567 Congruence_System: simplify the remove_higher_space_dimensions() method. +a295cfa Congruence_System: implement add_unit_rows_and_columns() at a higher level. +9557001 Congruence_System: simplify the insert() method that takes a Congruence_System. +e57abda Congruence_System: simplify the recycling_insert() method that takes a Congruence_System argument. +282d2e5 Congruence_System: simplify the insert_verbatim() method. +c0eb3be Congruence: add a constructor from a Constraint that specifies the desired space dimension. +d9918be Dense_Row, Sparse_Row: weaken the requirements of the copy-constructor with specified size and capacity. +0e30cad Congruence_System: simplify the insert_verbatim() method. +a442c51 Congruence_System: simplify the increase_space_dimension() method. +cfe01f9 Merge branch 'master' into sparse_matrices +c46cd9c Congruence: replace the copy constructor that specifies the size and the capacity with a copy constructor that specifies the space dimension. +210bb22 Congruence: remove the copy constructor that takes a const Coefficient&. +5c08a53 Congruence: add a set_modulus() method. +10e7e1c Congruence_System: simplify the concatenate() method. +1100652 Congruence: add a shift_coefficients() method. +4bf6050 Congruence_System: avoid accessing a Congruence's coefficients directly (#3). +5a16342 Congruence: add the add_space_dimensions(), remove_space_dimensions() and set_space_dimension() methods. +892e482 Scalar_products: avoid accessing a Congruence's coefficients directly. +2f6b77e Linear_Expression: avoid accessing a Congruence's coefficients directly. +25dd0c1 Congruence_System: avoid accessing a Congruence's coefficients directly (#2). +3027c66 Congruence_System: avoid accessing a Congruence's coefficients directly (#1). +cccc923 Congruence: add a set_coefficient() method. +68e8b4b Congruence_System: use Congruence::max_space_dimension() to implement max_space_dimension(). +94f12a9 Congruence_System: remove the second argument of the add_rows() method. +ae17541 Constraint: avoid using Congruence::operator[] (#2). +4aca730 Constraint: avoid using Congruence::operator[] (#1). +8258c0f Congruence_System is now implemented with a vector of Congruence instead of a vector of Dense_Row. +f9067f7 Congruience: add a default constructor and a two-argument swap() method. +9aa4821 Polyhedron: don't assume that Generator_System, Constraint_System, Grid_Generator_System inherit from Linear_System. +05f40e3 Congruence_System: replace inheritance with containment. +fa9b827 Congruence_System: remove all friend declarations. +3f6c09f Congruence_System: derive from Swapping_Vector instead of Matrix. +ac087e9 Constraint: inherit from Linear_Row with the 'public' specifier and remove most friend declarations. +1d5cbc6 Congruence: inherit from Dense_Row with the 'public' specifier and remove all friend declarations. +3689ffe Grid_Generator: inherit from Linear_Row with the 'public' specifier and remove most friend declarations. +cb49c8a Linear_System: there's no need to include Row.defs.hh anymore. +5d8f155 Linear_System: make protected methods and fields private. +ae8338d Linear_System: 'iterator' does not allow to modify rows anymore. +987662e Linear_System, Constraint_System, Generator_System, Grid_Generator_System: remove the non-const operator[]. +5cba657 Grid: avoid using the non-const Linear_System::operator[], in the constructor from a Box. +8c1b17b Polyhedron: avoid using the non-const Linear_System::operator[], in generalized_affine_image() (#2). +d01b446 Polyhedron: avoid using the non-const Linear_System::operator[], in topological_closure_assign(). +9eaf3ff Polyhedron: avoid using the non-const Linear_System::operator[], in time_elapse_assign(). +8a23ada Polyhedron: avoid using the non-const Linear_System::operator[], in generalized_affine_image(). +6eca39a Generator_System: add the insert_recycled() and insert_pending_recycled() methods. +5cfd7ac Polyhedron: avoid using the non-const Linear_System::operator[], in add_recycled_generators(). +c2c759b Polyhedron: prefer const references to non-const ones. +34240fb Polyhedron: avoid using the non-const Linear_System::operator[], in add_generator(). +bf90bd7 Polyhedron: avoid using the non-const Linear_System::operator[], in drop_some_non_integer_points(). +d3061d2 Polyhedron: avoid using the non-const Linear_System::operator[], in strongly_minimize_constraints(). +58664a0 Polyhedron: avoid using the non-const Linear_System::operator[], in concatenate_assign() (#2). +b997c0a Polyhedron: avoid using the non-const Linear_System::operator[], in concatenate_assign(). +b3f9f69 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions_and_project(). +3974a20 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions_and_embed(). +10282f2 Polyhedron: use Linear_System::swap_rows() when needed, in simplify(). +8be6b90 Polyhedron: avoid using the non-const Linear_System::operator[], in simplify(). +4a00e13 Polyhedron: avoid using the non-const Linear_System::operator[], in minimize(). +544fc56 Polyhedron: avoid using the non-const Linear_System::operator[], in conversion(). +d0dffc9 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions(). +e402376 Polyhedron: fix an efficiency bug introduced in commit 436f43. +1066414 Grid: avoid using the non-const operator[] on systems (#4) +418640d Grid: avoid using the non-const operator[] on systems (#3) +c3e8b6e Grid: avoid using the non-const operator[] on systems (#2) +bd8638c Grid: avoid using the non-const operator[] on systems (#1) +bf351f4 Grid: change the signature of multiply_grid() and adapt client code. +3dfb671 Grid: change the signature of reduce_reduced() and adapt client code. +4dbc9c4 Congruence_System: add a typedef for internal_row_type and the release_rows()/take_ownership_of_rows() methods. +d8a9ea9 Grid: change the signature of reduce_parameter_with_line() and adapt client code. +0c719d8 Grid_Generator_System: avoid using the non-const operator[] (#2). +4c50720 Grid_Generator_System: avoid using the non-const operator[] (#1). +4702196 Generator_System: avoid using the non-const operator[] (#2). +9b25fe1 Generator_System: avoid using the non-const operator[]. +2a1940b Constraint_System: avoid using the non-const operator[]. +fd6416d Linear_System: call swap_rows() when needed. +e7b642d Linear_System: avoid using Linear_System::iterator. +1e5bd81 Linear_System: call set_sorted(true) in sort_pending_and_remove_duplicates(). +30ba5b5 Linear_System: avoid using the non-const operator[]. +ecc7c6c Linear_System: add a typedef for internal_row_type. +6c52401 Linear_System: take_ownership_of_rows() now considers all rows as non-pending. +45b1739 Linear_System: add some assertions. +7d2b289 Linear_System: rewrite the ascii_load() method to honour invariants. +6eca90b Matrix: don't assume thar Swapping_Vector's iterators are the same of std::vector. +f05b18d Linear_System: make private methods and fields protected. +4526acc Grid: add an assertion. +63db6fb Grid: rewrite part of the conversion() method, to keep the Linear_System subobject valid at each step. +8b669b0 Linear_System: disable part of the OK() method, to avoid triggering assertions for valid Grid_Generator_System objects. +8c3389e Linear_System: add the release_rows() and take_ownerhip_of_rows() methods. +93d7509 Grid: reverse the order of a loop, in conversion(). +1335669 Grid: prefer const references to non-const ones. +543ff21 Constraint_System: use swap_rows() when needed. +7282f55 Constraint_System: rewrite the ascii_load() method, to keep the Constraint_System object valid at each step. +3dba0e0 Grid_Generator_System: use swap_rows() when needed. +912f07d Grid_Generator_System: rewrite the ascii_load() method, to keep the Grid_Generator_System object valid at each step. +44c6c7d Linear_System: fix resize_no_copy(). +17a00c0 Linear_System: add a set_topology() method. +94596fd Grid_Generator: add an assertion. +7db5464 Grid_Generator: call set_necessarily_closed() in ascii_load(). +3fa4beb Grid_Generator: add a default constructor. +4896719 Generator_System: use swap_rows() when needed. +114d03a Generator_System: rewrite the ascii_load() method, to keep the Generator_System object valid at each step. +dc6960a Generator_System: add a convert_into_non_necessarily_closed() helper method and use it when needed. +81c5c77 Generator: add a default constructor. +37a8553 Swapping_Vector: avoid copying elements in the erase() methods. +507a739 Polyhedron: use a separate vector for recyclable rows, in conversion(). +1a30b23 Linear_System: fix the remove_trailing_rows() and release_row() methods. +aa7ced2 Linear_System: add an increase_space_dimension() method. +bcaac64 Linear_System: add a release_row() method. +0bed321 Swapping_Vector: add a pop_back() method. +88d0e76 Polyhedron: call Linear_System::swap_rows() when needed. +6537eaa Linear_System: add a swap_rows() method. +0821dbb Merge branch 'master' into sparse_matrices +bdba1db Linear_System: replace the add_*rows() methods with insert*() methods. +9f657ad Constraint_System, Generator_System: inherit from Linear_System with the `public' specifier. +3dbfc03 Linear_System: make the add_*row() methods private. +9de6d26 Grid_Generator_System: use the Linear_System::insert*() methods instead of the add*_row() methods. +4c8702a Generator_System: use the Linear_System::insert*() methods instead of the add*_row() methods. +69ec030 Polyhedron: use the Linear_System::insert*() methods instead of the add*_row() methods. +bd43e29 Linear_System: add the insert_recycled() and insert_pending_recycled() methods. +3a2f2ba Linear_System: rename the add_rows_and_columns() method into add_universe_rows_and_columns(). +af0a3c5 Linear_System: add more topology checks. +fde3fe3 Linear_System: keep the pending rows when constructing temporary copies of Linear_System objects. +23f9f15 Linear_System: clarify a comment. +beb797f Polyhedron: simplify add_recycled_generators(). +00bf420 Linear_Row, Linear_Row::Flags: add a set_topology() method. +9b288e6 Linear_System: avoid useless copies in insert() and insert_pending(). +6f8d776 Add a TODO comment. +aaeeb95 Linear_System: add the add_recycled_rows() and add_recycled_pending_rows() methods and use them in Polyhedron. +f469b98 Linear_System: don't modify sortedness in add_recycled_pending_row(), and simplify some code. +436f439 Linear_System: add an add_recycled_pending_row() method and change the semantics of add_recycled_row(). +21cac20 Swapping_Vector: avoid copying when reallocating the vector in push_back(). +3609c23 Linear_System is now implemented with a Swapping_Vector instead of a Matrix. +2da57c0 Linear_System: add a TODO comment. +38c4908 Merge branch 'master' into sparse_matrices +f4214b1 Linear_System: avoid deriving from Matrix. Add a Matrix field instead. +6435c86 Linear_Row: add a max_num_columns() method. +7d39441 Grid_Generator: remove the coefficient_swap() method. +a508abb Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in add_universe_rows_and_columns(). +829d1ab Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in recycling_insert(Generator_System&). +537741e Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in recycling_insert(Grid_Generator_System&). +1e8f240 Grid_Generator_System: don't assume that Linear_System is implemented with a Matrix. +834a4f9 Linear_System: add a remove_trailing_columns_without_normalizing() method. +b27defb Linear_System: remove too-strict assertion. +8aff5ed Polyhedron: don't call Generator_System::add_zero_rows() in add_recycled_generators(). +3fc3348 Polyhedron: don't assume that Generator_System is implemented with a Matrix, in remove_space_dimensions(). +73504e4 Add a Swapping_Vector class and use it to implement Matrix. +ea341e0 Merge branch 'master' into sparse_matrices +d66a8fc Grid_Generator: some changes, possibly fixing the code. Patch by Enea Zaffanella. +4ee4336 Grid_Generator: fix normalization bug in parameter(). Now the whole testsuite passes. +38e3c1a Remove the (unused) Sparse_Matrix.types.hh file. +a05f9b5 Grid_Generator: remove operator[]. +281a232 Grid_Generator is now implemented using a Linear_Row instead of a Generator. +a54f7ec Grid_Generator: implement operator=() directly, instead of calling Generator::operator=(). +f4086a5 Grid_Generator: improve readability of is_equivalent_to(). Patch by Enea Zaffanella. +2c86834 Grid_Generator: implement the type() method directly, instead of calling Generator::type(). Patch by Enea Zaffanella. +e4c603c Grid_Generator: implement is_parameter() directly, instead of calling Generator::is_ray(). Patch by Enea Zaffanella. +e2d2c92 Grid_Generator: implement some methods direcly, instead of relying on the corresponding Generator methods. Patch by Enea Zaffanella. +0ef2138 Grid_Generator: improve the readability of the divisor() method. +cf871f3 Grid_Generator: improve the readability of is_equal_at_dimension(). Patch by Enea Zaffanella. +e521cc2 Grid_Generator: improve the readability of set_divisor(). Patch by Enea Zaffanella. +76ba320 Grid_Generator: improve the documentation of scale_to_divisor() and strong_normalize(). Patch by Enea Zaffanella. +f0e8292 Grid_Generator: simplify the implementation of all_homogeneous_terms_are_zero(). Patch by Enea Zaffanella. +c9d8f22 Grid_Generator: simplify the scale_to_divisor() implementation. Patch by Enea Zaffanella. +ed78231 Grid_Generator: make the is_equivalent_to() method's implementation more readable. Patch by Enea Zaffanella. +8ad66ca Grid_Generator: rewrite the OK() method. Patch by Enea Zaffanella. +a9b95ea Grid_Generator: add a constructor from a Linear_Expression. Patch by Enea Zaffanella. +53c2784 Grid_Generator: fix a comment. Patch by Enea Zaffanella. +131ff82 Grid_Generator: indentation fixes. Patch by Enea Zaffanella. +bea956d Grid_Generator: simplify the set_is_parameter() method. Patch by Enea Zaffanella. +96df7a6 Grid_Generator: add a comment in coefficient_swap(). Patch by Enea Zaffanella. +84fa9af Grid_Generator: use the set_is_parameter_or_point() method instead of set_is_ray_or_point_or_inequality(). Patch by Enea Zaffanella. +35c6ed9 Grid_Generator: use the Grid_Generator::Type enum instead of Generator::Type. Patch by Enea Zaffanella. +caf8af6 Grid_Generator: improve readability of the coefficient_swap() method. Patch by Enea Zaffanella. +02c3f9f Grid_Generator: use Linear_Row::set_is_ray_or_point_or_inequality() instead of Generator::set_is_ray_or_point(). Patch by Enea Zaffanella. +cf4605e Grid_Generator: indentation fixes. Patch by Enea Zaffanella. +a170b37 Grid_Generator: use a constaint in the parameter() method. Patch by Enea Zaffanella. +7cd325b Grid_Generator: add a throw_dimensions_incompatible() method. Patch by Enea Zaffanella. +9bf4f7d Grid_Generator: change the semantic of the negate() method. Patch by Enea Zaffanella. +8a2a2a8 Grid_Generator_System: inherit from Linear_System instead of Generator_System. Patch by Enea Zaffanella. +a9d8ed3 Grid_Generator_System: call Grid_Generator_System::remove_invalid_lines_and_parameters() instead of Generator_System::remove_invalid_lines_and_rays(), in the affine_image() method. Patch by Enea Zaffanella. +f21cda6 Grid_Generator_System: improve the implementation of the insert() method and update some comments. Patch by Enea Zaffanella. +1e5e24a Grid_Generator_System: replace nested if statements with a single one, in the insert() method. Patch by Enea Zaffanella. +319b98d Grid_Generator_System: remove a block enclosing part of the insert() code. Patch by Enea Zaffanella. +041a015 Grid_Generator_System: implement the has_points(), num_parameters() and num_lines() methods directly, instead of relying on the corresponding methods of Generator_System. Patch by Enea Zaffanella. +3727526 Grid_Generator_System: add a remove_invalid_lines_and_parameters() method. Patch by Enea Zaffanella. +41286cf Grid_Generator: fix a typo in example code included in a comment. Patch by Enea Zaffanella. +2fc7183 Congruence: change the semantic of the negate() method. Patch by Enea Zaffanella. +b06545d Generator_System: fix typo in a comment, in adjust_topology_and_space_dimension(). Patch by Enea Zaffanella. +c8a950a Grid_chdims: improve code readability. Patch by Enea Zaffanella. +d5c580f Merge the matrix1 and densematrix1 tests. Move the sparserow1 test in the Polyhedron directory. +b86714d tests/Polyhedron/memory2: use Matrix instead of Dense_Matrix. +f7b3af7 tests/Polyhedron/linearsystem1: use Linear_System instead of Linear_System. +807a439 Dense_Row: add a clear() method. +b4f4987 Revert "Generator: assert OK() in most constructors and non-const methods." +4bacf42 Constraint: make some methods public and remove most friend declarations. +ee36313 Constraint: simplify operator>(const Linear_Expression&,conse Coefficient&). +87d42aa Polyhedron: use Dense_Row::resize() in add_recycled_constraints(), improving performance and avoiding calls to the Constraint::set_is_inequality() method. +d09a154 Polyhedron: use Dense_Row::add_zeroes_and_shift() in concatenate_assign(), improving performance and avoiding calls to the Constraint::set_is_inequality() method. +672f483 Dense_Row: add an add_zeroes_and_shift() method. +771c88f Constraint: add some methods, to make its interface a superset of Linear_Row. +f9ccf2c Constraint.defs.hh: re-order the includes. +45ac2f1 Constraint: assert OK() in most constructors and non-const methods. +c5263d2 Constraint: call strong_normalize() in the constructor from a Linear_Expression. Remove such calls in client code. +73ee757 Constraint: simplify some methods. +9d91a68 Generator: assert OK() in most constructors and non-const methods. +827c7e0 Generator: call strong_normalize() in the constructor from a Linear_Expression. Remove such calls in client code. +3dcf87d Grid_Generator: avoid constructing an invalid Generator and fixing it afterwards. +6bdf889 Generator: avoid constructing an invalid Generator and fixing it afterwards. +d3769d9 Linear_System: pass the optional parameters to swapping_sort() and swapping_unique(), to make sure the right iter_swap() is used. +fc748c2 swapping_sort(), swapping_unique(): add an optional parameter that specifies the iter_swap algorithm. +b7190f9 Linear_Row: change the two-argument copy constructor semantic to match the Constraint's and Generator's ones. +2f05637 Linear_System: avoid using the Linear_Row copy constructor with specified capacity. +16c8b37 Polyhedron: let all methods support Linear_System objects with different Row type. +57291a0 Constraint: inherit from Linear_Row using the `public' specifier. +95e8f47 Do not include Linear_Row.defs.hh in Linear_System.defs.hh. +bce7237 Linear_System: use Row instead of Linear_Row. +aa5d014 Constraint_System, Generator_System, Grid_Generator_System, Polyhedron: use Linear_System instead of Linear_System. +a8cf68a Make Linear_System and Linear_System_With_Bit_Matrix_Iterator class templates. Replace uses of Linear_System and Linear_System_With_Bit_Matrix_Iterator with uses of Linear_System and Linear_System_With_Bit_Matrix_Iterator. +c95e579 Split the Linear_System::With_Bit_Matrix_iterator class out of Linear_System and rename it to Linear_System_With_Bit_Matrix_iterator. +ee5feef Linear_System.cc: put all definitions in the PPL namespace. +0d1f436 Polyhedron: add a typedef for Linear_System_Class and use it. +bbeb88a Generator_System: add a typedef for Base and use it. +6697684 Constraint_System: add a typedef for Base and use it. +367354e Congruence_System, Linear_System: fix some regressions. +1fed237 Revert "Make Linear_System a class template. Replace uses of Linear_System with uses of Linear_System." +81176f3 Make Linear_System a class template. Replace uses of Linear_System with uses of Linear_System. +cc3f972 Matrix: uncomment the PPL_OUTPUT_TEMPLATE_DEFINITIONS_ASCII_ONLY macro. +c9f5829 Scalar_Products: don't include Scalar_Products.inlines.hh in Scalar_Products.defs.hh. +045d5c5 Bit_Matrix: avoid inclusion of Linear_System.defs.hh. +e9a27d6 Generator: include Generator_System.types.hh instead of Generator_System.defs.hh. +7ceeae3 Generator_System: replace the const_iterator class with an external Generator_System_const_iterator class. +78e4346 Constraint: include Constraint_System.types.hh instead of Constraint_System.defs.hh. +e5da404 Constraint_System: replace the const_iterator class with an external Constraint_System_const_iterator class. +617d286 Dense_Row: improve exception safety in constructors. +9a53af2 Dense_Row: remove useless debugging code from the OK() method. +d888e2d Update some comments referring to the Dense_Matrix class. +c354550 Remove the Dense_Matrix class, and use Matrix instead. +2c9be05 Merge branch 'master' into sparse_matrices +31c662c Dense_Matrix: make all fields private instead of protected. +85190b2 Matrix: rename the row_capacity() method into capacity(). +fa35c94 Linear_System: avoid accessing private fields of Dense_Matrix. +a61d278 Congruence_System: avoid accessing private fields of Dense_Matrix. +d7e1b8a Grid_Generator_System: avoid accessing private fields of Dense_Matrix. +c359346 Dense_Matrix: add non-const iterator and the remove_rows() and reserve_rows() methods. +f4fe636 Grid: avoid accessing private fields of Dense_Matrix directly. +a19f58a Matrix: call reserve_rows() in resize() to improve performance. +b607a6d Matrix: add some methods: row_capacity(), reserve_rows(), remove_rows() and swap_columns(). +f968188 Dense_Row: remove the capacity argument from the two-argument OK() method. +2d2bbd8 Merge branch 'master' into sparse_matrices +9a14cdd Merge branch 'master' into sparse_matrices +0e0b4f3 Remove the Sparse_Matrix class and add a Matrix class instead. diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..85203cf --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,6 @@ +libppl14 +libppl_c4 +ppl-devel + requires -ppl- + requires "libppl14- = " + requires "libppl_c4- = " diff --git a/ppl-1.2.tar.xz b/ppl-1.2.tar.xz new file mode 100644 index 0000000..d186927 --- /dev/null +++ b/ppl-1.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:691f0d5a4fb0e206f4e132fc9132c71d6e33cdda168470d40ac3cf62340e9a60 +size 14136236 diff --git a/ppl-1.2.tar.xz.sign b/ppl-1.2.tar.xz.sign new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..3d59523e877bd4827233fbad4f23b46c85920219d5fd63fe2e454df1d657663a GIT binary patch literal 287 zcmV+)0pR|L0UQJX0RjL91p-#QhI;@C2@voes!C_$AB|=K2meX)!eNynnkYZ0tQGWt zFR|j36+W6L9dC5@Lz)fM&9W;sbq=t^vxmrLO5K-=f#xy0sSz<@6u&#bzl*h=9?jPO zeqLvR8!iV;XCJgGbkT|d($zX3a-)LnIoKrE^hT!r)kiUu>a<|7k78Sm#5Mu%ZYbR$ zZ1dx!+eWSD=H;*RA+G;HqvN^^_>Fo9ftv45W8nH!z8|{oWHY8!@pnkk)yv?*4Htri zS6P6tNGWF)vOeD*Ni+^ZG9`F5@N$Z0Bobl+8L%SGXbe&BX$D^r)>+oEV|o-o7dbiu lcm+}d+cfeP2cOOYwilLYg{5035=&F8F#$uYJ(1i?;DNylf!+WB literal 0 HcmV?d00001 diff --git a/ppl-testsuite.changes b/ppl-testsuite.changes new file mode 100644 index 0000000..5d492a4 --- /dev/null +++ b/ppl-testsuite.changes @@ -0,0 +1,20 @@ +------------------------------------------------------------------- +Tue Mar 5 19:30:04 UTC 2013 - idonmez@suse.com + +- Add ppl-gmp-5.1.0.patch to fix build with new gmp + +------------------------------------------------------------------- +Tue Jan 24 12:20:24 UTC 2012 - jengelh@medozas.de + +- Remove redundant sections (see specfile guidelines) + +------------------------------------------------------------------- +Sun Jun 21 11:23:52 CEST 2009 - coolo@suse.de + +- add empty %install section to fix build + +------------------------------------------------------------------- +Tue Jun 16 14:44:47 CEST 2009 - coolo@novell.com + +- build test suite in a package on its own + diff --git a/ppl-testsuite.spec b/ppl-testsuite.spec new file mode 100644 index 0000000..773b217 --- /dev/null +++ b/ppl-testsuite.spec @@ -0,0 +1,205 @@ +# +# spec file for package ppl +# +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%define so_name 14 +Name: ppl-testsuite +Version: 1.2 +Release: 0 +Summary: The Parma Polyhedra Library +License: GPL-3.0+ +Group: Development/Libraries/C and C++ +Url: http://bugseng.com/products/ppl/ + +#Git-Web: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=summary +#Git-Clone: git://git.cs.unipr.it/ppl/ppl +Source: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz +Source1: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz.sign +Source2: baselibs.conf +Source3: ppl.keyring +Source4: GLS-0.12-1.1 +BuildRequires: c++_compiler +BuildRequires: fdupes +BuildRequires: gmp-devel >= 4.1.3 +BuildRequires: m4 +BuildRequires: xz +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The Parma Polyhedra Library (PPL) is a library for the manipulation of +(not necessarily closed) convex polyhedra and other numerical +abstractions. The applications of convex polyhedra include program +analysis, optimized compilation, integer and combinatorial optimization +and statistical data-editing. The Parma Polyhedra Library comes with +several user friendly interfaces, is fully dynamic (available virtual +memory is the only limitation to the dimension of anything), written in +accordance to all the applicable standards, exception-safe, rather +efficient, thoroughly documented, and free software. This package +provides all what is necessary to run applications using the PPL +through its C and C++ interfaces. + +%package devel +Summary: Development tools for the Parma Polyhedra Library C and C++ interfaces +Group: Development/Libraries/C and C++ +Requires: gmp-devel >= 4.1.3 +Requires: libppl%{so_name} = %{version} +Requires: libppl_c4 = %{version} +Recommends: ppl-doc = %{version} + +%description devel +The header files, Autoconf macro, and ppl-config tool for developing +applications using the Parma Polyhedra Library through its C and C++ +interfaces. + +%package devel-static +Summary: Static libraries for the Parma Polyhedra Library C and C++ interfaces +Group: Development/Libraries/C and C++ +Requires: ppl-devel = %{version}-%{release} +Recommends: ppl-doc = %{version}-%{release} + +%description devel-static +Static libraries for the Parma Polyhedra Library C and C++ interfaces. + +%package -n libppl%{so_name} +Summary: Shared library for the Parma Polyhedra Library +Group: System/Libraries + +%description -n libppl%{so_name} +Shared library for the Parma Polyhedra Library. + +%package -n libppl_c4 +Summary: Shared library for the Parma Polyhedra Library C bindings +Group: System/Libraries + +%description -n libppl_c4 +Shared library for the Parma Polyhedra Library C bindings. + +%package doc +Summary: Documentation for the Parma Polyhedra Library +Group: Documentation/HTML +BuildArch: noarch + +%description doc +This package contains all the documentations required by programmers +using the Parma Polyhedra Library (PPL). Install this package if you +want to program with the PPL. + +%prep +%setup -q -n ppl-%{version} + +%build +%if "%{name}" == "ppl-testsuite" +export CXXFLAGS="%{optflags} -g0" +%endif +%configure \ + --enable-shared \ + --with-pic \ + --disable-rpath \ + --disable-watchdog +#sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +#sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +make %{?_smp_mflags} +%if "%{name}" == "ppl-testsuite" +%check +make %{?_smp_mflags} check + +%install +%else +%install +make DESTDIR=%{buildroot} INSTALL="install -p" install +# We don't build the binary, so delete its manpage +rm -f %{buildroot}%{_mandir}/man1/ppl_lpsol.1 +# We don't build pwl +rm -Rf %{buildroot}%{_datadir}/doc/pwl +# The pdf is enough +rm -f %{buildroot}%{_datadir}/doc/%{name}/ppl-user-*.ps.gz +rm -f %{buildroot}%{_datadir}/doc/%{name}/ChangeLog +rm -f %{buildroot}%{_datadir}/doc/%{name}/README.configure +rm -f %{buildroot}%{_datadir}/doc/%{name}/TODO +rm -f %{buildroot}%{_datadir}/doc/%{name}/gpl.* +rm -f %{buildroot}%{_datadir}/doc/%{name}/fdl.ps.gz +rm -f %{buildroot}%{_datadir}/doc/%{name}/fdl.pdf +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-prolog-interface-%{version}* +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-ocaml-interface-%{version}* +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-java-interface-%{version}* +cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" +# %%name == ppl +%endif +%fdupes -s %{buildroot} + +%post -n libppl%{so_name} -p /sbin/ldconfig + +%postun -n libppl%{so_name} -p /sbin/ldconfig + +%post -n libppl_c4 -p /sbin/ldconfig + +%postun -n libppl_c4 -p /sbin/ldconfig +%if "%{name}" == "ppl" +%files +%defattr(-,root,root,-) +%dir %{_datadir}/doc/%{name} +%doc %{_datadir}/doc/%{name}/BUGS +%doc %{_datadir}/doc/%{name}/COPYING +%doc %{_datadir}/doc/%{name}/CREDITS +%doc %{_datadir}/doc/%{name}/NEWS +%doc %{_datadir}/doc/%{name}/README +%{_bindir}/ppl_lcdd +%{_bindir}/ppl_pips +%{_mandir}/man1/ppl_lcdd.1.gz +%{_mandir}/man1/ppl_pips.1.gz + +%files -n libppl%{so_name} +%defattr(-,root,root,-) +%{_libdir}/libppl.so.* + +%files -n libppl_c4 +%defattr(-,root,root,-) +%{_libdir}/libppl_c.so.* + +%files devel +%defattr(-,root,root,-) +%{_includedir}/ppl.hh +%{_includedir}/ppl_c.h +%{_libdir}/libppl.so +%{_libdir}/libppl_c.so +%{_bindir}/ppl-config +%{_mandir}/man1/ppl-config.1.gz +%{_mandir}/man3/libppl.3.gz +%{_mandir}/man3/libppl_c.3.gz +%dir %{_datadir}/aclocal +%{_datadir}/aclocal/ppl.m4 +%{_datadir}/aclocal/ppl_c.m4 + +%files devel-static +%defattr(-,root,root,-) +%{_libdir}/libppl.a +%{_libdir}/libppl.la +%{_libdir}/libppl_c.a +%{_libdir}/libppl_c.la + +%files doc +%defattr(-,root,root,-) +%doc %{_datadir}/doc/%{name}/GLS-* +%doc %{_datadir}/doc/%{name}/README.doc +%doc %{_datadir}/doc/%{name}/fdl.txt +%doc %{_datadir}/doc/%{name}/ppl-user-%{version}-html/ +%doc %{_datadir}/doc/%{name}/ppl-user-c-interface-%{version}-html/ +%doc %{_datadir}/doc/%{name}/ppl-user-%{version}.pdf +%doc %{_datadir}/doc/%{name}/ppl-user-c-interface-%{version}.pdf +%endif + +%changelog diff --git a/ppl.changes b/ppl.changes new file mode 100644 index 0000000..3271121 --- /dev/null +++ b/ppl.changes @@ -0,0 +1,178 @@ +------------------------------------------------------------------- +Tue Oct 11 14:33:01 UTC 2016 - adam.majer@suse.de + +- Update to new upstream release 1.2 + * Improved the efficiency of the conversion procedure for + polyhedra by adding a quick adjacency check. + * In the Java language interface, throw an exception when trying + to build a disequality Constraint. + * Fixed a bug in the implementation of dense rows. + * Fixed a bug in the implementation of ::relation_with + * Portability improved. +- soname bumped + +------------------------------------------------------------------- +Sat Nov 14 10:07:48 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 1.1 +* Remove the Sparse_Matrix class and add a Matrix class + instead. +* Dense_Row: remove the capacity argument from the two-argument + OK() method. +* Matrix: add some methods: row_capacity(), reserve_rows(), + remove_rows() and swap_columns(). +* Dense_Matrix: add non-const iterator and the remove_rows() and + reserve_rows() methods. +* Matrix: rename the row_capacity() method into capacity(). +* Remove the Dense_Matrix class, and use Matrix instead. +* Constraint_System: replace the const_iterator class with an + external Constraint_System_const_iterator class. +* Generator_System: replace the const_iterator class with an + external Generator_System_const_iterator class. +* Split the Linear_System::With_Bit_Matrix_iterator class out of + Linear_System and rename it to Linear_System_With_Bit_Matrix_iterator. +* Many more API changes. See the git log summary lines for details, + provided in /usr/share/doc/packages/GLS-0.12-1.1. +- Drop ppl-gmp-5.1.0.patch (merged upstream) + +------------------------------------------------------------------- +Mon Nov 2 10:46:25 UTC 2015 - rpm@fthiessen.de + +- Fixed dependencies of devel package. +- Cleaned spec file: Use so-name. + +------------------------------------------------------------------- +Sun Sep 27 13:14:53 UTC 2015 - mpluskal@suse.com + +- Update to 0.12.1 + * See NEWS file for complete list of changes + +------------------------------------------------------------------- +Tue Aug 4 21:45:13 UTC 2015 - mpluskal@suse.com + +- Update to 0.12 + * See NEWS file for complete list of changes +- Cleanup spec file with spec-clener +- Remove no longer needed dependency on gpg-offline +- Refresh ppl-gmp-5.1.0.patch +- Reduce duplicate files in documentation + +------------------------------------------------------------------- +Wed Sep 4 12:43:27 UTC 2013 - rguenther@suse.com + +- Disable -g when building the testsuite. + +------------------------------------------------------------------- +Mon Apr 15 13:09:40 UTC 2013 - idonmez@suse.com + +- Comment out GPG part, since it'll break bootstrap + +------------------------------------------------------------------- +Mon Apr 15 09:35:38 UTC 2013 - idonmez@suse.com + +- Add Source URL, see https://en.opensuse.org/SourceUrls +- Add GPG verification + +------------------------------------------------------------------- +Tue Mar 5 19:30:04 UTC 2013 - idonmez@suse.com + +- Add ppl-gmp-5.1.0.patch to fix build with new gmp + +------------------------------------------------------------------- +Tue Jan 24 12:20:24 UTC 2012 - jengelh@medozas.de + +- Remove redundant sections (see specfile guidelines) + +------------------------------------------------------------------- +Mon Jan 23 17:22:51 CET 2012 - meissner@suse.de + +- include /usr/share/aclocal directory as we no longer require autoconf + +------------------------------------------------------------------- +Wed Aug 31 13:44:35 UTC 2011 - rguenther@suse.com + +- Fix fixed baselibs.conf + +------------------------------------------------------------------- +Thu Mar 3 14:24:24 UTC 2011 - rguenther@novell.com + +- Update to version 0.11.2. [fate#311972] + * Minor bugfixes + +------------------------------------------------------------------- +Wed Sep 22 07:17:41 UTC 2010 - coolo@novell.com + +- fix baselibs.conf + +------------------------------------------------------------------- +Thu Aug 5 09:36:22 UTC 2010 - rguenther@novell.com + +- Update to version 0.11. + * Many new features, see NEWS file +- Library package name changes for SONAME bumps. + +------------------------------------------------------------------- +Sun Jun 27 16:15:03 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Fri Jun 18 16:08:42 UTC 2010 - prusnak@opensuse.org + +- add baselibs.conf + +------------------------------------------------------------------- +Wed Dec 16 10:46:43 CET 2009 - jengelh@medozas.de + +- package documentation as noarch + +------------------------------------------------------------------- +Thu Apr 16 14:12:13 CEST 2009 - rguenther@suse.de + +- Update to version 0.10.2. [fate#306970] + * fixes build with gmp 4.3.0 + +------------------------------------------------------------------- +Tue Apr 14 15:16:26 CEST 2009 - rguenther@suse.de + +- Update to bugfix release 0.10.1. +- Make the testsuite fatal everywhere. +- Disable memory1 test on s390x. + +------------------------------------------------------------------- +Mon Mar 16 14:31:13 CET 2009 - rguenther@suse.de + +- Wrap Recommends in suse_version check. + +------------------------------------------------------------------- +Tue Nov 4 17:46:01 CET 2008 - rguenther@suse.de + +- Update to final version 0.10. + * many new features and bugfixes (see NEWS file for details) + +------------------------------------------------------------------- +Thu Oct 30 23:28:02 CET 2008 - rguenther@suse.de + +- Update to version 0.10pre37. +- Rename libppl_c0 to libppl_c2 to follow new shared object name. + +------------------------------------------------------------------- +Fri Sep 5 10:39:34 CEST 2008 - rguenther@suse.de + +- Re-add static libs to ppl-devel-static. + +------------------------------------------------------------------- +Wed Sep 3 17:55:41 CEST 2008 - rguenther@suse.de + +- Remove all static libs. + +------------------------------------------------------------------- +Wed Sep 3 13:46:30 CEST 2008 - rguenther@suse.de + +- Update to version 0.10pre24. + +------------------------------------------------------------------- +Sun Aug 3 20:23:09 CEST 2008 - rguenther@suse.de + +- Package version 0.9. + diff --git a/ppl.keyring b/ppl.keyring new file mode 100644 index 0000000..6f7f5c6 --- /dev/null +++ b/ppl.keyring @@ -0,0 +1,117 @@ +This key is used and stored on a multi-user GNU/Linux system that is +connected to the Internet. Its security is thus only as good as the +security of the machine it is used on (i.e., reasonable, but not +perfect). + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.6 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +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 +=qDKP +-----END PGP PUBLIC KEY BLOCK----- diff --git a/ppl.spec b/ppl.spec new file mode 100644 index 0000000..3a698f6 --- /dev/null +++ b/ppl.spec @@ -0,0 +1,205 @@ +# +# spec file for package ppl +# +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%define so_name 14 +Name: ppl +Version: 1.2 +Release: 0 +Summary: The Parma Polyhedra Library +License: GPL-3.0+ +Group: Development/Libraries/C and C++ +Url: http://bugseng.com/products/ppl/ + +#Git-Web: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=summary +#Git-Clone: git://git.cs.unipr.it/ppl/ppl +Source: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz +Source1: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz.sign +Source2: baselibs.conf +Source3: ppl.keyring +Source4: GLS-0.12-1.1 +BuildRequires: c++_compiler +BuildRequires: fdupes +BuildRequires: gmp-devel >= 4.1.3 +BuildRequires: m4 +BuildRequires: xz +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The Parma Polyhedra Library (PPL) is a library for the manipulation of +(not necessarily closed) convex polyhedra and other numerical +abstractions. The applications of convex polyhedra include program +analysis, optimized compilation, integer and combinatorial optimization +and statistical data-editing. The Parma Polyhedra Library comes with +several user friendly interfaces, is fully dynamic (available virtual +memory is the only limitation to the dimension of anything), written in +accordance to all the applicable standards, exception-safe, rather +efficient, thoroughly documented, and free software. This package +provides all what is necessary to run applications using the PPL +through its C and C++ interfaces. + +%package devel +Summary: Development tools for the Parma Polyhedra Library C and C++ interfaces +Group: Development/Libraries/C and C++ +Requires: gmp-devel >= 4.1.3 +Requires: libppl%{so_name} = %{version} +Requires: libppl_c4 = %{version} +Recommends: ppl-doc = %{version} + +%description devel +The header files, Autoconf macro, and ppl-config tool for developing +applications using the Parma Polyhedra Library through its C and C++ +interfaces. + +%package devel-static +Summary: Static libraries for the Parma Polyhedra Library C and C++ interfaces +Group: Development/Libraries/C and C++ +Requires: ppl-devel = %{version}-%{release} +Recommends: ppl-doc = %{version}-%{release} + +%description devel-static +Static libraries for the Parma Polyhedra Library C and C++ interfaces. + +%package -n libppl%{so_name} +Summary: Shared library for the Parma Polyhedra Library +Group: System/Libraries + +%description -n libppl%{so_name} +Shared library for the Parma Polyhedra Library. + +%package -n libppl_c4 +Summary: Shared library for the Parma Polyhedra Library C bindings +Group: System/Libraries + +%description -n libppl_c4 +Shared library for the Parma Polyhedra Library C bindings. + +%package doc +Summary: Documentation for the Parma Polyhedra Library +Group: Documentation/HTML +BuildArch: noarch + +%description doc +This package contains all the documentations required by programmers +using the Parma Polyhedra Library (PPL). Install this package if you +want to program with the PPL. + +%prep +%setup -q -n ppl-%{version} + +%build +%if "%{name}" == "ppl-testsuite" +export CXXFLAGS="%{optflags} -g0" +%endif +%configure \ + --enable-shared \ + --with-pic \ + --disable-rpath \ + --disable-watchdog +#sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +#sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +make %{?_smp_mflags} +%if "%{name}" == "ppl-testsuite" +%check +make %{?_smp_mflags} check + +%install +%else +%install +make DESTDIR=%{buildroot} INSTALL="install -p" install +# We don't build the binary, so delete its manpage +rm -f %{buildroot}%{_mandir}/man1/ppl_lpsol.1 +# We don't build pwl +rm -Rf %{buildroot}%{_datadir}/doc/pwl +# The pdf is enough +rm -f %{buildroot}%{_datadir}/doc/%{name}/ppl-user-*.ps.gz +rm -f %{buildroot}%{_datadir}/doc/%{name}/ChangeLog +rm -f %{buildroot}%{_datadir}/doc/%{name}/README.configure +rm -f %{buildroot}%{_datadir}/doc/%{name}/TODO +rm -f %{buildroot}%{_datadir}/doc/%{name}/gpl.* +rm -f %{buildroot}%{_datadir}/doc/%{name}/fdl.ps.gz +rm -f %{buildroot}%{_datadir}/doc/%{name}/fdl.pdf +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-prolog-interface-%{version}* +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-ocaml-interface-%{version}* +rm -Rf %{buildroot}%{_datadir}/doc/%{name}/ppl-user-java-interface-%{version}* +cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" +# %%name == ppl +%endif +%fdupes -s %{buildroot} + +%post -n libppl%{so_name} -p /sbin/ldconfig + +%postun -n libppl%{so_name} -p /sbin/ldconfig + +%post -n libppl_c4 -p /sbin/ldconfig + +%postun -n libppl_c4 -p /sbin/ldconfig +%if "%{name}" == "ppl" +%files +%defattr(-,root,root,-) +%dir %{_datadir}/doc/%{name} +%doc %{_datadir}/doc/%{name}/BUGS +%doc %{_datadir}/doc/%{name}/COPYING +%doc %{_datadir}/doc/%{name}/CREDITS +%doc %{_datadir}/doc/%{name}/NEWS +%doc %{_datadir}/doc/%{name}/README +%{_bindir}/ppl_lcdd +%{_bindir}/ppl_pips +%{_mandir}/man1/ppl_lcdd.1.gz +%{_mandir}/man1/ppl_pips.1.gz + +%files -n libppl%{so_name} +%defattr(-,root,root,-) +%{_libdir}/libppl.so.* + +%files -n libppl_c4 +%defattr(-,root,root,-) +%{_libdir}/libppl_c.so.* + +%files devel +%defattr(-,root,root,-) +%{_includedir}/ppl.hh +%{_includedir}/ppl_c.h +%{_libdir}/libppl.so +%{_libdir}/libppl_c.so +%{_bindir}/ppl-config +%{_mandir}/man1/ppl-config.1.gz +%{_mandir}/man3/libppl.3.gz +%{_mandir}/man3/libppl_c.3.gz +%dir %{_datadir}/aclocal +%{_datadir}/aclocal/ppl.m4 +%{_datadir}/aclocal/ppl_c.m4 + +%files devel-static +%defattr(-,root,root,-) +%{_libdir}/libppl.a +%{_libdir}/libppl.la +%{_libdir}/libppl_c.a +%{_libdir}/libppl_c.la + +%files doc +%defattr(-,root,root,-) +%doc %{_datadir}/doc/%{name}/GLS-* +%doc %{_datadir}/doc/%{name}/README.doc +%doc %{_datadir}/doc/%{name}/fdl.txt +%doc %{_datadir}/doc/%{name}/ppl-user-%{version}-html/ +%doc %{_datadir}/doc/%{name}/ppl-user-c-interface-%{version}-html/ +%doc %{_datadir}/doc/%{name}/ppl-user-%{version}.pdf +%doc %{_datadir}/doc/%{name}/ppl-user-c-interface-%{version}.pdf +%endif + +%changelog diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 0000000..5340fec --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,3 @@ +#!/bin/bash +# This script is called automatically during autobuild checkin. +sed -e "s,^\(Name:.*ppl\),\1-testsuite," ppl.spec > ppl-testsuite.spec