this repo has no description
1# 2# Main authors: 3# Christian Schulte <schulte@gecode.org> 4# 5# Copyright: 6# Christian Schulte, 2005 7# 8# This file is part of Gecode, the generic constraint 9# development environment: 10# http://www.gecode.org 11# 12# Permission is hereby granted, free of charge, to any person obtaining 13# a copy of this software and associated documentation files (the 14# "Software"), to deal in the Software without restriction, including 15# without limitation the rights to use, copy, modify, merge, publish, 16# distribute, sublicense, and/or sell copies of the Software, and to 17# permit persons to whom the Software is furnished to do so, subject to 18# the following conditions: 19# 20# The above copyright notice and this permission notice shall be 21# included in all copies or substantial portions of the Software. 22# 23# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30# 31 32# 33# This file contains entries for changelogs 34# 35# There are two kinds of entries: one marking releases and the others 36# being actual entries. 37# 38# All the lines for describing entries must start at the beginning. 39# 40# A release is described as follows: 41# [RELEASE] 42# Version: <version string> 43# Date: <when release> 44# [DESCRIPTION] 45# ... All the text up to the next [ENTRY] is included 46# as description 47# 48# An entry is described as follows: 49# [ENTRY] 50# Module: 51# kernel|search|int|set|cpltset|example|minimodel|iter|support| 52# driver|test|gist|flatzinc|other 53# What: bug|documentation|performance|new|removed|change 54# Rank: minor|major 55# Bug: <optional, for number from bugzilla> 56# Issue: <optional, for number from github> 57# Thanks: <optional, who reported etc> 58# [DESCRIPTION] 59# ... All the text up to the next [ENTRY] or [RELEASE] is included 60# as description 61# [MORE] 62# ... If a more section is included, then it will be displayed as an 63# optional section in the html page. 64# 65 66[RELEASE] 67Version: 6.3.1 68Date: 2020-??-?? 69[DESCRIPTION] 70Let's see. 71 72[RELEASE] 73Version: 6.3.0 74Date: 2020-??-?? 75[DESCRIPTION] 76Let's see. 77 78[ENTRY] 79Module: other 80What: change 81Rank: major 82[DESCRIPTION] 83Gecode now requires C++ 11, the support for compiling without C++ 11 84has been removed. 85 86[ENTRY] 87Module: kernel 88What: change 89Rank: minor 90[DESCRIPTION] 91Make the region pool thread local. 92[MORE] 93When running tests in parallel, having a shared pool for regions took too much 94time on macOS. This change makes the pool into a thread_local instead. 95 96[ENTRY] 97Module: flatzinc 98What: change 99Rank: minor 100Thanks: Jip J. Dekker 101[DESCRIPTION] 102Automatically generate and install a MiniZinc solver configuration and 103install MiniZinc library into the share/minizinc/gecode standard location. 104 105[ENTRY] 106Module: int 107What: new 108Rank: minor 109[DESCRIPTION] 110Add versions of element constraints with offsets, to enable fast domain 111consistent index set transformations. 112 113[ENTRY] 114Module: flatzinc 115What: change 116Rank: minor 117[DESCRIPTION] 118Use element-with-offset and 2d element propagators instead of performing 119index transformations in MiniZinc. 120 121[ENTRY] 122Module: flatzinc 123What: change 124Rank: minor 125[DESCRIPTION] 126Accept combined -cp-profiler flag for activating CP-Profiler and always 127send information to profiler. 128 129[ENTRY] 130Module: driver 131What: change 132Rank: minor 133[DESCRIPTION] 134Accept combined -cp-profiler flag for activating CP-Profiler instead of 135using separate script mode. 136 137[ENTRY] 138Module: test 139What: bug 140Rank: minor 141[DESCRIPTION] 142Fix testing for IntAction, BoolAction, SetAction, FloatAction with 143merit functions. 144 145[ENTRY] 146Module: flatzinc 147What: change 148Issue: 77 149Rank: minor 150[DESCRIPTION] 151Move parser.tab.hh to parser.tab.hpp, Bison's standard location. This 152ensures that the generated implementation file is compatible with 153Bison 3.7. 154 155[ENTRY] 156Module: flatzinc 157What: bug 158Issue: 61 159Rank: minor 160[DESCRIPTION] 161Fix fzn_table_bool and fzn_table_bool_reif predicates, which had 162incorrect types. 163 164[ENTRY] 165Module: other 166What: change 167Rank: minor 168Issue: 63 169Thanks: Markus Elfring 170[DESCRIPTION] 171Remove usages of reserved identifiers such as __GECODE_KERNEL_HH__ and 172_View. 173[MORE] 174Gecode used to use include guards of the form __GECODE_KERNEL_HH__. 175Using a double underscore in an identifier is reserved, and thus 176undefined behaviour. Use guards of the form GECODE_KERNEL_HH instead. 177Similarly, names with a single leading underscore followed by a 178capital letter are also reserved, and usage is thus undefined 179behaviour, and are removed. 180 181[ENTRY] 182Module: flatzinc 183What: new 184Rank: minor 185[DESCRIPTION] 186Add MiniZinc constraint names to FlatZinc errors when applicable and 187available. 188[MORE] 189A constraint name is specified in MiniZinc using a string annotation 190"my name" on the constraint item, and is translated into FlatZinc 191using the mzn_constraint_name("my name"). 192 193[ENTRY] 194Module: flatzinc 195What: bug 196Rank: minor 197[DESCRIPTION] 198The cumulative constraint now respects the semantics of the MiniZinc 199definition for 0-duration tasks. 200 201[ENTRY] 202Module: flatzinc 203What: bug 204Rank: minor 205[DESCRIPTION] 206The roots and int_set_channel constraints now work for empty sets and arrays. 207 208[ENTRY] 209Module: flatzinc 210What: change 211Rank: minor 212[DESCRIPTION] 213The MiniZinc global constraint library has been updated for MiniZinc 214version 2.3.0 and higher, taking advantage of the new library 215structure that separates the modelling-level definition of a predicate 216from the solver-level one. 217 218[ENTRY] 219Module: minimodel 220What: change 221Rank: minor 222Thanks: Marco Correia 223[DESCRIPTION] 224Do not require that cost for FloatMinimizeSpace (use the maximum 225instead) and FloatMaximizeSpace (use the minimum instead) must be 226assigned. 227 228[ENTRY] 229Module: kernel 230What: bug 231Rank: minor 232Thanks: Konstantin Popov 233[DESCRIPTION] 234Fixed crash when killing the last propagator in a space. 235 236[ENTRY] 237Module: example 238What: bug 239Rank: minor 240Thanks: Florian Fontan 241[DESCRIPTION] 242Do not use size-based symmetry breaking together with CDBF. 243 244[ENTRY] 245Module: kernel 246What: change 247Rank: minor 248Thanks: John W. Spirent 249[DESCRIPTION] 250Some small changes to compile with MSVC 2015 again. 251 252[ENTRY] 253Module: int 254What: change 255Rank: minor 256Thanks: John W. Spirent 257[DESCRIPTION] 258Some small changes to compile with MSVC 2015 again. 259 260[ENTRY] 261Module: set 262What: change 263Rank: minor 264Thanks: John W. Spirent 265[DESCRIPTION] 266Some small changes to compile with MSVC 2015 again. 267 268[ENTRY] 269Module: set 270What: bug 271Rank: minor 272Thanks: Mats Carlsson 273[DESCRIPTION] 274Fix bool-set channel propagator to work correctly when posted 275with a fixed set variable. 276 277[ENTRY] 278Module: flatzinc 279What: change 280Rank: minor 281Thanks: Jip J. Dekker 282[DESCRIPTION] 283Update the error produced by the FlatZinc parser when an integer 284literal is outside Gecode's integer limits. 285 286[ENTRY] 287Module: flatzinc 288What: change 289Rank: minor 290[DESCRIPTION] 291The number of nodes and failures is now of type unsigned long 292long int. Time is now consistently of type double. 293 294[ENTRY] 295Module: driver 296What: change 297Rank: minor 298[DESCRIPTION] 299The number of propagations, nodes, and failures is now of type 300unsigned long long int. Time is now consistently of type double. 301 302[ENTRY] 303Module: search 304What: change 305Rank: minor 306[DESCRIPTION] 307The number of nodes and failures in statistics is now of type 308unsigned long long int. Time is now consistently of type double. 309 310[ENTRY] 311Module: kernel 312What: change 313Rank: minor 314[DESCRIPTION] 315The number of propagations in statistics is now of type unsigned 316long long int. 317 318[ENTRY] 319Module: search 320What: bug 321Rank: minor 322[DESCRIPTION] 323The linear cutoff generator started at zero rather than at the 324scale factor. 325 326[ENTRY] 327Module: kernel 328What: new 329Rank: minor 330[DESCRIPTION] 331For action-based branching heuristics, one can now define whether 332failure, propagation, or both should be considered. 333 334[RELEASE] 335Version: 6.2.0 336Date: 2019-04-12 337[DESCRIPTION] 338The release enables half-reification in FlatZinc, fixes 339indeterminstic behavior for shared branching criteria, and fixes 340several aspects for general tracers. It is recommended to upgrade 341as soon as possible. 342 343[ENTRY] 344Module: flatzinc 345What: change 346Rank: minor 347Thanks: Jip J. Dekker 348[DESCRIPTION] 349Enable support for half-reified constraints in the Gecode MiniZinc 350library. Half-reified constraints are used when a MiniZinc 351expression has to be reified and is detected to be in a positive 352context. If no Half-reified constraint has been made available by 353solver, the full reification will be used. Half-reifed constraints 354in the MiniZinc solver library are declared in the same way as 355reified constraints, but are appended by "_imp" instead of "_reif". 356 357[ENTRY] 358Module: kernel 359What: bug 360Rank: major 361[DESCRIPTION] 362For the combination of some constraints (min, max, nvalues, and 363some constraints over Boolean variables) with shared variable 364selection branching (that is, AFC, Action, and CHB) the behavior 365of Gecode was indeterminstic. The indeterminism was based on 366using memory addresses for determining the order of variables in 367some propagators which in turn affected which propagator might 368record failure first and hence influenced the branching decisions. 369 370[ENTRY] 371Module: int 372What: bug 373Rank: major 374[DESCRIPTION] 375For the combination of binpacking and linear constraints with 376shared variable selection branching (that is, AFC, Action, and 377CHB) the behavior of Gecode was indeterminstic. The indeterminism 378was based on using memory addresses for determining the order of 379variables which in turn affected which propagator might record 380failure first and hence influenced the branching decisions. 381 382[ENTRY] 383Module: example 384What: new 385Rank: minor 386[DESCRIPTION] 387Added job-shop scheduling example. 388 389[ENTRY] 390Module: int 391What: new 392Rank: minor 393[DESCRIPTION] 394Added order constraint for two unary scheduling tasks. 395 396[ENTRY] 397Module: flatzinc 398What: new 399Rank: minor 400[DESCRIPTION] 401Support minimum_arg_bool and maximum_arg_bool constraints. 402 403[ENTRY] 404Module: flatzinc 405What: change 406Rank: minor 407[DESCRIPTION] 408Use native offset calculation instead of additional constraints 409for argmin/argmax constraints. 410 411[ENTRY] 412Module: int 413What: new 414Rank: minor 415[DESCRIPTION] 416Add BoolVar versions of argmax and argmin. 417 418[ENTRY] 419Module: kernel 420What: change 421Rank: major 422Thanks: Conrad Drescher 423[DESCRIPTION] 424The logic for recording events for general tracers was seriously 425broken as events after a call to status() have been ignored. 426 427[ENTRY] 428Module: float 429What: bug 430Rank: minor 431Thanks: Kurt Van Den Branden 432[DESCRIPTION] 433Restore floating point rounding mode under Windows. 434 435[ENTRY] 436Module: kernel 437What: change 438Rank: minor 439Thanks: Conrad Drescher 440[DESCRIPTION] 441Added TE_POST for default arguments for general tracers. 442 443[ENTRY] 444Module: search 445What: removed 446Rank: minor 447[DESCRIPTION] 448The special constructors for PBS with up to four SEB's have been 449removed. Use the SEBs class instead. 450 451[ENTRY] 452Module: int 453What: new 454Rank: major 455[DESCRIPTION] 456Variables to be assigned during search can now be selected with 457all available selection criteria available for branching. 458 459[ENTRY] 460Module: int 461What: new 462Rank: minor 463[DESCRIPTION] 464Omitting the variable selection criterion is equivalent to 465INT_VAR_NONE(). 466 467[ENTRY] 468Module: set 469What: new 470Rank: major 471[DESCRIPTION] 472Variables to be assigned during search can now be selected with 473all available selection criteria available for branching. 474 475[ENTRY] 476Module: set 477What: new 478Rank: minor 479[DESCRIPTION] 480Omitting the variable selection criterion is equivalent to 481SET_VAR_NONE(). 482 483[ENTRY] 484Module: float 485What: new 486Rank: major 487[DESCRIPTION] 488Variables to be assigned during search can now be selected with 489all available selection criteria available for branching. 490 491[ENTRY] 492Module: float 493What: new 494Rank: minor 495[DESCRIPTION] 496Omitting the variable selection criterion is equivalent to 497FLOAT_VAR_NONE(). 498 499 500[RELEASE] 501Version: 6.1.1 502Date: 2019-02-14 503[DESCRIPTION] 504This release fixes a number of minor issues and adds post events 505to general tracers. 506 507[ENTRY] 508Module: flatzinc 509What: bug 510Rank: minor 511[DESCRIPTION] 512Change table and regular predicates to take 1d arrays as arguments. 513Otherwise the generated FlatZinc does not typecheck. 514 515[ENTRY] 516Module: flatzinc 517What: bug 518Rank: minor 519[DESCRIPTION] 520Add colon to statistics output to conform with FlatZinc specification. 521 522[ENTRY] 523Module: kernel 524What: bug 525Rank: minor 526Thanks: Conrad Drescher 527[DESCRIPTION] 528Use locks to guard mutexes in case tracers throw exceptions. 529 530[ENTRY] 531Module: search 532What: bug 533Rank: minor 534Thanks: Conrad Drescher 535[DESCRIPTION] 536Use locks to guard mutexes in case tracers throw exceptions. 537 538[ENTRY] 539Module: minimodel 540What: bug 541Rank: minor 542Thanks: Conrad Drescher 543[DESCRIPTION] 544exp(0.0) now correctly evaluates to 1.0 (and not 0.0). 545 546[ENTRY] 547Module: int 548What: changed 549Rank: minor 550Thanks: Jens Krueger 551[DESCRIPTION] 552All constructors and the bool test operator of IntSet have been 553made explicit to avoid unintended behavior. 554 555[ENTRY] 556Module: other 557What: new 558Rank: minor 559Thanks: Jip J. Dekker 560[DESCRIPTION] 561Added installation target to the CMake configuration. 562 563[ENTRY] 564Module: other 565What: change 566Rank: minor 567[DESCRIPTION] 568Fix compilation problems with the Microsoft Visual Studio IDE 569which uses -permissive- as default, rather than -permissive as 570cl.exe does. 571 572[ENTRY] 573Module: kernel 574What: new 575Rank: major 576[DESCRIPTION] 577General tracers now support post events, see MPG for details. 578 579[ENTRY] 580Module: other 581What: change 582Rank: minor 583Thanks: Jip J. Dekker 584[DESCRIPTION] 585Removed the use of glibc macros in the architecture selection 586process of the boost interval library. This allows for the 587compilation on unix machines based on a different implementation 588of the C library. 589 590[ENTRY] 591Module: example 592What: new 593Rank: minor 594Author: Samuel Gagnon 595[DESCRIPTION] 596Added example for magic squares with pre-filled instances. 597 598[ENTRY] 599Module: kernel 600What: bug 601Rank: minor 602Author: Conrad Drescher, Patrick Zimmer 603[DESCRIPTION] 604Fixed potential deadlock when memory has been exhausted. 605 606[RELEASE] 607Version: 6.1.0 608Date: 2018-10-17 609[DESCRIPTION] 610This release adds reified extensional constraints; support for 611negative tables; experimental support for counting-based search 612(thanks to Samuel Gagnon); and support for standard C++ 613initializer lists. In addition, the release has lots of bug fixes 614and performance improvements. It is highly recommended to switch 615as soon as possible! 616 617[ENTRY] 618Module: search 619What: change 620Rank: minor 621[DESCRIPTION] 622Support for the CPProfiler is now enabled by default. 623 624[ENTRY] 625Module: int 626What: change 627Rank: minor 628Thanks: Sara Frimodig 629[DESCRIPTION] 630The default propagation for unary has been too weak (likely to 631hurt Gecode in the MiniZinc competitions of 2017 and 2018), 632now the default is back to maximal propagation. 633 634[ENTRY] 635Module: minimodel 636What: bug 637Rank: minor 638Thanks: Matthias Balzer 639[DESCRIPTION] 640Take exponent into account for float expressions with pow 641and nroot. 642 643[ENTRY] 644Module: kernel 645What: change 646Rank: minor 647Thanks: Rui Machado, Jens Krüger 648[DESCRIPTION] 649The alignment of memory allocated from a Region is now as 650prescribed by the maximum of std::max_align_t and 651GECODE_MEMORY_ALIGNMENT (which can be re-defined). Please also check 652MPG for a tip on alignment of memory handeled by Gecode. 653 654[ENTRY] 655Module: flatzinc 656What: new 657Rank: major 658[DESCRIPTION] 659Added native support for reified extensional table constraints. 660 661[ENTRY] 662Module: int 663What: new 664Rank: major 665[DESCRIPTION] 666Added support for reified extensional table constraints. 667 668[ENTRY] 669Module: int 670What: new 671Rank: major 672[DESCRIPTION] 673Added support for negative table for extensional table 674constraints. 675 676[ENTRY] 677Module: int 678What: bug 679Rank: major 680[DESCRIPTION] 681Fixed scheduling for Boolean variables (funnily, only occured 682with a newly added propagator). 683 684[ENTRY] 685Module: kernel 686What: bug 687Rank: minor 688[DESCRIPTION] 689Added missing definitions for declarations of creating Home 690objects from spaces with propagator and brancher groups. 691 692[ENTRY] 693Module: int 694What: new 695Rank: major 696Author: Samuel Gagnon 697[DESCRIPTION] 698Added experimental support for counting-based search. It can be 699enabled by running configure with --enable-cbs. See 700examples/qcp.cpp for an example. 701 702[ENTRY] 703Module: minimodel 704What: bug 705Rank: major 706Thanks: Robin Eklind 707[DESCRIPTION] 708Fixed fall through bug for set expressions. 709 710[ENTRY] 711Module: int 712What: performance 713Rank: minor 714[DESCRIPTION] 715Improved performance of tuple-set extensional constraints by 716maybe 15-20% through reordering loops. 717 718[ENTRY] 719Module: flatzinc 720What: change 721Rank: minor 722[DESCRIPTION] 723Add -t command line option to fzn-gecode, to support new unified 724time limit command line option for FlatZinc solvers. 725 726[ENTRY] 727Module: kernel 728What: change 729Rank: major 730[DESCRIPTION] 731The function shared() for testing whether a view occurs in an 732array or whether two arrays contain at least on shared view is no 733a simple function and not a member function (which means, use 734shared(x,y) instead of x.shared(y)). 735 736[ENTRY] 737Module: kernel 738What: removed 739Rank: major 740[DESCRIPTION] 741Variables cannot any longer be compared by same() and 742before(). If you want to compare two variables x and y whether 743they are identical, use x.varimp() == y.varimp(). 744 745[ENTRY] 746Module: int 747What: removed 748Rank: major 749[DESCRIPTION] 750Variables cannot any longer be compared by same() and 751before(). If you want to compare two variables x and y whether 752they are identical, use x.varimp() == y.varimp(). 753 754[ENTRY] 755Module: set 756What: removed 757Rank: major 758[DESCRIPTION] 759Variables cannot any longer be compared by same() and 760before(). If you want to compare two variables x and y whether 761they are identical, use x.varimp() == y.varimp(). 762 763[ENTRY] 764Module: float 765What: removed 766Rank: major 767[DESCRIPTION] 768Variables cannot any longer be compared by same() and 769before(). If you want to compare two variables x and y whether 770they are identical, use x.varimp() == y.varimp(). 771 772[ENTRY] 773Module: kernel 774What: change 775Rank: major 776[DESCRIPTION] 777Views now are compared by the standard C++ operators "==", "!=", 778and "<" (this replaces the same and before functions). 779 780[ENTRY] 781Module: int 782What: change 783Rank: major 784[DESCRIPTION] 785Views now are compared by the standard C++ operators "==", "!=", 786and "<" (this replaces the same and before functions). 787 788[ENTRY] 789Module: set 790What: change 791Rank: major 792[DESCRIPTION] 793Views now are compared by the standard C++ operators "==", "!=", 794and "<" (this replaces the same and before functions). 795 796[ENTRY] 797Module: float 798What: change 799Rank: major 800[DESCRIPTION] 801Views now are compared by the standard C++ operators "==", "!=", 802and "<" (this replaces the same and before functions). 803 804[ENTRY] 805Module: kernel 806What: bug 807Rank: minor 808[DESCRIPTION] 809The SharedArray class now has an equality operator. This fixes 810a problem in the FlatZinc interpreter, which is keeping a hash 811set of arrays that relies on the equality test. 812 813[ENTRY] 814Module: int 815What: change 816Rank: major 817[DESCRIPTION] 818The add function of TupleSet now supports standard initializer 819lists but do not any longer support variable argument lists (as 820the combination is really confusing). 821 822[ENTRY] 823Module: int 824What: change 825Rank: major 826[DESCRIPTION] 827IntArgs now support standard initializer lists but do not any 828longer support variable argument lists (as the combination is 829really confusing). Now one can write IntArgs c({1,2,3}) for 830example. 831 832[ENTRY] 833Module: int 834What: new 835Rank: minor 836[DESCRIPTION] 837DFAs now support standard initializer lists. 838 839[ENTRY] 840Module: int 841What: new 842Rank: minor 843[DESCRIPTION] 844IntSets now support standard initializer lists, for both 845individual elements (for example, IntSet s({1,2,3})) as well as 846ranges (for example, IntSet s({{1,2},{6,9}})). 847 848[ENTRY] 849Module: int 850What: new 851Rank: minor 852[DESCRIPTION] 853Integer and Boolean variable argument arrays now support standard 854initializer lists. 855 856[ENTRY] 857Module: set 858What: new 859Rank: minor 860[DESCRIPTION] 861Set variable argument arrays now support standard initializer 862lists. 863 864[ENTRY] 865Module: float 866What: new 867Rank: minor 868[DESCRIPTION] 869Float variable argument arrays now support standard initializer 870lists. 871 872[ENTRY] 873Module: search 874What: change 875Rank: major 876[DESCRIPTION] 877SEBs now support standard initializer lists but do not any 878longer support variable argument lists (as the combination is 879really confusing). 880 881 882[RELEASE] 883Version: 6.0.1 884Date: 2018-05-21 885[DESCRIPTION] 886Contains a number of small fixes and one large fix for float 887variables (basically, minimodel using float variables would 888always lead to overflow and hence throw an exception). 889 890[ENTRY] 891Module: float 892What: change 893Rank: major 894Thanks: Kurt Van Den Branden 895[DESCRIPTION] 896All constraints over float variables now constrain their 897variables when being posted to avoid overflow. 898 899[ENTRY] 900Module: float 901What: change 902Rank: minor 903[DESCRIPTION] 904The interval for a float value is now printed between "[" and 905"]", whereas the interval for a float variable is printed between 906"[[" and "]]". 907 908[ENTRY] 909Module: float 910What: bug 911Rank: minor 912[DESCRIPTION] 913Float values could not be printed. 914 915[ENTRY] 916Module: minimodel 917What: bug 918Rank: minor 919Thanks: Matthias Balzer 920[DESCRIPTION] 921Fixed strict inequalities for Float relations. 922 923[ENTRY] 924Module: support 925What: bug 926Rank: minor 927Thanks: Kari Pahula 928[DESCRIPTION] 929Fixed compilation problem on 32 bit platforms. 930 931[ENTRY] 932Module: flatzinc 933What: bug 934Rank: minor 935Thanks: Jip J. Dekker 936[DESCRIPTION] 937Fixed the initialisation of the random number generator for the 938FlatZinc executable. This fix ensures the generator is always 939initialised. 940 941[ENTRY] 942Module: support 943What: change 944Rank: minor 945[DESCRIPTION] 946Detect is os_unfair_lock is available at runtime, in order to be able 947to support older versions of macOS in the same binaries. 948 949[ENTRY] 950Module: flatzinc 951What: change 952Rank: minor 953[DESCRIPTION] 954Add support for annotations to control restart strategy. 955 956[RELEASE] 957Version: 6.0.0 958Date: 2018-02-23 959[DESCRIPTION] 960This major release fixes many bugs, adds quite some new 961functionality, and changes how cloning works (most likely the 962biggest change we ever did to %Gecode): the Boolean share argument 963is not any longer needed (see how to change your programs in 964\ref PageHowToChange_6 "How to Change to Gecode 6.0.0"). The added 965functionality includes experimental support for the CPProfiler, 966classes for lexicographic optimization (where the cost is defined 967by an array of variables), a new much faster implementation of 968extensional constraints using tuple sets, and support for tracing 969search engines. 970 971[ENTRY] 972Module: search 973What: bug 974Rank: minor 975[DESCRIPTION] 976The statistics for parallel search engines was wrong. 977 978[ENTRY] 979Module: search 980What: bug 981Rank: major 982[DESCRIPTION] 983Fixed several race conditions during the termination of parallel 984search engines. 985 986[ENTRY] 987Module: support 988What: change 989Rank: minor 990[DESCRIPTION] 991Replace deprecated OSSpinLock with os_unfair_lock on newer versions 992of macOS. 993 994[ENTRY] 995Module: search 996What: bug 997Rank: major 998[DESCRIPTION] 999A sequential portfolio ignored stop objects in certain cases. 1000 1001[ENTRY] 1002Module: flatzinc 1003What: change 1004Rank: minor 1005[DESCRIPTION] 1006Share tables for extensional (table) constraints, DFAs for regular 1007constraints, and arrays of constants for element constraints. 1008 1009[ENTRY] 1010Module: flatzinc 1011What: change 1012Rank: minor 1013[DESCRIPTION] 1014Change default propagation level to bounds propagation for global 1015cardinality constraints. 1016 1017[ENTRY] 1018Module: support 1019What: change 1020Rank: minor 1021[DESCRIPTION] 1022Bitsets now use 64 bit integers on all 64 bit architectures. 1023 1024[ENTRY] 1025Module: search 1026What: new 1027Rank: major 1028Author: Kevin Leo, Maxim Shishmarev 1029[DESCRIPTION] 1030Added experimental support for the CPProfiler, see MPG for 1031details. This is only enabled, if Gecode has been configured with 1032the option --enable-cpprofiler. 1033 1034[ENTRY] 1035Module: driver 1036What: new 1037Rank: major 1038[DESCRIPTION] 1039A new mode "-mode cpprofiler" and several command-line arguments 1040-cpprofiler-* have been added to connect Gecode to the 1041CPProfiler. For more details, see MPG. 1042 1043[ENTRY] 1044Module: driver 1045What: change 1046Rank: major 1047[DESCRIPTION] 1048No hyphen must be given for a command line switch and both "-" 1049and "--" are automatically added. 1050 1051[ENTRY] 1052Module: int 1053What: change 1054Rank: minor 1055[DESCRIPTION] 1056When posting a simple linear constraint (only two variables with 1057unit coefficients) with default integer propagation level, a 1058domain consistent propagator is posted. Now a domain consistent 1059propagator is always posted if the right-hand side constant is 1060zero and otherwise if the computations required can be done with 1061normal integers. 1062 1063[ENTRY] 1064Module: float 1065What: bug 1066Rank: minor 1067Thanks: Matthias Balzer 1068[DESCRIPTION] 1069Linear constraints now check whether constant coefficients have 1070mixed signs (include zero) and throw an exception if yes. 1071 1072[ENTRY] 1073Module: float 1074What: bug 1075Rank: major 1076Thanks: Matthias Balzer 1077[DESCRIPTION] 1078Linear constraints now check properly for numerical overflow. 1079 1080[ENTRY] 1081Module: flatzinc 1082What: change 1083Rank: minor 1084[DESCRIPTION] 1085Add redefinition of disjunctive_strict in terms of cumulative. 1086 1087[ENTRY] 1088Module: driver 1089What: new 1090Rank: major 1091Thanks: Roberto Castañeda Lozano 1092[DESCRIPTION] 1093Added IntLexMinimizeScript and IntLexMaximizeScript for 1094lexicographic optimization. 1095 1096[ENTRY] 1097Module: minimodel 1098What: new 1099Rank: major 1100Thanks: Roberto Castañeda Lozano 1101[DESCRIPTION] 1102Added IntLexMinimizeSpace and IntLexMaximizeSpace for 1103lexicographic optimization. 1104 1105[ENTRY] 1106Module: driver 1107What: removed 1108Rank: minor 1109[DESCRIPTION] 1110Removed the deprecated classes MinimizeScript and MaximizeScript 1111(use IntMinimizeScript and IntMaximizeScript instead). 1112 1113[ENTRY] 1114Module: minimodel 1115What: removed 1116Rank: minor 1117[DESCRIPTION] 1118Removed the deprecated classes MinimizeSpace and MaximizeSpace 1119(use IntMinimizeSpace and IntMaximizeSpace instead). 1120 1121[ENTRY] 1122Module: int 1123What: new 1124Rank: major 1125Author: Linnea Ingmar 1126[DESCRIPTION] 1127Tuple sets can be initialized from DFAs (and hence regular 1128expressions). 1129 1130[ENTRY] 1131Module: int 1132What: bug 1133Rank: minor 1134Thanks: Peter Stuckey 1135[DESCRIPTION] 1136Perform unsharing even in failed spaces to avoid exceptions in 1137later constraint posting. 1138 1139[ENTRY] 1140Module: minimodel 1141What: new 1142Rank: major 1143Author: Matthias Balzer 1144[DESCRIPTION] 1145Added reified dom-expressions. 1146 1147[ENTRY] 1148Module: minimodel 1149What: new 1150Rank: major 1151Author: Matthias Balzer 1152[DESCRIPTION] 1153Added relations between integer and set expressions. 1154 1155[ENTRY] 1156Module: flatzinc 1157What: bug 1158Rank: major 1159Thanks: Andreas Schutt 1160[DESCRIPTION] 1161Fix syntax errors in definitions of global cardinality predicates. 1162 1163[ENTRY] 1164Module: flatzinc 1165What: change 1166Rank: minor 1167[DESCRIPTION] 1168Make mzn-gecode script use mzn-fzn if minizinc driver is not present. 1169 1170[ENTRY] 1171Module: flatzinc 1172What: change 1173Rank: minor 1174Thanks: Andreas Schutt 1175[DESCRIPTION] 1176Add support for int_pow predicate. 1177 1178[ENTRY] 1179Module: int 1180What: change 1181Rank: minor 1182[DESCRIPTION] 1183Changed accuracy of delta information for integer views (now, all 1184values between new and old lower/upper bound are reported as 1185being discarded). 1186 1187[ENTRY] 1188Module: int 1189What: bug 1190Rank: minor 1191[DESCRIPTION] 1192Tuple sets used for Boolean variables are allowed to contain only 1193zeros and ones as values. 1194 1195[ENTRY] 1196Module: int 1197What: removed 1198Rank: major 1199[DESCRIPTION] 1200Removed IPL_SPEED and IPL_MEMORY as they are not any longer needed. 1201 1202[ENTRY] 1203Module: int 1204What: change 1205Rank: major 1206[DESCRIPTION] 1207Re-implemented tuple sets for simplicity and ease of use. Please 1208see MPG for details. 1209 1210[ENTRY] 1211Module: int 1212What: change 1213Rank: major 1214Author: Linnea Ingmar 1215[DESCRIPTION] 1216Replaced extensional implementation by a single implementation 1217based on the compact-table propagator described in: 1218J. Demeulenaere et. al., Compact-Table: Efficiently filtering 1219table constraints with reversible sparse bit-sets, CP 2016. Pages 1220207-223, LNCS, Springer, 2016. The extensional propagator runs up 1221to ten times faster than the old implementations. 1222 1223[ENTRY] 1224Module: kernel 1225What: bug 1226Rank: major 1227[DESCRIPTION] 1228Fixed virtual method table overwrite bug for Action and CHB. 1229 1230[ENTRY] 1231Module: search 1232What: bug 1233Rank: major 1234[DESCRIPTION] 1235Fixed double deletion bug in parallel portfolio-based search. 1236 1237[ENTRY] 1238Module: int 1239What: bug 1240Rank: minor 1241Thanks: Massimo Morara 1242[DESCRIPTION] 1243Fixed printing of group information for tracing. 1244 1245[ENTRY] 1246Module: float 1247What: bug 1248Rank: minor 1249Thanks: Massimo Morara 1250[DESCRIPTION] 1251Fixed printing of group information for tracing. 1252 1253[ENTRY] 1254Module: set 1255What: bug 1256Rank: minor 1257Thanks: Massimo Morara 1258[DESCRIPTION] 1259Fixed printing of group information for tracing. 1260 1261[ENTRY] 1262Module: kernel 1263What: new 1264Rank: minor 1265[DESCRIPTION] 1266Now it can be controlled by an Boolean argument whether AFC 1267information between spaces is shared or not. 1268 1269[ENTRY] 1270Module: int 1271What: new 1272Rank: minor 1273[DESCRIPTION] 1274Now it can be controlled by an Boolean argument whether AFC 1275information between spaces is shared or not. 1276 1277[ENTRY] 1278Module: set 1279What: new 1280Rank: minor 1281[DESCRIPTION] 1282Now it can be controlled by an Boolean argument whether AFC 1283information between spaces is shared or not. 1284 1285[ENTRY] 1286Module: float 1287What: new 1288Rank: minor 1289[DESCRIPTION] 1290Now it can be controlled by an Boolean argument whether AFC 1291information between spaces is shared or not. 1292 1293[ENTRY] 1294Module: int 1295What: bug 1296Rank: major 1297Thanks: Conrad Drescher 1298[DESCRIPTION] 1299The bounds propagator for abs is now bounds consistent. 1300 1301[ENTRY] 1302Module: set 1303What: new 1304Rank: minor 1305Thanks: Conrad Drescher 1306[DESCRIPTION] 1307Added checks to avoid posting set relation propagators in case 1308their variables are in fact the same. 1309 1310[ENTRY] 1311Module: search 1312What: bug 1313Rank: minor 1314[DESCRIPTION] 1315Fixed a potential memory leak for restart-based search when the 1316root space was failed. 1317 1318[ENTRY] 1319Module: kernel 1320What: removed 1321Rank: minor 1322[DESCRIPTION] 1323Choices do not need to implement a size function. 1324 1325[ENTRY] 1326Module: flatzinc 1327What: change 1328Rank: major 1329Thanks: Maxim Shishmarev 1330[DESCRIPTION] 1331Added support for tracing search engines. 1332 1333[ENTRY] 1334Module: flatzinc 1335What: bug 1336Rank: minor 1337Thanks: Andreas Schutt 1338[DESCRIPTION] 1339Fixed declarations of table_int and table_bool constraints. 1340 1341[ENTRY] 1342Module: kernel 1343What: change 1344Rank: major 1345[DESCRIPTION] 1346Shared handles and objects used to implement most shared data 1347structures in Gecode are thread safe now. In most cases they are 1348lock free. 1349 1350[ENTRY] 1351Module: kernel 1352What: change 1353Rank: major 1354[DESCRIPTION] 1355The Boolean share argument during cloning is not any longer needed. 1356 1357[ENTRY] 1358Module: kernel 1359What: bug 1360Rank: minor 1361[DESCRIPTION] 1362During unsharing of AFC information also the propagator 1363identifiers were changed. 1364 1365[ENTRY] 1366Module: kernel 1367What: change 1368Rank: major 1369[DESCRIPTION] 1370The unsharing of AFC information during cloning is not any longer 1371needed as it happens automatically when a new AFC object is 1372created. 1373 1374[ENTRY] 1375Module: kernel 1376What: new 1377Rank: minor 1378[DESCRIPTION] 1379Regions can be freed without destroying them. Consult MPG for 1380details. 1381 1382[ENTRY] 1383Module: kernel 1384What: change 1385Rank: major 1386[DESCRIPTION] 1387Regions are now created independently of a space and the policy 1388using several regions simultaneously has changed. Consult MPG for 1389details. 1390 1391[ENTRY] 1392Module: search 1393What: bug 1394Rank: major 1395[DESCRIPTION] 1396Fixed a race condition in portfolio-based search. 1397 1398[ENTRY] 1399Module: int 1400What: bug 1401Rank: major 1402[DESCRIPTION] 1403For Boolean variables, an initialized BoolCHB in branching was ignored. 1404 1405[ENTRY] 1406Module: driver 1407What: bug 1408Rank: minor 1409[DESCRIPTION] 1410The -slice commandline option for sequential portfolios is not 1411ignored any longer. 1412 1413 1414[RELEASE] 1415Version: 5.1.0 1416Date: 2017-04-18 1417[DESCRIPTION] 1418This is a rather major release, fixing a number of bugs and 1419adding quite a number of new features. Some of the features 1420require changes to your models. 1421 1422In more detail: extended tracing so that all propagator 1423executions and commit operations can be traced; renamed activity 1424to action to avoid confusion with activity in SAT (and fixed that 1425action information is also recorded during failure); added CHB 1426(conflict-history based branching) heuristic; optimized AFC; all 1427functions taken as arguments by Gecode are now based on 1428std::function-types; instead of branching with INT_VAR_* and 1429INT_VAL_* for Boolean variables, BOOL_VAR_* and BOOL_VAL_* must 1430be used. There are a number of additional changes, so you might 1431want to read the whole changelog. 1432 1433[ENTRY] 1434Module: flatzinc 1435What: bug 1436Rank: minor 1437[DESCRIPTION] 1438Some FlatZinc constraints were not guarded with assertions, which could make 1439Gecode crash on incorrect models. 1440 1441[ENTRY] 1442Module: kernel 1443What: removed 1444Rank: minor 1445[DESCRIPTION] 1446Choices do not need to implement a size() member function (unused 1447since years). 1448 1449[ENTRY] 1450Module: float 1451What: bug 1452Rank: major 1453[DESCRIPTION] 1454The right-hand side of a linear constraint was a number rather 1455than a value (FloatNum rather than FloatVal) leading to rounding 1456errors. 1457 1458[ENTRY] 1459Module: search 1460What: bug 1461Rank: major 1462[DESCRIPTION] 1463Fixed crashes in sequential and parallel portfolios using 1464parallel or restart-based best solution search engines as assets. 1465 1466[ENTRY] 1467Module: kernel 1468What: new 1469Rank: major 1470[DESCRIPTION] 1471Trace recorders have been renamed to variable (or view) trace 1472recorders. New trace recorders have been added that can trace 1473all propagate and commit operations. See MPG for details. 1474 1475[ENTRY] 1476Module: kernel 1477What: new 1478Rank: minor 1479[DESCRIPTION] 1480Tracing now also records failure-events, see MPG for details. 1481 1482[ENTRY] 1483Module: int 1484What: new 1485Rank: minor 1486[DESCRIPTION] 1487Tracing now also records failure-events, see MPG for details. 1488 1489[ENTRY] 1490Module: float 1491What: new 1492Rank: minor 1493[DESCRIPTION] 1494Tracing now also records failure-events, see MPG for details. 1495 1496[ENTRY] 1497Module: set 1498What: new 1499Rank: minor 1500[DESCRIPTION] 1501Tracing now also records failure-events, see MPG for details. 1502 1503[ENTRY] 1504Module: int 1505What: changed 1506Rank: minor 1507Thanks: Conrad Drescher 1508[DESCRIPTION] 1509When posting a simple linear constraint (only two variables with 1510unit coefficients) with default integer propagation level, a 1511domain consistent propagator is posted. 1512 1513[ENTRY] 1514Module: int 1515What: removed 1516Rank: minor 1517[DESCRIPTION] 1518The integer value selections INT_VAL_NEAR_MIN(), 1519INT_VAL_NEAR_MAX(), INT_VAL_NEAR_INC(), and INT_VAL_NEAR_DEC() 1520have been removed. It is much better to use LNS (large 1521neighbourhood search), see MPG for details. 1522 1523[ENTRY] 1524Module: set 1525What: new 1526Rank: minor 1527[DESCRIPTION] 1528Added reified versions of relation constraints between a set and 1529an integer variable. 1530 1531[ENTRY] 1532Module: example 1533What: change 1534Rank: minor 1535[DESCRIPTION] 1536The Social golfers example now includes a model variant that uses 1537integer distinct for ensuring all player-pairs are distinct. 1538 1539[ENTRY] 1540Module: kernel 1541What: change 1542Rank: minor 1543[DESCRIPTION] 1544Replaced initialized() function by operator bool() for RND, 1545Action, AFC, CHB. 1546 1547[ENTRY] 1548Module: set 1549What: new 1550Rank: minor 1551[DESCRIPTION] 1552Added reified cardinality() constraint. 1553 1554[ENTRY] 1555Module: kernel 1556What: change 1557Rank: minor 1558[DESCRIPTION] 1559Disabled propagators can be disabled again (convenience). 1560 1561[ENTRY] 1562Module: other 1563What: change 1564Rank: major 1565[DESCRIPTION] 1566Gecode requires now at least the Microsoft Visual Studio 2013 compiler. 1567 1568[ENTRY] 1569Module: kernel 1570What: new 1571Rank: major 1572[DESCRIPTION] 1573Added support for CHB (conflict-history based branching) 1574heuristic for branching. 1575 1576[ENTRY] 1577Module: int 1578What: new 1579Rank: major 1580[DESCRIPTION] 1581Added support for CHB (conflict-history based branching) 1582heuristic for branching. See MPG for details. 1583 1584[ENTRY] 1585Module: set 1586What: new 1587Rank: major 1588[DESCRIPTION] 1589Added support for CHB (conflict-history based branching) 1590heuristic for branching. See MPG for details. 1591 1592[ENTRY] 1593Module: float 1594What: new 1595Rank: major 1596[DESCRIPTION] 1597Added support for CHB (conflict-history based branching) 1598heuristic for branching. See MPG for details. 1599 1600[ENTRY] 1601Module: kernel 1602What: changed 1603Rank: minor 1604[DESCRIPTION] 1605Do not count number of weakly monotonic propagators, nobody used 1606it anyway. 1607 1608[ENTRY] 1609Module: kernel 1610What: bug 1611Rank: major 1612[DESCRIPTION] 1613Computing the afc for an assigned variable would crash. 1614 1615[ENTRY] 1616Module: kernel 1617What: change 1618Rank: major 1619[DESCRIPTION] 1620Reimplemented the infrastructure to record AFC, much simpler and 1621much faster. 1622 1623[ENTRY] 1624Module: kernel 1625What: change 1626Rank: major 1627[DESCRIPTION] 1628Renamed Activity to Action to avoid confusion with activity in SAT. 1629 1630[ENTRY] 1631Module: int 1632What: change 1633Rank: major 1634[DESCRIPTION] 1635Renamed Activity to Action to avoid confusion with activity in SAT. 1636 1637[ENTRY] 1638Module: set 1639What: change 1640Rank: major 1641[DESCRIPTION] 1642Renamed Activity to Action to avoid confusion with activity in SAT. 1643 1644[ENTRY] 1645Module: float 1646What: change 1647Rank: major 1648[DESCRIPTION] 1649Renamed Activity to Action to avoid confusion with activity in SAT. 1650 1651[ENTRY] 1652Module: kernel 1653What: change 1654Rank: major 1655[DESCRIPTION] 1656Variable implementations are not allowed to return a failed 1657modification event directly (such as in return ME_INT_FAILED;), 1658they need to call the function fail() instead (such as in return 1659fail(home);). 1660 1661[ENTRY] 1662Module: kernel 1663What: change 1664Rank: major 1665[DESCRIPTION] 1666Activity for branching was not counted when propagation lead to a 1667failed space, this is done now. The activity of a variable is now 1668by default initialized to 1. That makes activity actually 1669useful... 1670 1671[ENTRY] 1672Module: kernel 1673What: change 1674Rank: major 1675[DESCRIPTION] 1676Variable implementations do not need to define cancel() 1677functions, the kernel provides generic implementations (this only 1678matters for users implementing their own variables). Also cleaned 1679up some inlining mess which reduces object code size by around 168010%. 1681 1682[ENTRY] 1683Module: kernel 1684What: bug 1685Rank: major 1686[DESCRIPTION] 1687In certain situations the AFC could be incremented twice (could 1688only have occured for linear constraints with Boolean variables 1689and sequence constraints). 1690 1691[ENTRY] 1692Module: int 1693What: changed 1694Rank: major 1695[DESCRIPTION] 1696All branching functions (merit, value, commit, tie-breaking 1697limit, filter, print) can now be of std::function type. 1698 1699[ENTRY] 1700Module: set 1701What: changed 1702Rank: major 1703[DESCRIPTION] 1704All branching functions (merit, value, commit, tie-breaking 1705limit, filter, print) can now be of std::function type. 1706 1707[ENTRY] 1708Module: float 1709What: changed 1710Rank: major 1711[DESCRIPTION] 1712All branching functions (merit, value, commit, tie-breaking 1713limit, filter, print) can now be of std::function type. 1714 1715[ENTRY] 1716Module: kernel 1717What: changed 1718Rank: major 1719[DESCRIPTION] 1720All branching functions (merit, value, commit, tie-breaking 1721limit, filter, print) can now be of std::function type. 1722 1723[ENTRY] 1724Module: int 1725What: change 1726Rank: major 1727[DESCRIPTION] 1728Branching on Boolean variables now requires to use BOOL_VAR_...() 1729and BOOL_VAL_...() functions instead of the INT_... variants. 1730 1731[ENTRY] 1732Module: int 1733What: change 1734Rank: major 1735[DESCRIPTION] 1736Functions passed to wait() and when() can now be of std::function type. 1737 1738[ENTRY] 1739Module: float 1740What: change 1741Rank: major 1742[DESCRIPTION] 1743Functions passed to wait() can now be of std::function type. 1744 1745[ENTRY] 1746Module: set 1747What: change 1748Rank: major 1749[DESCRIPTION] 1750Functions passed to wait() can now be of std::function type. 1751 1752[ENTRY] 1753Module: flatzinc 1754What: bug 1755Rank: minor 1756[DESCRIPTION] 1757Add assertions to regular constraint definition to avoid posting with 1758invalid arguments. 1759 1760[ENTRY] 1761Module: flatzinc 1762What: bug 1763Rank: minor 1764Thanks: David Hotham 1765[DESCRIPTION] 1766Fix parser to work with newer versions of GCC compiler. 1767 1768[ENTRY] 1769Module: support 1770What: new 1771Rank: minor 1772[DESCRIPTION] 1773Added an abstraction RunJobs for executing several jobs in 1774parallel (not officially supported). 1775 1776[ENTRY] 1777Module: float 1778What: new 1779Rank: minor 1780[DESCRIPTION] 1781Added if-then-else constraint (called ite) also for float 1782variables. 1783 1784[ENTRY] 1785Module: set 1786What: new 1787Rank: minor 1788[DESCRIPTION] 1789Added if-then-else constraint (called ite) also for set 1790variables. 1791 1792[ENTRY] 1793Module: int 1794What: new 1795Rank: minor 1796[DESCRIPTION] 1797Added if-then-else constraint (called ite) also for Boolean 1798variables. 1799 1800[ENTRY] 1801Module: int 1802What: new 1803Rank: minor 1804[DESCRIPTION] 1805Relations between arrays now support also a mix between integer 1806(or Boolean) variable array and integer array. 1807 1808[ENTRY] 1809Module: other 1810What: change 1811Rank: minor 1812[DESCRIPTION] 1813Enable C++11 standard on compilers that need an explicit switch. Can be 1814switched off using --disable-cpp11 during configuration. 1815 1816 1817[RELEASE] 1818Version: 5.0.0 1819Date: 2016-10-25 1820[DESCRIPTION] 1821This release adds a number of new features and fixes many bugs 1822(some rather serious), so it is recommended to switch as soon as 1823possible to this release. Some highlights are: re-added limited 1824discrepancy search (LDS); added sequential and parallel 1825portfolio-based search (PBS); added support for groups of 1826propagators and branchers; added extensive tracing functionality 1827based on groups; propagators can be disabled and re-enabled; 1828support for arbitrary memory allocators; changed the notion of 1829"integer consistency level" to the more expressive concept 1830"integer propagation level". 1831 1832It is recommended to read the new Chapter in MPG on groups and 1833tracing. 1834 1835As the interfaces has changed, please consult 1836\ref PageHowToChange_5 "How to Change to Gecode 5.0.0". 1837 1838[ENTRY] 1839Module: set 1840What: bug 1841Rank: minor 1842[DESCRIPTION] 1843Fixed some idempotency problems in the n-ary union and weight propagators. 1844 1845[ENTRY] 1846Module: float 1847What: new 1848Rank: minor 1849[DESCRIPTION] 1850Added relax() function for relaxed assignment of float variables 1851from a previous solution, see MPG for details. 1852 1853[ENTRY] 1854Module: set 1855What: new 1856Rank: minor 1857[DESCRIPTION] 1858Added relax() function for relaxed assignment of set variables 1859from a previous solution, see MPG for details. 1860 1861[ENTRY] 1862Module: int 1863What: new 1864Rank: minor 1865[DESCRIPTION] 1866Added relax() function for relaxed assignment of integer and 1867Boolean variables from a previous solution, see MPG for details. 1868 1869[ENTRY] 1870Module: driver 1871What: new 1872Rank: minor 1873[DESCRIPTION] 1874The probability for relaxing variables in LNS can be passed with 1875the -relax commandline option. 1876 1877[ENTRY] 1878Module: int 1879What: bug 1880Rank: major 1881Thanks: Roberto Castañeda Lozano 1882[DESCRIPTION] 1883The domain consistent dom() constraint for integer ranges was 1884only bounds consistent... 1885 1886[ENTRY] 1887Module: minimodel 1888What: bug 1889Rank: minor 1890Thanks: Matthias Balzer 1891[DESCRIPTION] 1892Export BoolExpr::Misc for linking. 1893 1894[ENTRY] 1895Module: kernel 1896What: change 1897Rank: minor 1898Thanks: Matthias Balzer 1899[DESCRIPTION] 1900Do not declare new and delete of ArgArrayBase as private to 1901support the use of placement new. 1902 1903[ENTRY] 1904Module: driver 1905What: new 1906Rank: minor 1907[DESCRIPTION] 1908The discrepancy limit for Limited Discrepancy Search (LDS) can be 1909passed with the -d-l commandline option. 1910 1911[ENTRY] 1912Module: search 1913What: new 1914Rank: major 1915[DESCRIPTION] 1916Limited Discrepancy Search (LDS) added. Please see MPG for 1917details. 1918 1919[ENTRY] 1920Module: flatzinc 1921What: bug 1922Rank: major 1923Thanks: Mats Carlsson 1924[DESCRIPTION] 1925Fix the FlatZinc parser for cases where variables were aliased to a fixed 1926variable. 1927 1928[ENTRY] 1929Module: kernel 1930What: bug 1931Rank: major 1932Thanks: Matthias Balzer 1933[DESCRIPTION] 1934Fixed memory leak for regions (occured for many large allocation 1935requests). 1936 1937[ENTRY] 1938Module: float 1939What: bug 1940Rank: major 1941Thanks: Filip Konvicka 1942[DESCRIPTION] 1943Enable optimized rounding only if MSVC does not use SSE, 1944otherwise things really go wrong (necessary for MSVC 2015). 1945 1946[ENTRY] 1947Module: kernel 1948What: new 1949Rank: minor 1950[DESCRIPTION] 1951Added additional propagation cost level record() which is 1952reserved for propagators that record information but do not 1953propagate. 1954 1955[ENTRY] 1956Module: float 1957What: new 1958Rank: minor 1959[DESCRIPTION] 1960Added channeling constraint between float and Boolean variable. 1961 1962[ENTRY] 1963Module: float 1964What: bug 1965Rank: minor 1966Thanks: Matthias Balzer 1967[DESCRIPTION] 1968FloatValArgs erroneously inherited from PrimArgArray, now it 1969inherits from ArgArray. 1970 1971[ENTRY] 1972Module: minimodel 1973What: bug 1974Rank: minor 1975Thanks: Matthias Balzer 1976[DESCRIPTION] 1977Fixed memory leak in constructor for Boolean element expression. 1978 1979[ENTRY] 1980Module: minimodel 1981What: bug 1982Rank: minor 1983Thanks: Matthias Balzer 1984[DESCRIPTION] 1985Fixed special case handling for sqr and pow functions. 1986 1987[ENTRY] 1988Module: minimodel 1989What: bug 1990Rank: minor 1991Thanks: Matthias Balzer 1992[DESCRIPTION] 1993Removed bogus declarations of comparison operators between 1994Boolean variables and float expressions. 1995 1996[ENTRY] 1997Module: kernel 1998What: new 1999Rank: minor 2000[DESCRIPTION] 2001Propagators and branchers now have a fixed identity available by 2002id() member functions. 2003 2004[ENTRY] 2005Module: kernel 2006What: new 2007Rank: minor 2008Thanks: Gilles Pesant 2009[DESCRIPTION] 2010Added an iterator SubscribedPropagators that iterates over the 2011subscribed propagators of views and variable implementations. 2012 2013[ENTRY] 2014Module: kernel 2015What: change 2016Rank: minor 2017Thanks: Mirko Rahn 2018[DESCRIPTION] 2019Do not use local classes as this would require C++-11. 2020 2021[ENTRY] 2022Module: int 2023What: bug 2024Rank: minor 2025[DESCRIPTION] 2026Fix n-ary lq/le propagator when used on arrays with variables occurring 2027multiply. 2028 2029[ENTRY] 2030Module: kernel 2031What: removed 2032Rank: major 2033[DESCRIPTION] 2034Removed brancher handles, they are subsumed by brancher groups. 2035 2036[ENTRY] 2037Module: other 2038What: bug 2039Rank: minor 2040[DESCRIPTION] 2041Fixed many small quirks in propagator rewriting, where the 2042information on which propagator is rewritten was omitted. 2043 2044[ENTRY] 2045Module: driver 2046What: new 2047Rank: minor 2048[DESCRIPTION] 2049Trace flags can be passed on the commandline. 2050 2051[ENTRY] 2052Module: float 2053What: new 2054Rank: major 2055[DESCRIPTION] 2056Added support for tracing propagation, please see MPG for details. 2057 2058[ENTRY] 2059Module: set 2060What: new 2061Rank: major 2062[DESCRIPTION] 2063Added support for tracing propagation, please see MPG for details. 2064 2065[ENTRY] 2066Module: int 2067What: new 2068Rank: major 2069[DESCRIPTION] 2070Added support for tracing propagation, please see MPG for details. 2071 2072[ENTRY] 2073Module: kernel 2074What: new 2075Rank: major 2076[DESCRIPTION] 2077Added support for tracing propagation, please see MPG for details. 2078 2079[ENTRY] 2080Module: kernel 2081What: new 2082Rank: major 2083[DESCRIPTION] 2084All constraint post functions should now use the macro 2085GECODE_POST at their start: it will check for failure but also 2086will set group information useful for tracing. 2087 2088[ENTRY] 2089Module: kernel 2090What: bug 2091Rank: minor 2092[DESCRIPTION] 2093Some Gecode macros made the assumption that they can only be used 2094inside the Gecode namespace. Fixed. 2095 2096[ENTRY] 2097Module: kernel 2098What: new 2099Rank: major 2100[DESCRIPTION] 2101Added groups of branchers (class BrancherGroup) by which 2102groups of branchers can be controlled. See MPG for details. 2103 2104[ENTRY] 2105Module: kernel 2106What: new 2107Rank: major 2108[DESCRIPTION] 2109Added groups of propagators (class PropagatorGroup) by which 2110groups of propagators can be controlled. See MPG for details. 2111 2112[ENTRY] 2113Module: kernel 2114What: new 2115Rank: major 2116[DESCRIPTION] 2117Propagators can now be disabled and enabled (through 2118PropagatorGroups). See MPG for details. 2119 2120[ENTRY] 2121Module: kernel 2122What: new 2123Rank: major 2124[DESCRIPTION] 2125All propagators must implement a virtual member function 2126reschedule() that can be used to reschedule a propagator according 2127to its subscriptions. See MPG for more details. 2128 2129[ENTRY] 2130Module: kernel 2131What: new 2132Rank: major 2133[DESCRIPTION] 2134All variable implementation must implement an additional 2135reschedule() function that can be used to reschedule a propagator 2136according to its subscriptions. See MPG for more details. 2137 2138[ENTRY] 2139Module: kernel 2140What: change 2141Rank: minor 2142[DESCRIPTION] 2143The iterators over all propagators and branchers of a space are 2144not any longer accessible. Please use group iterators instead. 2145 2146[ENTRY] 2147Module: kernel 2148What: change 2149Rank: minor 2150[DESCRIPTION] 2151The member functions propagators() and branchers() of the class 2152Space have been removed as they can be expressed with groups. 2153 2154[ENTRY] 2155Module: other 2156What: bug 2157Rank: minor 2158Thanks: Mirko Rahn 2159[DESCRIPTION] 2160Made copy constructor for search engines private to trigger 2161compiler error when trying to copy a search engine. 2162 2163[ENTRY] 2164Module: other 2165What: bug 2166Rank: minor 2167Thanks: Mirko Rahn 2168[DESCRIPTION] 2169Fixed some linking issues for static linking. 2170 2171[ENTRY] 2172Module: support 2173What: new 2174Rank: major 2175[DESCRIPTION] 2176Gecode supports now arbitrary memory allocators (the behavior can 2177be controlled by the commandline options -enable-allocator and 2178-disable-allocator). For more details, please see MPG. 2179 2180[ENTRY] 2181Module: kernel 2182What: change 2183Rank: minor 2184Thanks: Conrad Drescher 2185[DESCRIPTION] 2186Added destructor to NGL class to avoid warnings. 2187 2188[ENTRY] 2189Module: kernel 2190What: bug 2191Rank: minor 2192Thanks: Matthias Balzer 2193[DESCRIPTION] 2194Fixed wrong type declaration in region_allocator::deallocate(). 2195 2196[ENTRY] 2197Module: float 2198What: bug 2199Rank: minor 2200Thanks: Conrad Drescher, Patrick Berg 2201[DESCRIPTION] 2202Fixed two infinite recursion bugs in related to use of hull(). 2203 2204[ENTRY] 2205Module: flatzinc 2206What: bug 2207Rank: minor 2208[DESCRIPTION] 2209Add missing declaration for bool_clause_reif builtin. 2210 2211[ENTRY] 2212Module: flatzinc 2213What: bug 2214Rank: minor 2215Thanks: Tommy Persson 2216[DESCRIPTION] 2217FlatZinc interpreter now does not try to post constraints if there was a 2218syntax error during parsing. 2219 2220[ENTRY] 2221Module: minimodel 2222What: bug 2223Rank: minor 2224Thanks: Roberto Castañeda Lozano, Matthias Balzer 2225[DESCRIPTION] 2226Fixed posting of Boolean element expressions and relations. 2227 2228[ENTRY] 2229Module: minimodel 2230What: bug 2231Rank: minor 2232Thanks: Joseph Scott 2233[DESCRIPTION] 2234Fixed printing of regular expressions. 2235 2236[ENTRY] 2237Module: int 2238What: new 2239Rank: minor 2240[DESCRIPTION] 2241Added distinct-except-constant constraint. 2242 2243[ENTRY] 2244Module: int 2245What: new 2246Rank: minor 2247[DESCRIPTION] 2248Added distinct with optional variables. 2249 2250[ENTRY] 2251Module: flatzinc 2252What: change 2253Rank: minor 2254[DESCRIPTION] 2255Add support for the alldifferent_except_0 constraint by rewriting to a 2256global cardinality constraint. 2257 2258[ENTRY] 2259Module: flatzinc 2260What: change 2261Rank: minor 2262[DESCRIPTION] 2263The simple LNS using relax_and_reconstruct can now take an optional third 2264argument that is used as an initial solution. 2265 2266[ENTRY] 2267Module: search 2268What: change 2269Rank: minor 2270[DESCRIPTION] 2271The restart meta search engine must be used with the 2272branch-and-bound engine for best solution search. 2273 2274[ENTRY] 2275Module: search 2276What: change 2277Rank: minor 2278[DESCRIPTION] 2279For meta search engines, the order of template arguments has been 2280changed: the first is the script type, the second is the engine 2281type. 2282 2283[ENTRY] 2284Module: kernel 2285What: new 2286Rank: minor 2287[DESCRIPTION] 2288All branchers of a space can be killed by 2289BrancherGroup::all.kill(home). This is the default for the master() 2290function when using portfolio search. 2291 2292[ENTRY] 2293Module: kernel 2294What: new 2295Rank: major 2296[DESCRIPTION] 2297The clone() function takes an additional optional argument that defines 2298whether AFC information is shared among clones. 2299 2300[ENTRY] 2301Module: driver 2302What: new 2303Rank: minor 2304[DESCRIPTION] 2305The number of assets to use for portfolio-based search can be 2306passed on the commandline as -assets. 2307 2308[ENTRY] 2309Module: search 2310What: new 2311Rank: major 2312[DESCRIPTION] 2313Portfolio-based search has been added (both sequential and 2314parallel). Please see "Modeling and Programming with Gecode" for 2315details. 2316 2317[ENTRY] 2318Module: kernel 2319What: change 2320Rank: major 2321[DESCRIPTION] 2322The master() and slave() configuration functions has been changed 2323as they are now also used for portfolio-based search. Please see 2324"Modeling and Programming with Gecode" for details. 2325 2326[ENTRY] 2327Module: support 2328What: new 2329Rank: minor 2330[DESCRIPTION] 2331Classes can now inherit from HeapAllocated when using the Gecode 2332heap object for memory management. 2333 2334[ENTRY] 2335Module: search 2336What: bug 2337Rank: minor 2338[DESCRIPTION] 2339The restart engine would not properly delete some data structures 2340when being deleted. 2341 2342[ENTRY] 2343Module: int 2344What: new 2345Rank: minor 2346[DESCRIPTION] 2347Added some additional propagation to circuit and path 2348constraints, based on: Kathryn Glenn Francis, Peter Stuckey, 2349Explaining Circuit Propagation, Constraints (2014) 19:1-29. 2350 2351[ENTRY] 2352Module: kernel 2353What: new 2354Rank: minor 2355Thanks: Joseph Scott 2356[DESCRIPTION] 2357Missing = SUBSCRIBE annotations for modification events are 2358properly reported. 2359 2360[ENTRY] 2361Module: int 2362What: new 2363Rank: major 2364[DESCRIPTION] 2365The unary constraint now can also perform time-tabling propagation. 2366 2367[ENTRY] 2368Module: int 2369What: new 2370Rank: major 2371[DESCRIPTION] 2372The level of propagation of the cumulative constraint can now be 2373controlled via the integer propagation level argument. Please 2374consult Modeling and Programming with Gecode for details. 2375 2376[ENTRY] 2377Module: int 2378What: new 2379Rank: major 2380[DESCRIPTION] 2381The level of propagation of the unary constraint can now be 2382controlled via the integer propagation level argument. Please 2383consult Modeling and Programming with Gecode for details. 2384 2385[ENTRY] 2386Module: int 2387What: change 2388Rank: minor 2389[DESCRIPTION] 2390The selection for extensional table constraints whether to 2391optimize for speed or memory is now controlled by the integer 2392propagation level argument. The old argument of type 2393ExtensionalPropKind has been removed (the type has been removed 2394as well). 2395 2396[ENTRY] 2397Module: driver 2398What: change 2399Rank: major 2400[DESCRIPTION] 2401The commandline option -icl (for integer consistency level) has 2402been replaced by -ipl (for integer propagation level). All new 2403levels can be specified by a comma separated list as argument to 2404-ipl. 2405 2406[ENTRY] 2407Module: int 2408What: change 2409Rank: major 2410[DESCRIPTION] 2411The integer consistency level (IntConLevel) has been renamed to 2412integer propagation level (IntPropLevel). Additional levels for 2413speed, memory, basic, and advanced propagation have been added. 2414See Modeling and Programming with Gecode for details. 2415 2416[ENTRY] 2417Module: int 2418What: bug 2419Rank: major 2420Thanks: Kish Shen 2421[DESCRIPTION] 2422The count constraint with INT_GR relation was broken (off-by-one error). 2423 2424[ENTRY] 2425Module: example 2426What: change 2427Rank: minor 2428Thanks: Ananja Muddukrishna 2429[DESCRIPTION] 2430The bin-packing model did not use a best-fit solution for the 2431upper bound, but only a first-fit. 2432 2433[ENTRY] 2434Module: int 2435What: performance 2436Rank: minor 2437Thanks: Kish Shen 2438[DESCRIPTION] 2439Some count constraints are now optimized in case its arguments are 2440assigned. 2441 2442[ENTRY] 2443Module: other 2444What: change 2445Rank: minor 2446[DESCRIPTION] 2447Compiles with Visual Studio 2015. 2448 2449[ENTRY] 2450Module: int 2451What: bug 2452Rank: minor 2453Thanks: Kish Shen 2454[DESCRIPTION] 2455The binpacking constraint works even if all items are of size zero. 2456 2457[ENTRY] 2458Module: int 2459What: bug 2460Rank: minor 2461Thanks: Kish Shen 2462[DESCRIPTION] 2463Constrain bin variables even for zero-sized items in binpacking constraint. 2464 2465[ENTRY] 2466Module: flatzinc 2467What: bug 2468Rank: minor 2469[DESCRIPTION] 2470Fix a bug in the parser when parsing float variable domains. 2471 2472[ENTRY] 2473Module: int 2474What: new 2475Rank: minor 2476Thanks: Kish Shen 2477[DESCRIPTION] 2478Added variant of argmin and argmax with offset. 2479 2480[ENTRY] 2481Module: flatzinc 2482What: change 2483Rank: minor 2484Thanks: Pete Nightingale 2485[DESCRIPTION] 2486Make bounds propagation the default for global cardinality constraints 2487in FlatZinc. 2488 2489[ENTRY] 2490Module: flatzinc 2491What: change 2492Rank: minor 2493[DESCRIPTION] 2494Add support for generating the FlatZinc parser using bison version 3. 2495 2496[ENTRY] 2497Module: flatzinc 2498What: bug 2499Rank: major 2500Thanks: Andrea Rendl 2501[DESCRIPTION] 2502Fix branching on introduced variables, which could sometimes lead to 2503unassigned variables appearing in the output. 2504 2505[ENTRY] 2506Module: flatzinc 2507What: bug 2508Rank: minor 2509Thanks: Jean-Noël Monette 2510[DESCRIPTION] 2511Improve error messages in FlatZinc for some type errors. 2512 2513 2514[RELEASE] 2515Version: 4.4.0 2516Date: 2015-03-20 2517[DESCRIPTION] 2518This release fixes some bugs and improves some search-related aspects. 2519 2520Note that you will have to change all scripts that inherit from 2521the pre-defined script classes (Script, IntMinimizeScript, 2522IntMaximizeScript, FloatMinimizeScript, FloatMaximizeScript). The 2523change is easy: in your constructor you have to add a call to the 2524constructor of the pre-defined script class with the command line 2525options as argument. Just check any of the Gecode example for how 2526it is done. 2527 2528 2529[ENTRY] 2530Module: flatzinc 2531What: new 2532Rank: minor 2533Thanks: Mark Manser 2534[DESCRIPTION] 2535An option -step now can pass an improvement step for 2536optimization of float problems. 2537 2538[ENTRY] 2539Module: driver 2540What: change 2541Rank: major 2542[DESCRIPTION] 2543All scripts now must call the constructor of their base class 2544with an option argument. 2545 2546Note that you will have to change your models by a call to the 2547constructor of the script class with an option argument! 2548 2549[ENTRY] 2550Module: driver 2551What: new 2552Rank: minor 2553Thanks: Mark Manser 2554[DESCRIPTION] 2555An option -step now can pass an improvement step to scripts of 2556type FloatMinimizeScript and FloatMaximizeScript. 2557 2558[ENTRY] 2559Module: minimodel 2560What: new 2561Rank: minor 2562Thanks: Mark Manser 2563[DESCRIPTION] 2564The classes FloatMinimizeSpace and FloatMaximizeSpace can be 2565created with an improvement step for optimization. 2566 2567[ENTRY] 2568Module: flatzinc 2569What: bug 2570Rank: minor 2571Thanks: Ahmed Kamal 2572[DESCRIPTION] 2573Added support for missing builtins array_float_element 2574(by decomposition), float_lin_lt and float_lin_lt_reif. 2575 2576[ENTRY] 2577Module: search 2578What: new 2579Rank: minor 2580[DESCRIPTION] 2581Added functions to Stop class that can create common stop objects. 2582 2583[ENTRY] 2584Module: search 2585What: new 2586Rank: minor 2587[DESCRIPTION] 2588Exposed class definitions for common cutoff generators. 2589 2590[ENTRY] 2591Module: flatzinc 2592What: bug 2593Rank: minor 2594Thanks: Håkan Kjellerstrand 2595[DESCRIPTION] 2596LNS could fail when the search was restarted before finding the first solution. 2597 2598[ENTRY] 2599Module: search 2600What: bug 2601Rank: major 2602Thanks: Håkan Kjellerstrand 2603[DESCRIPTION] 2604Fix memory leak in the DFS and BAB search engines that could make restart-based 2605search run out of memory very quickly. 2606 2607[ENTRY] 2608Module: driver 2609What: new 2610Rank: minor 2611[DESCRIPTION] 2612Added option -seed for passing a seed to random number generators. 2613 2614[ENTRY] 2615Module: example 2616What: new 2617Rank: minor 2618[DESCRIPTION] 2619Added quasigroup completion benchmarks. 2620 2621[ENTRY] 2622Module: search 2623What: performance 2624Rank: minor 2625[DESCRIPTION] 2626Delay efforts for restarting until it is really needed after a 2627solution has been found. 2628 2629 2630[RELEASE] 2631Version: 4.3.3 2632Date: 2015-01-20 2633[DESCRIPTION] 2634This release adds support for LNS to FlatZinc, adds support for 2635MiniZinc 2, fixes a number of bugs and some new constraints. 2636 2637[ENTRY] 2638Module: flatzinc 2639What: new 2640Rank: minor 2641[DESCRIPTION] 2642Added support for arg_min and arg_max constraints. 2643 2644[ENTRY] 2645Module: int 2646What: new 2647Rank: minor 2648[DESCRIPTION] 2649Added argmin and argmax constraints. 2650 2651[ENTRY] 2652Module: search 2653What: bug 2654Rank: major 2655Thanks: Zichen Zhu 2656[DESCRIPTION] 2657Now no-goods are extracted properly in case a solution is found. 2658 2659[ENTRY] 2660Module: flatzinc 2661What: change 2662Rank: minor 2663[DESCRIPTION] 2664Add support for the MiniZinc 2 min/max builtins. The Gecode MiniZinc library 2665is now compatible with both MiniZinc 1.6 and 2.0. 2666 2667[ENTRY] 2668Module: search 2669What: change 2670Rank: minor 2671[DESCRIPTION] 2672Change the slave function for meta search engines to return whether the search 2673in the slave is going to be complete. This is necessary for example in LNS, 2674where completing the search in the slave does not mean that the overall search 2675is finished. 2676 2677[ENTRY] 2678Module: flatzinc 2679What: new 2680Rank: major 2681[DESCRIPTION] 2682Make a simple form of LNS accessible from FlatZinc. To use it, include 2683gecode.mzn and add the relax_and_reconstruct search annotation defined in 2684that file. 2685 2686[ENTRY] 2687Module: set 2688What: bug 2689Rank: minor 2690Thanks: Farshid Hassani Bijarbooneh 2691[DESCRIPTION] 2692The channeling propagator between a SetVar and an array of BoolVars 2693propagated incorrectly when posted on a fixed SetVar. 2694 2695[ENTRY] 2696Module: flatzinc 2697What: new 2698Rank: minor 2699[DESCRIPTION] 2700Support dom_w_deg search annotation. 2701 2702[ENTRY] 2703Module: flatzinc 2704What: change 2705Rank: minor 2706[DESCRIPTION] 2707Search on objective function variable after all other variables (but 2708still before introduced variables). 2709 2710[ENTRY] 2711Module: flatzinc 2712What: bug 2713Rank: minor 2714Thanks: Mats Carlsson 2715[DESCRIPTION] 2716Fix special case detection for cumulatives constraint, could sometimes 2717incorrectly turn a cumulatives into a disjunctive constraint. 2718 2719[ENTRY] 2720Module: flatzinc 2721What: bug 2722Rank: minor 2723Thanks: Björn Böttcher 2724[DESCRIPTION] 2725Fix behavior of -a command line option for satisfaction problems. 2726 2727[ENTRY] 2728Module: flatzinc 2729What: bug 2730Rank: minor 2731Thanks: Chris Mears 2732[DESCRIPTION] 2733Fix default search annotation for float objectives. 2734 2735[ENTRY] 2736Module: flatzinc 2737What: bug 2738Rank: minor 2739Thanks: Willem Van Onsem 2740[DESCRIPTION] 2741Install parser.tab.hh header. 2742 2743[ENTRY] 2744Module: flatzinc 2745What: new 2746Rank: minor 2747[DESCRIPTION] 2748Add support for gecode_schedule_cumulative_optional constraint. 2749 2750 2751[RELEASE] 2752Version: 4.3.2 2753Date: 2014-11-06 2754[DESCRIPTION] 2755Fixed major bug in and added extensive tests for the FlatZinc 2756interpreter. If you are using Gecode with FlatZinc you should 2757definitely upgrade! 2758 2759[ENTRY] 2760Module: test 2761What: new 2762Rank: major 2763[DESCRIPTION] 2764Added long-overdue tests for the FlatZinc interpreter. 2765 2766[ENTRY] 2767Module: other 2768What: bug 2769Rank: minor 2770Thanks: Alex Elliott 2771[DESCRIPTION] 2772Fix cmake build file to work better when building with Qt. 2773 2774[ENTRY] 2775Module: flatzinc 2776What: bug 2777Rank: major 2778Thanks: Jean-Noël Monette 2779[DESCRIPTION] 2780Fixed major bug that would cause the FlatZinc interpreter to crash 2781on most models. 2782 2783[RELEASE] 2784Version: 4.3.1 2785Date: 2014-10-22 2786[DESCRIPTION] 2787This release fixes some minor issues and a major bug for the 2788FlatZinc interpreter. It considerably extends restart-based 2789search so that it supports LNS (Large Neighborhood Search). 2790 2791[ENTRY] 2792Module: search 2793What: change 2794Rank: major 2795[DESCRIPTION] 2796The restart-based search engine has been made more powerful: the 2797master() and slave() configuration functions have been extended 2798and get more information about each restart and the engine always 2799maintains the last solution found. In particulae, the engine is 2800now powerful enough to support LNS (Large Neighborhood 2801Search). For details, please see MPG. 2802 2803[ENTRY] 2804Module: search 2805What: change 2806Rank: minor 2807[DESCRIPTION] 2808The interface of cutoff generators has been extended in that it 2809now offers current value access (operator()()) as well as 2810increment (operator++()). 2811 2812[ENTRY] 2813Module: search 2814What: new 2815Rank: minor 2816[DESCRIPTION] 2817Added a cutoff generator that merges the values of two cutoff generators. 2818 2819[ENTRY] 2820Module: other 2821What: bug 2822Rank: minor 2823Thanks: Pierre Talbot 2824[DESCRIPTION] 2825Gecode can now be used together with boost without conflicts. 2826 2827[ENTRY] 2828Module: other 2829What: new 2830Rank: minor 2831Thanks: Petter Strandmark 2832[DESCRIPTION] 2833Added support for building examples with CMake. 2834 2835[ENTRY] 2836Module: minimodel 2837What: bug 2838Rank: minor 2839Thanks: Léonard Benedetti 2840[DESCRIPTION] 2841Removed potentially undefined behavior for regular expressions. 2842 2843[ENTRY] 2844Module: flatzinc 2845What: bug 2846Rank: major 2847Thanks: Mats Carlsson 2848[DESCRIPTION] 2849Fixed FlatZinc aliasing detection on array variables that 2850introduced incorrect aliases between variables. 2851 2852[ENTRY] 2853Module: flatzinc 2854What: bug 2855Rank: minor 2856Thanks: Frank Imeson 2857[DESCRIPTION] 2858Fixed parser for integer literals to generate error message when 2859integers are out of bounds. 2860 2861[ENTRY] 2862Module: flatzinc 2863What: bug 2864Rank: minor 2865Thanks: Peter Nightingale 2866[DESCRIPTION] 2867Fixed the FlatZinc interpreter to accept empty arrays as arguments in 2868annotations. 2869 2870[ENTRY] 2871Module: flatzinc 2872What: bug 2873Rank: minor 2874Thanks: Carleton Coffrin 2875[DESCRIPTION] 2876Fixed the behaviour for the -n and -a command line options for 2877optimisation models. 2878 2879 2880[RELEASE] 2881Version: 4.3.0 2882Date: 2014-08-28 2883[DESCRIPTION] 2884This release fixes a large number of both minor and major bugs, 2885has some improvements for FlatZinc, and adds multi-dimensional 2886bin-packing. 2887 2888[ENTRY] 2889Module: other 2890What: bug 2891Rank: minor 2892Thanks: Victor Zverovich, Tony Kelman 2893[DESCRIPTION] 2894Various fixes for CMake: 2895 - Set the output directory for runtime target files (executables and DLLs) to bin/ subdirectory of the project's binary directory to avoid collisions when Gecode is used as a subproject.Improve suppression of warnings. 2896 - Add GECODE_USE_QT variable which specifies whether to use Qt. Qt is used if GECODE_USE_QT is TRUE or unset. 2897 - Prevent linker warnings on MSVC. 2898 - Use per-target instead of global include directories. This simplifies use of Gecode as a subproject because add_target_libraries(<target> <gecode-lib>) now sets the necessary include directories for <target> in addition to link dependencies. 2899 - Fix to fully link internal dependencies needed for creating DLLs: https://github.com/ampl/gecode/pull/2 2900 . 2901 2902[ENTRY] 2903Module: flatzinc 2904What: change 2905Rank: minor 2906[DESCRIPTION] 2907The --free command line option has been renamed to -f to comply with other 2908FlatZinc solvers. 2909 2910[ENTRY] 2911Module: flatzinc 2912What: performance 2913Rank: minor 2914[DESCRIPTION] 2915The diffn constraint now posts additional implied cumulative constraints 2916to strengthen propagation. 2917 2918[ENTRY] 2919Module: flatzinc 2920What: bug 2921Rank: minor 2922[DESCRIPTION] 2923Added unshare constraints to all constraints that need them. Without unsharing, 2924variables occurring multiply in the same FlatZinc arrays could lead to the 2925FlatZinc interpreter aborting with an error. 2926 2927[ENTRY] 2928Module: flatzinc 2929What: performance 2930Rank: minor 2931[DESCRIPTION] 2932Treat equality constraints in FlatZinc as aliases instead of posting 2933propagators, and post simple domain constraints before more complex 2934propagators to help post the most efficient versions. 2935 2936[ENTRY] 2937Module: example 2938What: new 2939Rank: minor 2940Thanks: Stefano Gualandi, Brian Kell, Willem-Jan Van Hoeve 2941[DESCRIPTION] 2942Added example for multi-dimensional bin-packing 2943constraint. Thanks to Brian and Willem-Jan for allowing us to use 2944their data set. 2945 2946[ENTRY] 2947Module: int 2948What: new 2949Rank: major 2950Author: Stefano Gualandi 2951[DESCRIPTION] 2952Added multi-dimensional bin-packing constraint. 2953 2954[ENTRY] 2955Module: kernel 2956What: change 2957Rank: minor 2958Thanks: Kish Shen 2959[DESCRIPTION] 2960Allow 0.0 as decay value. 2961 2962[ENTRY] 2963Module: other 2964What: bug 2965Rank: minor 2966Thanks: Roland Stigge 2967[DESCRIPTION] 2968Added patch for PowerPC (downstream patch from Debian). 2969 2970[ENTRY] 2971Module: other 2972What: bug 2973Rank: minor 2974Thanks: David Rijsman 2975[DESCRIPTION] 2976Added missing boost header files. 2977 2978[ENTRY] 2979Module: test 2980What: bug 2981Rank: minor 2982Thanks: Victor Zverovich 2983[DESCRIPTION] 2984Removed uninitialized access. 2985 2986[ENTRY] 2987Module: set 2988What: bug 2989Rank: minor 2990Thanks: Victor Zverovich 2991[DESCRIPTION] 2992Removed compiler warning. 2993 2994[ENTRY] 2995Module: float 2996What: bug 2997Rank: minor 2998Thanks: Victor Zverovich 2999[DESCRIPTION] 3000Removed compiler warning. 3001 3002[ENTRY] 3003Module: flatzinc 3004What: bug 3005Rank: minor 3006Thanks: Victor Zverovich 3007[DESCRIPTION] 3008Fixed FlatZinc interpreter to compile with clang in C++11 mode. 3009 3010[ENTRY] 3011Module: int 3012What: bug 3013Rank: minor 3014Thanks: Bauke Conijn 3015[DESCRIPTION] 3016Re-enabled parts of not-first-not-last propagation for unary with 3017optional tasks. 3018 3019[ENTRY] 3020Module: flatzinc 3021What: bug 3022Rank: minor 3023[DESCRIPTION] 3024Catch exceptions and print proper error message. 3025 3026[ENTRY] 3027Module: minimodel 3028What: bug 3029Rank: major 3030[DESCRIPTION] 3031Fixed posting of set relations involving constants. 3032 3033[ENTRY] 3034Module: int 3035What: bug 3036Rank: major 3037Thanks: Roberto Castañeda Lozano, Gabriel Hjort Blindell 3038[DESCRIPTION] 3039In extremely rare cases, the bounds-consistent distinct (and 3040hence all other distinct propagators as they use the 3041bounds-consistent one internally) propagator could suffer from 3042numerical overflow. 3043 3044[ENTRY] 3045Module: kernel 3046What: bug 3047Rank: minor 3048Thanks: Roberto Castañeda Lozano 3049[DESCRIPTION] 3050The function brancher did not return a handle. 3051 3052[ENTRY] 3053Module: int 3054What: bug 3055Rank: minor 3056Thanks: Duane Leslie 3057[DESCRIPTION] 3058No-good literals for greater-or-equal did not prune as much as they should. 3059 3060 3061[RELEASE] 3062Version: 4.2.1 3063Date: 2013-11-05 3064[DESCRIPTION] 3065This release fixes several major bugs and adds some minor 3066improvements. 3067 3068[ENTRY] 3069Module: other 3070What: change 3071Rank: minor 3072[DESCRIPTION] 3073Compiles with MSVC 2013. 3074 3075[ENTRY] 3076Module: search 3077What: bug 3078Rank: major 3079Thanks: Roberto Castañeda Lozano 3080[DESCRIPTION] 3081Fix for restart-based search when the master does not have a branching. 3082 3083[ENTRY] 3084Module: search 3085What: bug 3086Rank: major 3087Thanks: Roberto Castañeda Lozano 3088[DESCRIPTION] 3089Restart-based search did not work when the cutoff limit did not 3090strictly increase. 3091 3092[ENTRY] 3093Module: search 3094What: new 3095Rank: minor 3096Thanks: Roberto Castañeda Lozano 3097[DESCRIPTION] 3098Added support for a repeat cutoff generator. 3099 3100[ENTRY] 3101Module: int 3102What: performance 3103Rank: minor 3104Thanks: Anne Meyer 3105[DESCRIPTION] 3106Fix performance of domain consistent element for the case that the result 3107variable is assigned. 3108 3109[ENTRY] 3110Module: int 3111What: bug 3112Rank: major 3113Thanks: Bauke Conijn 3114[DESCRIPTION] 3115Fixed incorrect propagation in sortedness with permutation variables. 3116 3117[ENTRY] 3118Module: int 3119What: bug 3120Rank: major 3121Thanks: Duane Leslie 3122[DESCRIPTION] 3123Fixed cumulative constraint for 0-usage tasks. 3124 3125[ENTRY] 3126Module: int 3127What: bug 3128Rank: major 3129Thanks: Duane Leslie 3130[DESCRIPTION] 3131Fixed special case check for cumulative that would wrongly classify 3132some instances as disjunctive. 3133 3134[ENTRY] 3135Module: int 3136What: bug 3137Rank: major 3138Thanks: Kish Shen 3139[DESCRIPTION] 3140The nroot constraint now propagates correctly for negative 3141numbers when the exponent is odd. 3142 3143[ENTRY] 3144Module: other 3145What: bug 3146Rank: minor 3147[DESCRIPTION] 3148Fix CMake to also build FlatZinc and Driver correctly. 3149 3150[ENTRY] 3151Module: flatzinc 3152What: bug 3153Rank: minor 3154[DESCRIPTION] 3155Fixed bug in auxiliary variable branching. 3156 3157[ENTRY] 3158Module: minimodel 3159What: new 3160Rank: minor 3161Thanks: Philippe Kezirian 3162[DESCRIPTION] 3163The sum of IntArgs can now be computed similarly to the sum of 3164IntVarArgs. 3165 3166[ENTRY] 3167Module: kernel 3168What: new 3169Rank: minor 3170Thanks: Kish Shen 3171[DESCRIPTION] 3172Activity information can now be initialized with a branch merit function. 3173 3174[ENTRY] 3175Module: int 3176What: new 3177Rank: minor 3178Thanks: Kish Shen 3179[DESCRIPTION] 3180Activity information can now be initialized with a branch merit function. 3181 3182[ENTRY] 3183Module: set 3184What: new 3185Rank: minor 3186Thanks: Kish Shen 3187[DESCRIPTION] 3188Activity information can now be initialized with a branch merit function. 3189 3190[ENTRY] 3191Module: float 3192What: new 3193Rank: minor 3194Thanks: Kish Shen 3195[DESCRIPTION] 3196Activity information can now be initialized with a branch merit function. 3197 3198 3199 3200[RELEASE] 3201Version: 4.2.0 3202Date: 2013-07-19 3203[DESCRIPTION] 3204This release adds no-goods from restarts, removes memory 3205statistics (but Gecode can be configured for more accurate 3206statistics), and fixes a number of bugs. 3207 3208[ENTRY] 3209Module: iter 3210What: bug 3211Rank: minor 3212Thanks: Farshid Hassani Bijarbooneh, Joseph Scott 3213[DESCRIPTION] 3214Fixed segfault in NaryUnion iterator. 3215 3216[ENTRY] 3217Module: kernel 3218What: new 3219Rank: minor 3220[DESCRIPTION] 3221Added configure switch --enable-peakheap that adds support for 3222memory statistics to the kernel. This comes with a runtime overhead, 3223but provides more accurate information than the previous search 3224engine based statistics. 3225 3226[ENTRY] 3227Module: search 3228What: removed 3229Rank: major 3230[DESCRIPTION] 3231Removed memory statistics from the search engines. The reason is 3232that the figures were too inaccurate (memory for shared data 3233structure, caches, etc were not counted) and computing the 3234figures was complicated. This feature is replaced by a configure 3235switch that enables peak memory tracking based on operating system 3236information. 3237 3238[ENTRY] 3239Module: kernel 3240What: change 3241Rank: minor 3242Thanks: Kish Shen 3243[DESCRIPTION] 3244Low-level support for AFC is now public. 3245 3246[ENTRY] 3247Module: search 3248What: new 3249Rank: minor 3250[DESCRIPTION] 3251Search options have an additional field nogoods_limit that 3252defines too which depth a search tree is inspected for no-goods. 3253 3254[ENTRY] 3255Module: kernel 3256What: change 3257Rank: minor 3258[DESCRIPTION] 3259The master() member function used during restart-based search now 3260takes an additional no-goods argument. The default master() 3261function posts no-goods (only effective when enabled in 3262Search::Options). See MPG for details. 3263 3264[ENTRY] 3265Module: driver 3266What: new 3267Rank: minor 3268[DESCRIPTION] 3269When using restart-based search, the use of no-goods from 3270restarts can be switched on/off with the -nogoods command line 3271option and the depth limit for extraction of no-goods with the 3272-nogoods-limit command line option. 3273 3274[ENTRY] 3275Module: search 3276What: new 3277Rank: major 3278[DESCRIPTION] 3279Added support for no-goods from restarts, see Modeling and 3280Programming with Gecode for details. 3281 3282Note that also entails that the statistics will report different 3283a different peak depth than in previous releases of Gecode when 3284using no-goods. 3285 3286[ENTRY] 3287Module: flatzinc 3288What: new 3289Rank: minor 3290[DESCRIPTION] 3291Added support for value_precede_int and value_precede_set constraints. 3292 3293[ENTRY] 3294Module: flatzinc 3295What: bug 3296Rank: major 3297Thanks: Chris Mears 3298[DESCRIPTION] 3299Fixed a memory leak in FlatZincSpace and a few more in the FlatZinc 3300parser. 3301 3302[ENTRY] 3303Module: flatzinc 3304What: bug 3305Rank: minor 3306Thanks: Chris Mears 3307[DESCRIPTION] 3308Fixed a bug in implicit search heuristic that could lead to a 3309segmentation fault when minimizing an array element. 3310 3311[ENTRY] 3312Module: other 3313What: bug 3314Rank: minor 3315Thanks: Victor Zverovich 3316[DESCRIPTION] 3317Fixes link error for CMake with MSVC. 3318 3319 3320[RELEASE] 3321Version: 4.1.0 3322Date: 2013-07-01 3323[DESCRIPTION] 3324This release adds a really useful feature and the required 3325infrastructure to Gist (it now can show information on the 3326alternatives in a search tree), has some new features, and fixes 3327quite a number of bugs (some of which are quite serious, in 3328particular for: LDSB, restart-based search, and FlatZinc). 3329 3330[ENTRY] 3331Module: driver 3332What: bug 3333Rank: minor 3334Thanks: Vincent Barichard 3335[DESCRIPTION] 3336Fixed a race condition when using parallel search. 3337 3338[ENTRY] 3339Module: set 3340What: bug 3341Rank: minor 3342[DESCRIPTION] 3343Fixed SET_VAR_ACTIVITY_SIZE_MIN/MAX, which used to compute 3344size/activity instead of activity/size. 3345 3346[ENTRY] 3347Module: kernel 3348What: performance 3349Rank: minor 3350[DESCRIPTION] 3351Implement the AFC search heuristic using FastMutex, which greatly 3352improves parallel search performance on Mac OS X when using AFC. 3353 3354[ENTRY] 3355Module: support 3356What: new 3357Rank: minor 3358[DESCRIPTION] 3359Added FastMutex class that is implemented using spin locks on 3360some platforms. 3361 3362[ENTRY] 3363Module: int 3364What: bug 3365Rank: minor 3366Thanks: Victor Zverovich 3367[DESCRIPTION] 3368Fixed INT_VALUES_MAX() branching (INT_VALUES_MIN() was used instead). 3369 3370[ENTRY] 3371Module: float 3372What: bug 3373Rank: minor 3374[DESCRIPTION] 3375Fixed FLOAT_VAR_ACTIVITY_SIZE_MIN/MAX, which used to compute 3376size/activity instead of activity/size. 3377 3378[ENTRY] 3379Module: example 3380What: new 3381Rank: minor 3382Thanks: Stefano Gualandi 3383[DESCRIPTION] 3384Added LDSB-based symmetry breaking to graph coloring example. 3385 3386[ENTRY] 3387Module: flatzinc 3388What: bug 3389Rank: minor 3390Thanks: Peter Nightingale 3391[DESCRIPTION] 3392Fixed printing of float variables to be compatible with MiniZinc output. 3393 3394[ENTRY] 3395Module: flatzinc 3396What: bug 3397Rank: minor 3398Thanks: Peter Nightingale 3399[DESCRIPTION] 3400Fixed a segmentation fault when using FlatZinc with float variables 3401that have initializers. 3402 3403[ENTRY] 3404Module: set 3405What: bug 3406Rank: major 3407Thanks: Stefano Gualandi 3408[DESCRIPTION] 3409Fixed crash due to combination of LDSB and Activity. 3410 3411[ENTRY] 3412Module: int 3413What: bug 3414Rank: major 3415Thanks: Stefano Gualandi 3416[DESCRIPTION] 3417Fixed crash due to combination of LDSB and Activity. 3418 3419[ENTRY] 3420Module: int 3421What: bug 3422Rank: major 3423[DESCRIPTION] 3424The internal representation of integer variable domains could leak 3425memory to the space. 3426 3427[ENTRY] 3428Module: flatzinc 3429What: new 3430Rank: major 3431[DESCRIPTION] 3432The FlatZinc interpreter now supports float variables as objective 3433functions. 3434 3435[ENTRY] 3436Module: gist 3437What: new 3438Rank: major 3439[DESCRIPTION] 3440Gist now can show information on the alternatives in a search tree, 3441using the new menu options "Label branches" and "Label path". 3442 3443[ENTRY] 3444Module: float 3445What: bug 3446Rank: minor 3447[DESCRIPTION] 3448Random value selection for float branchings was not declared with 3449the right types. 3450 3451[ENTRY] 3452Module: set 3453What: new 3454Rank: major 3455[DESCRIPTION] 3456Set branchings now take an optional argument for a 3457user-defined print function. See MPG for details. 3458 3459[ENTRY] 3460Module: float 3461What: new 3462Rank: major 3463[DESCRIPTION] 3464Float branchings now take an optional argument for a 3465user-defined print function. See MPG for details. 3466 3467[ENTRY] 3468Module: int 3469What: new 3470Rank: major 3471[DESCRIPTION] 3472Integer and Boolean branchings now take an optional argument for a 3473user-defined print function. See MPG for details. 3474 3475[ENTRY] 3476Module: kernel 3477What: new 3478Rank: major 3479[DESCRIPTION] 3480Branchers now support a print() member function. 3481 3482[ENTRY] 3483Module: flatzinc 3484What: new 3485Rank: minor 3486[DESCRIPTION] 3487Added {int,bool,set,float}_default_search annotations. These can be used 3488on solve items to declare the default search strategy for the respective 3489variable types. 3490 3491[ENTRY] 3492Module: minimodel 3493What: bug 3494Rank: minor 3495Thanks: Roberto Castañeda Lozano 3496[DESCRIPTION] 3497Boolean expressions could lead to a segfault when initialized 3498with default constructor. 3499 3500[ENTRY] 3501Module: kernel 3502What: new 3503Rank: minor 3504[DESCRIPTION] 3505Both AFC and Activity can be changed by a set() function. 3506 3507[ENTRY] 3508Module: int 3509What: new 3510Rank: minor 3511[DESCRIPTION] 3512Added if-then-else constraint (called ite) for integer variables. 3513 3514[ENTRY] 3515Module: driver 3516What: new 3517Rank: minor 3518Thanks: Pascal Francq 3519[DESCRIPTION] 3520Added classes FloatMinimizeScript and FloatMaximizeScript for 3521cost-based optimization with a float cost variable. 3522 3523[ENTRY] 3524Module: driver 3525What: change 3526Rank: minor 3527[DESCRIPTION] 3528Added classes IntMinimizeScript and IntMaximizeScript for 3529cost-based optimization with an integer cost variable. While the 3530classes MinimizeScript and MaximizeSpcript are still available, 3531there use is deprecated and a later release might remove them. 3532 3533[ENTRY] 3534Module: int 3535What: change 3536Rank: minor 3537[DESCRIPTION] 3538Added classes IntMinimizeSpace and IntMaximizeSpace for 3539cost-based optimization with an integer cost variable. While the 3540classes MinimizeSpace and MaximizeSpace are still available, 3541there use is deprecated and a later release might remove them. 3542 3543[ENTRY] 3544Module: float 3545What: new 3546Rank: minor 3547Thanks: Pascal Francq 3548[DESCRIPTION] 3549Added classes FloatMinimizeSpace and FloatMaximizeSpace for 3550cost-based optimization with a float cost variable. 3551 3552[ENTRY] 3553Module: flatzinc 3554What: bug 3555Rank: minor 3556[DESCRIPTION] 3557Fixed the random search strategies to all use the same random number 3558generator instead of different generators all initialised with the same 3559seed (and therefore all producing the same sequences). 3560 3561[ENTRY] 3562Module: flatzinc 3563What: new 3564Rank: minor 3565Thanks: Tias Guns 3566[DESCRIPTION] 3567Added int2float constraint which was missing in the FlatZinc 3568interpreter. 3569 3570[ENTRY] 3571Module: int 3572What: bug 3573Rank: minor 3574Thanks: David Rijsman 3575[DESCRIPTION] 3576Fixed binpacking crash when the b and s arrays are empty. 3577 3578[ENTRY] 3579Module: other 3580What: change 3581Rank: minor 3582Thanks: Cliff Yapp 3583[DESCRIPTION] 3584CMake build system tweaked for out-of-source-dir building. 3585 3586[ENTRY] 3587Module: float 3588What: bug 3589Rank: minor 3590Thanks: Duong Khanh Chuong 3591[DESCRIPTION] 3592Fixed missing propagation in reified rel-constraints. 3593 3594[ENTRY] 3595Module: search 3596What: bug 3597Rank: major 3598Thanks: Chris Mears, Roberto Castañeda Lozano 3599[DESCRIPTION] 3600Fixed a bug in restart-based search, which would crash if the 3601problem is failed at the root or only had a single solution 3602during best-solution search. 3603 3604[RELEASE] 3605Version: 4.0.0 3606Date: 2013-03-14 3607[DESCRIPTION] 3608This release adds a multitude of new features, fixes many bugs, 3609and offers a number of performance improvements. There are too 3610many major improvements to even summarize them here all, so here 3611are just some highlights: LDSB as automatic symmetry breaking 3612during search; restart-based search; complete redesign and 3613reimplementation of branching enhancing the expressiveness 3614massively (AFC with decay, activity, user-defined variable and 3615value selection, tie-break control, better randomization, ...); 3616half-reification; addition of floating point constraints. 3617 3618It is recommended to read the new Chapter in MPG on branching as 3619the changes are substantial and require you to change your 3620programs, see also the full list of changes below. 3621 3622As the interfaces has changed, please consult \ref 3623PageHowToChange_4 "How to Change to Gecode 4.0.0". 3624 3625[ENTRY] 3626Module: flatzinc 3627What: change 3628Rank: minor 3629[DESCRIPTION] 3630Renamed the FlatZinc executable to fzn-gecode, to better distinguish 3631it when installed alongside other FlatZinc implementations. 3632 3633[ENTRY] 3634Module: int 3635What: new 3636Rank: major 3637Author: Christopher Mears 3638[DESCRIPTION] 3639Gecode now supports Lightweight Dynamic Symmetry Breaking (LDSB), 3640see MPG for details. 3641 3642[ENTRY] 3643Module: set 3644What: new 3645Rank: major 3646Author: Christopher Mears 3647[DESCRIPTION] 3648Gecode now supports Lightweight Dynamic Symmetry Breaking (LDSB), 3649see MPG for details. 3650 3651[ENTRY] 3652Module: int 3653What: new 3654Rank: major 3655Thanks: Manuel Loth 3656[DESCRIPTION] 3657Added value selection strategies for branching 3658INT_VAL_NEAR_MIN(), INT_VAL_NEAR_MAX(), INT_VAL_NEAR_INC(), and 3659INT_VAL_NEAR_DEC(). They can take a previous assignment to the 3660variables to branch on and try to choose values which are near 3661(see MPG for details). 3662 3663[ENTRY] 3664Module: int 3665What: new 3666Rank: minor 3667[DESCRIPTION] 3668Added domain constraint that constrains a variable (or an array) 3669according to the domain of another variable. 3670 3671[ENTRY] 3672Module: set 3673What: new 3674Rank: minor 3675[DESCRIPTION] 3676Added domain constraint that constrains a variable (or an array) 3677according to the domain of another variable. 3678 3679[ENTRY] 3680Module: set 3681What: new 3682Rank: minor 3683[DESCRIPTION] 3684Added domain constraints for arrays of set variables. 3685 3686[ENTRY] 3687Module: kernel 3688What: change 3689Rank: minor 3690[DESCRIPTION] 3691The default constrain() function for best-solution search now 3692does by default nothing (it used to throw an exception). 3693 3694[ENTRY] 3695Module: driver 3696What: new 3697Rank: major 3698[DESCRIPTION] 3699Added commandline options to control restart-based search, see 3700MPG for details. 3701 3702[ENTRY] 3703Module: search 3704What: new 3705Rank: major 3706[DESCRIPTION] 3707Added support for restart-based search, see MPG for details. 3708 3709[ENTRY] 3710Module: flatzinc 3711What: new 3712Rank: minor 3713[DESCRIPTION] 3714Added support for more search annotations (defined in gecode.mzn), and for 3715the restart and decay command line options. 3716 3717[ENTRY] 3718Module: other 3719What: new 3720Rank: minor 3721Thanks: Victor Zverovich 3722[DESCRIPTION] 3723Added CMake build script for Gecode (CMakeLists.txt). 3724 3725[ENTRY] 3726Module: int 3727What: new 3728Rank: minor 3729[DESCRIPTION] 3730Added variants of dom that copy the domain from one variable to 3731another. 3732 3733[ENTRY] 3734Module: driver 3735What: new 3736Rank: minor 3737[DESCRIPTION] 3738Decay values can now be passed on the command line using the 3739switch -decay. 3740 3741[ENTRY] 3742Module: search 3743What: change 3744Rank: major 3745[DESCRIPTION] 3746Variable selection for branching used the quotient of size 3747divided by degree, accumulated failure count, or activity. They 3748now use the inverse. That is, for example, it is not any longer 3749INT_VAR_SIZE_DEGREE_MIN() but INT_VAR_DEGREE_SIZE_MAX() (that is, 3750largest degree divided by size). 3751[MORE] 3752That looks like an annoying change but is in fact essential: the 3753strategies using accumulated failure count and activity now could 3754have run into division by zero issues. And just changing the 3755implementation is not good enough because the values of these 3756measures can now be exposed during tie-breaking. 3757 3758[ENTRY] 3759Module: other 3760What: new 3761Rank: major 3762[DESCRIPTION] 3763Variable selection using AFC now supports decay. Read more in MPG. 3764 3765[ENTRY] 3766Module: int 3767What: performance 3768Rank: major 3769[DESCRIPTION] 3770Arithmetic, linear, and cumulative constraints now resort to 3771internal operations using "long long int" rather than 3772"double". This improves performance but also extends the range 3773over integer coefficients that can be handled by linear 3774constraints. 3775 3776[ENTRY] 3777Module: flatzinc 3778What: bug 3779Rank: minor 3780[DESCRIPTION] 3781The mzn-gecode shell script now passes arguments correctly to the 3782FlatZinc interpreter. 3783 3784[ENTRY] 3785Module: other 3786What: change 3787Rank: minor 3788[DESCRIPTION] 3789Compiles with MSVC 2012. 3790 3791[ENTRY] 3792Module: gist 3793What: change 3794Rank: minor 3795[DESCRIPTION] 3796Updated to compile with Qt version 5.0 (still works with Qt >= 4.3 as well). 3797 3798[ENTRY] 3799Module: int 3800What: bug 3801Rank: minor 3802Thanks: Roberto Castañeda Lozano 3803[DESCRIPTION] 3804Fixed precede constraint with less than two values. 3805 3806[ENTRY] 3807Module: set 3808What: bug 3809Rank: minor 3810Thanks: Roberto Castañeda Lozano 3811[DESCRIPTION] 3812Fixed precede constraint with less than two values. 3813 3814[ENTRY] 3815Module: int 3816What: new 3817Rank: minor 3818[DESCRIPTION] 3819The nooverlap constraint now allows sharing of unassigned 3820variables in its argument arrays. 3821 3822[ENTRY] 3823Module: set 3824What: new 3825Rank: major 3826[DESCRIPTION] 3827Added half-reification for reified constraints (see Modeling and 3828Programming with Gecode for details). 3829 3830[ENTRY] 3831Module: int 3832What: new 3833Rank: major 3834[DESCRIPTION] 3835Added half-reification for reified constraints (see Modeling and 3836Programming with Gecode for details). 3837 3838[ENTRY] 3839Module: flatzinc 3840What: bug 3841Rank: minor 3842Thanks: Simon Ekvy 3843[DESCRIPTION] 3844Removed spurious debug output for among constraint. 3845 3846[ENTRY] 3847Module: int 3848What: bug 3849Rank: major 3850Thanks: Lin Yong 3851[DESCRIPTION] 3852Fixed a bug where bounds consistent distinct reported subsumption 3853instead of failure in certain cases. 3854 3855[ENTRY] 3856Module: support 3857What: bug 3858Rank: minor 3859[DESCRIPTION] 3860Fixed a concurrency problem that caused an exception to be thrown at 3861the end of a multi-threaded search on some platforms. 3862 3863[ENTRY] 3864Module: int 3865What: change 3866Rank: minor 3867[DESCRIPTION] 3868The coefficients for linear constraints are now divided by 3869their greatest common divisor. That means that some equations 3870can be handled now that previously threw an OutOfLimits exception, 3871and some equations can be handled with the more efficient integer 3872precision propagators that previously required double precision. 3873 3874[ENTRY] 3875Module: kernel 3876What: change 3877Rank: major 3878[DESCRIPTION] 3879The entire infrastructure for variable-value branchers has been 3880reimplemented from scratch. The new design makes a much better 3881compromise between code size, efficiency, and expressiveness: 3882the efficiency is about the same (for examples with no 3883propagation and just branching one can note a slowdown of 2-4%) 3884while code size shrinks drastically (the overall code size for 3885integer variables shrinks by 20%) and the architecture is much 3886more expressive (in particular, it supports tie-break limits, see 3887MPG). 3888 3889[ENTRY] 3890Module: int 3891What: change 3892Rank: minor 3893Thanks: Roberto Castañeda Lozano 3894[DESCRIPTION] 3895Generalized definition of no-overlap propagators for better reuse. 3896 3897[ENTRY] 3898Module: iter 3899What: documentation 3900Rank: minor 3901[DESCRIPTION] 3902Clarified for several iterators that when using the assignment 3903operator both iterators must be allocated from the very same 3904region. 3905 3906[ENTRY] 3907Module: int 3908What: change 3909Rank: major 3910[DESCRIPTION] 3911The interface for branching on integer and Boolean variables has 3912changed considerably (supporting user-defined variable and value 3913selection, tie-break limit functions, handlers to created 3914branchers, and more). In order to change, you have to add () to 3915all variants of INT_VAR, INT_VAL, and INT_ASSIGN. For example, 3916INT_VAR_SIZE_MIN becomes the function call INT_VAR_SIZE_MIN() and 3917INT_VAL_MIN_MIN becomes the function call INT_VAL_MIN_MIN(). Some 3918of these functions expect additional arguments and can take also 3919optional arguments (this replaces the VarBranchOptions and 3920ValBranchOptions). Please read the new "Branching" chapter 3921in MPG. 3922 3923[ENTRY] 3924Module: set 3925What: change 3926Rank: major 3927[DESCRIPTION] 3928The interface for branching on integer and Boolean variables has 3929changed considerably (supporting user-defined variable and value 3930selection, tie-break limit functions, handlers to created 3931branchers, and more). In order to change, you have to add () to 3932all variants of SET_VAR, SET_VAL, and SET_ASSIGN. For example, 3933SET_VAR_SIZE_MIN becomes the function call SET_VAR_SIZE_MIN() and 3934SET_VAL_MIN_INC becomes the function call SET_VAL_MIN_INC(). Some 3935of these functions expect additional arguments and can take also 3936optional arguments (this replaces the VarBranchOptions and 3937ValBranchOptions). Please read the new "Branching" chapter in 3938MPG. 3939 3940[ENTRY] 3941Module: kernel 3942What: new 3943Rank: minor 3944[DESCRIPTION] 3945The random seeds for variable and value branching options can now 3946be initialized from a hardware random number generator (see MPG 3947for details). 3948 3949[ENTRY] 3950Module: search 3951What: change 3952Rank: major 3953[DESCRIPTION] 3954The restart best solution search engine has been removed (it is 3955subsumed by the new restart-based meta search engine RBS). 3956 3957 3958[ENTRY] 3959Module: minimodel 3960What: new 3961Rank: minor 3962[DESCRIPTION] 3963Added pow and nroot expressions for integer variables. 3964 3965[ENTRY] 3966Module: int 3967What: new 3968Rank: major 3969[DESCRIPTION] 3970Added pow and nroot constraints. 3971 3972[ENTRY] 3973Module: int 3974What: bug 3975Rank: minor 3976[DESCRIPTION] 3977Fixed potential rounding issues in sqr and sqrt constraints. 3978 3979[ENTRY] 3980Module: search 3981What: performance 3982Rank: minor 3983[DESCRIPTION] 3984The search engines now do not allocate memory on the search stack for 3985the rightmost branch of each node. This means that the search tree 3986depth is now computed differently. It now represents the actual peak 3987depth required at any one time, taking into account that rightmost 3988branches reuse the stack entry of their parents. 3989 3990[ENTRY] 3991Module: int 3992What: bug 3993Rank: major 3994Thanks: Manuel Baclet 3995[DESCRIPTION] 3996Fixed copying of tuple sets in extensional constraints and IntSets in 3997sequence constraints (could lead to crashes when using parallel search). 3998 3999[ENTRY] 4000Module: support 4001What: bug 4002Rank: minor 4003Thanks: Max Ostrowski 4004[DESCRIPTION] 4005Fixed a bug in the allocation of very large bitsets. 4006 4007[ENTRY] 4008Module: kernel 4009What: performance 4010Rank: major 4011Thanks: Zandra Norman 4012[DESCRIPTION] 4013Fixed a bug in the main memory allocation routine: now heap block 4014sizes are decreased dynamically as they should be. Also changed 4015the memory configuration parameters as explained in: Zandra 4016Norman, Memory Management for Gecode. KTH Royal Institute of 4017Technology, Sweden, Bachelor thesis, TRITA-ICT-EX-2012:143, 2012. 4018 4019[ENTRY] 4020Module: driver 4021What: new 4022Rank: minor 4023Thanks: Andrea Pretto 4024[DESCRIPTION] 4025Added options -file-sol and -file-stat for writing solutions and 4026statistics to arbitrary files and streams. 4027 4028[ENTRY] 4029Module: flatzinc 4030What: bug 4031Rank: minor 4032Thanks: Jean-Noël Monette 4033[DESCRIPTION] 4034Exported registry and helper functions so that users can add 4035constraint handlers to the FlatZinc interpreter. 4036 4037[ENTRY] 4038Module: gist 4039What: new 4040Rank: minor 4041[DESCRIPTION] 4042Added option to invoke move cursors during the automatic search. 4043 4044[ENTRY] 4045Module: int 4046What: change 4047Rank: minor 4048[DESCRIPTION] 4049Respect IntConLevel argument for reified linear constraints with a 4050single integer variable. 4051 4052[ENTRY] 4053Module: int 4054What: bug 4055Rank: minor 4056Thanks: Jean-Noël Monette 4057[DESCRIPTION] 4058Added missing propagation for nary min/max constraint. 4059 4060[ENTRY] 4061Module: flatzinc 4062What: new 4063Rank: minor 4064[DESCRIPTION] 4065Added native support for lex_less_bool and lex_lesseq_bool. 4066 4067[ENTRY] 4068Module: int 4069What: bug 4070Rank: minor 4071Thanks: Peter Nightingale 4072[DESCRIPTION] 4073Make extensional constraints work with empty tuple sets. 4074 4075[ENTRY] 4076Module: int 4077What: bug 4078Rank: minor 4079Thanks: Peter Nightingale 4080[DESCRIPTION] 4081Fix count (global cardinality constraint) for multiple occurrences 4082of the same value in the cover array. 4083 4084[ENTRY] 4085Module: flatzinc 4086What: new 4087Rank: major 4088[DESCRIPTION] 4089Gecode/FlatZinc now supports float constraints and variables. 4090 4091[ENTRY] 4092Module: kernel 4093What: new 4094Rank: minor 4095[DESCRIPTION] 4096All ArgArrays now accept STL vectors and input iterators for construction. 4097 4098[ENTRY] 4099Module: flatzinc 4100What: new 4101Rank: major 4102Thanks: Gabriel Hjort Blindell 4103[DESCRIPTION] 4104The FlatZinc interpreter now supports comparing of nodes in Gist. 4105 4106[ENTRY] 4107Module: flatzinc 4108What: change 4109Rank: major 4110[DESCRIPTION] 4111The FlatZinc interpreter no longer performs a complete search on variables 4112annotated as var_is_introduced, but tries to extend a solution on the model 4113variables to a solution that includes the introduced variables. Each solution 4114on the model variables is therefore only reported once. 4115 4116[ENTRY] 4117Module: float 4118What: new 4119Rank: major 4120Author: Vincent Barichard 4121[DESCRIPTION] 4122Added support for float variables. 4123 4124[ENTRY] 4125Module: int 4126What: new 4127Rank: minor 4128Thanks: Kathrin Dannmann, Roberto Castañeda Lozano 4129[DESCRIPTION] 4130The binpacking constraint now also accepts items of size zero. 4131 4132[ENTRY] 4133Module: int 4134What: new 4135Rank: major 4136[DESCRIPTION] 4137Added activity-based branching strategies for integer and Boolean 4138variables: INT_VAR_ACTIVITY_MIN, INT_VAR_ACTIVITY_MAX, 4139INT_VAR_ACTIVITY_SIZE_MIN, INT_VAR_ACTIVITY_SIZE_MAX. For 4140details, see "Modeling and Programming with Gecode". 4141 4142[ENTRY] 4143Module: set 4144What: new 4145Rank: major 4146[DESCRIPTION] 4147Added activity-based branching strategies for set variables: 4148SET_VAR_ACTIVITY_MIN, SET_VAR_ACTIVITY_MAX, 4149SET_VAR_ACTIVITY_SIZE_MIN, SET_VAR_ACTIVITY_SIZE_MAX. For 4150details, see "Modeling and Programming with Gecode". 4151 4152[ENTRY] 4153Module: kernel 4154What: new 4155Rank: major 4156[DESCRIPTION] 4157The kernel now can record the activity of variables. The activity 4158of a variable is defined as how often the domain of a variable 4159has been pruned during search. For details, see "Modeling and 4160Programming with Gecode". 4161 4162[ENTRY] 4163Module: example 4164What: new 4165Rank: minor 4166[DESCRIPTION] 4167New example: Colored matrix without monochromatic rectangles. 4168 4169[ENTRY] 4170Module: driver 4171What: new 4172Rank: minor 4173Thanks: Josef Eisl 4174[DESCRIPTION] 4175The command line -print-last configures whether only the last 4176solution found is printed. 4177 4178[ENTRY] 4179Module: driver 4180What: change 4181Rank: minor 4182[DESCRIPTION] 4183Boolean options (BoolOption) can now be given a false or true argument 4184and hence are in-line with all other option types. 4185 4186[ENTRY] 4187Module: kernel 4188What: change 4189Rank: minor 4190[DESCRIPTION] 4191Throw exception when the user-defined copy constructor of a class 4192that inherits from Space does not call the Space copy constructor. 4193 4194[ENTRY] 4195Module: set 4196What: new 4197Rank: major 4198Author: Denys Duchier 4199[DESCRIPTION] 4200Added channeling constraint between arrays of set variables. 4201 4202[ENTRY] 4203Module: flatzinc 4204What: new 4205Rank: minor 4206[DESCRIPTION] 4207Added native support for the inverse_set constraint. 4208 4209[ENTRY] 4210Module: minimodel 4211What: change 4212Rank: minor 4213[DESCRIPTION] 4214Made implementations of MiniModel expressions private, so that the 4215MiniModel headers do not have to include propagator headers like 4216gecode/int/linear.hh any longer. 4217 4218 4219[RELEASE] 4220Version: 3.7.3 4221Date: 2012-03-23 4222[DESCRIPTION] 4223This release fixes some small bugs in the FlatZinc interpreter and library. 4224 4225[ENTRY] 4226Module: flatzinc 4227What: bug 4228Rank: minor 4229Thanks: Marco Correia 4230[DESCRIPTION] 4231Fixed "largest" variable selection strategy for set variables. 4232 4233[ENTRY] 4234Module: flatzinc 4235What: change 4236Rank: minor 4237[DESCRIPTION] 4238Removed the print command line option. Instead, for optimization problems, 4239using -a will print all solutions, while not using -a will only print the 4240last one. This is consistent with the G12 FlatZinc command line interface. 4241 4242[ENTRY] 4243Module: flatzinc 4244What: bug 4245Rank: minor 4246Thanks: Thibaut Feydy 4247[DESCRIPTION] 4248Fixed the parser for set literals. 4249 4250[ENTRY] 4251Module: flatzinc 4252What: new 4253Rank: minor 4254[DESCRIPTION] 4255Added mzn-gecode scripts for conveniently solving MiniZinc models 4256using the Gecode FlatZinc interpreter. 4257 4258[ENTRY] 4259Module: flatzinc 4260What: bug 4261Rank: minor 4262[DESCRIPTION] 4263Integer variables with empty domains result in unsatisfiable models 4264instead of an error message. 4265 4266[ENTRY] 4267Module: flatzinc 4268What: bug 4269Rank: minor 4270[DESCRIPTION] 4271Support 0-length array declarations. 4272 4273[RELEASE] 4274Version: 3.7.2 4275Date: 2012-02-27 4276[DESCRIPTION] 4277This release fixes several small bugs. 4278 4279[ENTRY] 4280Module: flatzinc 4281What: bug 4282Rank: minor 4283[DESCRIPTION] 4284Export RTTI symbols for the FlatZinc AST so that it can be used 4285by client code. 4286 4287[ENTRY] 4288Module: other 4289What: new 4290Rank: minor 4291Thanks: Adam Russell 4292[DESCRIPTION] 4293Gecode now compiles on NetBSD. 4294 4295[ENTRY] 4296Module: int 4297What: change 4298Rank: minor 4299[DESCRIPTION] 4300Throw exception of type OutOfLimits instead of Exception when 4301numerical arguments to sequence constraint are out of range. 4302 4303[ENTRY] 4304Module: int 4305What: bug 4306Rank: minor 4307Thanks: Joseph Scott 4308[DESCRIPTION] 4309Added missing pruning to cumulative edge finding propagator. 4310 4311[ENTRY] 4312Module: driver 4313What: bug 4314Rank: minor 4315Thanks: Serge Le Huitouze 4316[DESCRIPTION] 4317Fixed rounding for printing the runtime (for example, 43181:60:56.157 could be printed...). 4319 4320[ENTRY] 4321Module: set 4322What: bug 4323Rank: major 4324Thanks: Denys Duchier 4325[DESCRIPTION] 4326The element constraint with SOT_UNION and IntSetArgs reported 4327subsumption too early, resulting in incorrect propagation. 4328 4329[ENTRY] 4330Module: minimodel 4331What: bug 4332Rank: minor 4333[DESCRIPTION] 4334The BoolExpr default constructor did not properly initialize 4335its members, causing crashes. 4336 4337[ENTRY] 4338Module: int 4339What: performance 4340Rank: minor 4341[DESCRIPTION] 4342Posting a reified dom constraint on IntVars with an assigned control 4343variable does not create propagators any more, but updates the 4344domain immediately. 4345 4346[ENTRY] 4347Module: flatzinc 4348What: bug 4349Rank: minor 4350Thanks: Nicholas Tung 4351[DESCRIPTION] 4352Do not crash when encountering undefined identifier as constraint argument. 4353 4354[ENTRY] 4355Module: int 4356What: bug 4357Rank: minor 4358Thanks: Kish Shen 4359[DESCRIPTION] 4360Fixed sorted constraint to accept zero-length arrays. 4361 4362[ENTRY] 4363Module: int 4364What: bug 4365Rank: minor 4366Thanks: Kish Shen 4367[DESCRIPTION] 4368Added some missing propagation when posting a channel constraint 4369between an array of Boolean variables and an integer variable. 4370 4371[ENTRY] 4372Module: other 4373What: new 4374Rank: minor 4375Thanks: Denys Duchier 4376[DESCRIPTION] 4377Added a macro GECODE_VERSION_NUMBER that is defined as 4378x*1000000+y*100+z for Gecode version x.y.z. 4379 4380[ENTRY] 4381Module: driver 4382What: bug 4383Rank: minor 4384Thanks: Jan Kelbel 4385[DESCRIPTION] 4386Fixed time output for times with zero minutes but nonzero hours. 4387 4388[ENTRY] 4389Module: kernel 4390What: new 4391Rank: minor 4392[DESCRIPTION] 4393Added Archive operators for floats and doubles. 4394 4395[RELEASE] 4396Version: 3.7.1 4397Date: 2011-10-10 4398[DESCRIPTION] 4399This release fixes several bugs, upgrades to MiniZinc version 44001.4, and features some minor improvements. 4401 4402[ENTRY] 4403Module: int 4404What: change 4405Rank: minor 4406[DESCRIPTION] 4407The semantics of n-ary Boolean implication has been changed (to 4408the more convential reading): rel(home, BOT_IMP, x, y) where x is 4409an array of Boolean variable now assumes implication to be right 4410associative. See MPG for explanation. 4411 4412[ENTRY] 4413Module: int 4414What: new 4415Rank: minor 4416[DESCRIPTION] 4417Added efficient propagators for n-ary Boolean xor and equivalence 4418(as they are now primitive in MiniZinc). 4419 4420[ENTRY] 4421Module: flatzinc 4422What: change 4423Rank: minor 4424[DESCRIPTION] 4425The FlatZinc interpreter is now compatible with the G12 MiniZinc 4426distribution 1.4. This adds support for var and par identifiers that 4427begin with underscores, the array_bool_xor primitive, as well as the 4428command line option -r for specifying a random seed. 4429 4430[ENTRY] 4431Module: int 4432What: new 4433Rank: minor 4434Thanks: Kish Shen 4435[DESCRIPTION] 4436Domain consistency for simple counting constraints can be 4437switched off. 4438 4439[ENTRY] 4440Module: flatzinc 4441What: bug 4442Rank: major 4443Thanks: Håkan Kjellerstrand 4444[DESCRIPTION] 4445Fixed linear inequations over integer variables that are channeled 4446from Boolean variables. 4447 4448[ENTRY] 4449Module: support 4450What: bug 4451Rank: minor 4452[DESCRIPTION] 4453Compile again if threads are disabled. 4454 4455[ENTRY] 4456Module: int 4457What: performance 4458Rank: minor 4459[DESCRIPTION] 4460Domain consistent distinct runs 10-20% faster. 4461 4462[ENTRY] 4463Module: set 4464What: bug 4465Rank: major 4466[DESCRIPTION] 4467Do not use SharedArray<IntSet> in the set element constraints, 4468because it does not properly udpate the IntSet during copying. 4469This could cause memory corruption. 4470 4471[ENTRY] 4472Module: int 4473What: bug 4474Rank: major 4475[DESCRIPTION] 4476Fixed bugs in the computation of the required precision 4477(int or double) for linear propagation, and in division 4478operations of scale views. These could cause an incorrect 4479treatment of overflow in linear constraints. 4480 4481[ENTRY] 4482Module: search 4483What: bug 4484Rank: minor 4485[DESCRIPTION] 4486Fixed a bug that crashed the single-thread branch-and-bound 4487search engine when initialized with a failed space. 4488 4489[ENTRY] 4490Module: gist 4491What: bug 4492Rank: minor 4493[DESCRIPTION] 4494Fixed a crash that occurred when double-clicking an unexplored 4495node while move inspectors were active. 4496 4497 4498[RELEASE] 4499Version: 3.7.0 4500Date: 2011-08-31 4501[DESCRIPTION] 4502This release adds and improves quite a number of constraints 4503(total lexicographic order for set variables, membership 4504constraints for integer variables, counting constraints for 4505integer variables using integer sets, range, roots, set element 4506constraints for integer variables, number of values for integer 4507variables). All of these constraints (and some more) are now also 4508available in FlatZinc. Additionally, some fixes and improvements. 4509 4510This release is an important milestone as %Gecode now provides 4511native implementations for all important constraints available 4512in MiniZinc/FlatZinc. 4513 4514The documentation of constraints in "Modeling and Programming 4515with Gecode" now refers to the Global Constraint Catalog (for 4516those constraints that are listed in the catalog). 4517 4518[ENTRY] 4519Module: gist 4520What: bug 4521Rank: minor 4522[DESCRIPTION] 4523Call solution inspectors also when exploring manually. 4524 4525[ENTRY] 4526Module: gist 4527What: bug 4528Rank: minor 4529[DESCRIPTION] 4530Flush output to Gist console, so that output that is not ended by a 4531newline is not lost. 4532 4533[ENTRY] 4534Module: flatzinc 4535What: bug 4536Rank: major 4537[DESCRIPTION] 4538Added missing primitives set_le, set_lt, set_ge, and set_gt. 4539 4540[ENTRY] 4541Module: set 4542What: new 4543Rank: major 4544[DESCRIPTION] 4545Added set relations SRT_LQ, SRT_LE, SRT_GQ, SRT_GR for total 4546(lexicographic) order. 4547 4548[ENTRY] 4549Module: other 4550What: bug 4551Rank: minor 4552Thanks: Gustavo Gutierrez 4553[DESCRIPTION] 4554Install generated variable implementation headers instead of the shipped 4555versions (fixes a problem when building Gecode in a separate directory). 4556 4557[ENTRY] 4558Module: int 4559What: new 4560Rank: major 4561[DESCRIPTION] 4562Added normal and reified membership constraints for integer and 4563Boolean variables. 4564 4565[ENTRY] 4566Module: minimodel 4567What: new 4568Rank: minor 4569[DESCRIPTION] 4570Added a convenience function values that restricts the set of values 4571taken by an array of integer variables to a fixed set, using the nvalues 4572constraint. The channel constraints between IntVarArgs and a SetVar now 4573also use nvalues to increase propagation. 4574 4575[ENTRY] 4576Module: int 4577What: bug 4578Rank: minor 4579[DESCRIPTION] 4580Added some additional propagation for the count constraints (now, 4581for example, count(home, x, y, IRT_GQ, 1) also constrains y to 4582only take values supported by x). 4583 4584[ENTRY] 4585Module: int 4586What: new 4587Rank: major 4588[DESCRIPTION] 4589The count constraints now also support comparison to integer sets 4590in addition to integers and integer variables (which then implements among 4591from the GCCAT). 4592 4593[ENTRY] 4594Module: minimodel 4595What: new 4596Rank: minor 4597[DESCRIPTION] 4598Added range and roots, which decompose into set element constraints. 4599 4600[ENTRY] 4601Module: flatzinc 4602What: new 4603Rank: major 4604[DESCRIPTION] 4605Added native support for among, nvalues, int_set_channel, 4606member_bool, member_int, sum_pred, and the range and roots 4607constraints. 4608 4609[ENTRY] 4610Module: set 4611What: new 4612Rank: minor 4613[DESCRIPTION] 4614Added set element constraints with singleton integer variables 4615as arguments. 4616 4617[ENTRY] 4618Module: set 4619What: bug 4620Rank: minor 4621Thanks: Johannes Inführ 4622[DESCRIPTION] 4623Fixed a memory leak in the set weights constraint, and use 4624IntSharedArray instead of IntArgs as parameters for weights. 4625 4626[ENTRY] 4627Module: kernel 4628What: bug 4629Rank: minor 4630Thanks: Max Ostrowski 4631[DESCRIPTION] 4632Array slices can now be created from empty arrays. 4633 4634[ENTRY] 4635Module: int 4636What: new 4637Rank: major 4638[DESCRIPTION] 4639Added nvalues constraint. 4640 4641[ENTRY] 4642Module: example 4643What: new 4644Rank: minor 4645[DESCRIPTION] 4646Added Dominating %Queens puzzle. 4647 4648[ENTRY] 4649Module: kernel 4650What: new 4651Rank: minor 4652[DESCRIPTION] 4653View arrays can now also use region-allocated memory. 4654 4655[ENTRY] 4656Module: int 4657What: bug 4658Rank: major 4659[DESCRIPTION] 4660The estimation of bounds on linear terms did not handle overflow 4661correctly. 4662 4663[ENTRY] 4664Module: iter 4665What: change 4666Rank: minor 4667[DESCRIPTION] 4668Cached iterators such as n-ary union and intersection, minus, and 4669cache (of course) are not any longer template classes but take 4670template constructors and member functions. N-ary union and 4671intersection iterators can now also be initialized incrementaly 4672with iterators of different types. 4673 4674[ENTRY] 4675Module: flatzinc 4676What: change 4677Rank: minor 4678[DESCRIPTION] 4679The set_in and set_in_reif constraints now work for constant sets 4680even when %Gecode is compiled without support for set variables. 4681 4682 4683[RELEASE] 4684Version: 3.6.0 4685Date: 2011-07-15 4686[DESCRIPTION] 4687This release adds new constraints (value precedence constraints 4688for integer and set variables, no-overlap constraints for 4689rectangles, constraints for Hamiltonian paths), improves and 4690cleans up a number of existing constraints (scheduling, 4691channeling, relation, bin-packing, lexicographic relations), and 4692adds new functionality (support for externalization of choices 4693for distributed search, support for incremental propagation). 4694 4695Some models might have to be changed as the graph and scheduling 4696modules have been incorporated into the integer module (removing 4697the respective include directives is sufficient). 4698 4699On top, there are many small fixes, in particular for FlatZinc. 4700 4701[ENTRY] 4702Module: int 4703What: change 4704Rank: minor 4705[DESCRIPTION] 4706The cumulatives constraint now does not post the s+p=e constraints, 4707harmonizing its semantics with the cumulative and unary constraints. 4708 4709[ENTRY] 4710Module: int 4711What: new 4712Rank: minor 4713[DESCRIPTION] 4714The cumulative constraints now support an IntVar as the capacity 4715argument. 4716 4717[ENTRY] 4718Module: example 4719What: new 4720Rank: minor 4721[DESCRIPTION] 4722Added Schur's Lemma puzzle. 4723 4724[ENTRY] 4725Module: int 4726What: performance 4727Rank: minor 4728[DESCRIPTION] 4729Optimized channeling propagator between an array of Boolean 4730variables and an integer variables. 4731 4732[ENTRY] 4733Module: int 4734What: change 4735Rank: major 4736[DESCRIPTION] 4737Changed semantics of rel(home, x, IRT_NQ), enforces that not all 4738variables in x are equal. See "Modeling and Programming with 4739Gecode" for details. 4740 4741[ENTRY] 4742Module: flatzinc 4743What: new 4744Rank: major 4745[DESCRIPTION] 4746Added native support for the precedence constraint. 4747 4748[ENTRY] 4749Module: set 4750What: new 4751Rank: major 4752Author: Christopher Mears 4753[DESCRIPTION] 4754Added value precedence constraint. 4755 4756[ENTRY] 4757Module: int 4758What: new 4759Rank: major 4760Author: Christopher Mears 4761[DESCRIPTION] 4762Added value precedence constraint. 4763 4764[ENTRY] 4765Module: int 4766What: performance 4767Rank: minor 4768[DESCRIPTION] 4769The disequality constraint between variable arrays has an efficient 4770propagator now. 4771 4772[ENTRY] 4773Module: int 4774What: performance 4775Rank: major 4776[DESCRIPTION] 4777The ordering constraints rel(home, x, IRT_LE) (also for IRT_LQ, 4778IRT_GR, IRT_GQ) now have an optimal implementation (single 4779incremental propagator). 4780 4781[ENTRY] 4782Module: driver 4783What: bug 4784Rank: minor 4785Thanks: Jan Kelbel 4786[DESCRIPTION] 4787Fixed a small memory leak in the driver (stop objects were not deleted). 4788 4789[ENTRY] 4790Module: int 4791What: performance 4792Rank: major 4793[DESCRIPTION] 4794Increased performance of bin-packing propagator by 40 to 300 4795percent by using staging. 4796 4797[ENTRY] 4798Module: flatzinc 4799What: new 4800Rank: major 4801[DESCRIPTION] 4802Added native support for the no-overlap constraint (called diffn in 4803MiniZinc/FlatZinc). 4804 4805[ENTRY] 4806Module: int 4807What: new 4808Rank: major 4809[DESCRIPTION] 4810Added no-overlap constraint that enforces that rectangles do not 4811overlap (also known as diffn). See "Modeling and Programming with 4812Gecode" for details. 4813 4814[ENTRY] 4815Module: int 4816What: new 4817Rank: major 4818[DESCRIPTION] 4819Added constraints for Hamiltonian paths (called 4820path). See "Modeling and Programming with Gecode" for details. 4821 4822[ENTRY] 4823Module: flatzinc 4824What: new 4825Rank: minor 4826Thanks: Håkan Kjellerstrand 4827[DESCRIPTION] 4828Support indomain_middle and indomain_interval search annotation by 4829replacing them with indomain_median and indomain_split, respectively. 4830 4831[ENTRY] 4832Module: gist 4833What: change 4834Rank: minor 4835[DESCRIPTION] 4836Zoom-to-fit can now be selected during search. 4837 4838[ENTRY] 4839Module: graph 4840What: change 4841Rank: major 4842[DESCRIPTION] 4843The graph module has been removed and its constraints have been 4844added to the integer module. 4845 4846[ENTRY] 4847Module: scheduling 4848What: change 4849Rank: major 4850[DESCRIPTION] 4851The scheduling module has been removed and its constraints have been 4852added to the integer module. 4853 4854[ENTRY] 4855Module: int 4856What: bug 4857Rank: minor 4858[DESCRIPTION] 4859Fixed element and sequence propagators, which were only 4860correct by accident (incorrect use of GECODE_ME_CHECK instead of 4861GECODE_ES_CHECK). 4862 4863[ENTRY] 4864Module: set 4865What: bug 4866Rank: minor 4867[DESCRIPTION] 4868Fixed sequence, partition, and union propagators, which were only 4869correct by accident (incorrect use of GECODE_ME_CHECK instead of 4870GECODE_ES_CHECK). 4871 4872[ENTRY] 4873Module: scheduling 4874What: bug 4875Rank: minor 4876[DESCRIPTION] 4877Fixed scheduling code for mandatory flexible tasks, which was only 4878correct by accident (incorrect use of GECODE_ME_CHECK instead of 4879GECODE_ES_CHECK). 4880 4881[ENTRY] 4882Module: flatzinc 4883What: new 4884Rank: minor 4885[DESCRIPTION] 4886Added native support for link_set_to_booleans, 4887global_cardinality_low_up_closed, and decreasing_bool. 4888 4889[ENTRY] 4890Module: int 4891What: new 4892Rank: minor 4893Thanks: Kish Shen 4894[DESCRIPTION] 4895Generalized lexicographic constraint to arrays of different sizes. 4896 4897[ENTRY] 4898Module: search 4899What: bug 4900Rank: minor 4901[DESCRIPTION] 4902Fixed memory leak when passing a failed space to a search engine with cloning 4903option set to false. 4904 4905[ENTRY] 4906Module: kernel 4907What: new 4908Rank: minor 4909[DESCRIPTION] 4910Moved RangeList class, which is a list of ranges implemented as a FreeList, 4911from the set module into the kernel. Also added corresponding 4912Iter::Ranges::RangeList iterator. 4913 4914[ENTRY] 4915Module: int 4916What: new 4917Rank: major 4918[DESCRIPTION] 4919Added a CachedView that can cache the domain between propagator invocations 4920and provides an efficient test whether a view has changed since the previous 4921invocation as well as an iterator over the removed domain values. This makes 4922it easier to implement incremental propagation algorithms that need exact 4923delta information. 4924 4925[ENTRY] 4926Module: set 4927What: new 4928Rank: major 4929[DESCRIPTION] 4930Added a CachedView that can cache the domain between propagator invocations 4931and provides an efficient test whether a view has changed since the previous 4932invocation as well as an iterator over the removed domain values. This makes 4933it easier to implement incremental propagation algorithms that need exact 4934delta information. 4935 4936[ENTRY] 4937Module: set 4938What: performance 4939Rank: minor 4940[DESCRIPTION] 4941Use new cached views for a more efficient implementation of the channel constraint between IntVarArgs and SetVarArgs. 4942 4943[ENTRY] 4944Module: gist 4945What: bug 4946Rank: minor 4947[DESCRIPTION] 4948Changed keyboard shortcuts in Gist so that they work on all platforms: "Inspect" 4949is now Ctrl+number of inspector, for "Inspect before fixpoint" press Alt in 4950addition (on Mac OS, use the Command key instead of Ctrl). 4951 4952[ENTRY] 4953Module: other 4954What: bug 4955Rank: minor 4956Thanks: Martin Mann 4957[DESCRIPTION] 4958Fixed Makefile, now installation works when FlatZinc library is disabled. 4959 4960[ENTRY] 4961Module: other 4962What: new 4963Rank: minor 4964Thanks: Ruben Zilibowitz 4965[DESCRIPTION] 4966Added configure option --enable-small-codesize that results in 4967slightly less efficient but more compact code being generated for 4968non-debug builds. 4969 4970[ENTRY] 4971Module: set 4972What: bug 4973Rank: minor 4974[DESCRIPTION] 4975The constructors for set variable arrays and argument arrays threw incorrect 4976VariableEmptyDomain exceptions. 4977 4978[ENTRY] 4979Module: graph 4980What: new 4981Rank: minor 4982[DESCRIPTION] 4983Added circuit constraints with offsets. 4984 4985[ENTRY] 4986Module: int 4987What: performance 4988Rank: minor 4989[DESCRIPTION] 4990The channel constraints between two integer arrays are now more 4991memory efficient when offsets are used. 4992 4993[ENTRY] 4994Module: kernel 4995What: change 4996Rank: major 4997[DESCRIPTION] 4998Choices can now be written into an externalized form (called an Archive), 4999and reconstructed from it. This is necessary for serializing paths in 5000a distributed search engine. 5001 5002[ENTRY] 5003Module: flatzinc 5004What: change 5005Rank: minor 5006[DESCRIPTION] 5007Adapted the MiniZinc declarations and the command line options for 5008Gecode/FlatZinc to MiniZinc 1.3. The fz binary now works with the 5009minizinc driver script. 5010 5011[ENTRY] 5012Module: flatzinc 5013What: bug 5014Rank: minor 5015Thanks: Håkan Kjellerstrand 5016[DESCRIPTION] 5017Re-enabled the global cardinality constraint in the FlatZinc interpreter. 5018 5019[ENTRY] 5020Module: flatzinc 5021What: bug 5022Rank: minor 5023Thanks: Håkan Kjellerstrand 5024[DESCRIPTION] 5025Fixed the MiniZinc definition for the circuit constraints to work with 5026arbitrarily indexed arrays. 5027 5028[ENTRY] 5029Module: gist 5030What: change 5031Rank: minor 5032Thanks: Alin Gherman 5033[DESCRIPTION] 5034Compiles under MSVC 2005 SP1 again. 5035 5036[ENTRY] 5037Module: set 5038What: new 5039Rank: minor 5040Thanks: Marco Correia 5041[DESCRIPTION] 5042Added channel aliases for set union of an array of integer variables, 5043and renamed channel to channelSorted. 5044 5045[ENTRY] 5046Module: set 5047What: documentation 5048Rank: minor 5049Thanks: Marco Correia 5050[DESCRIPTION] 5051Fixed documentation for set channeling constraint. 5052 5053 5054[RELEASE] 5055Version: 3.5.0 5056Date: 2011-02-01 5057[DESCRIPTION] 5058This release fixes serious bugs in parallel search, FlatZinc, 5059fixes some DLL issues on Windows, adds support for FreeBSD, and 5060adds STL-style iterators for arrays. 5061 5062[ENTRY] 5063Module: search 5064What: bug 5065Rank: major 5066Thanks: Denys Duchier, Chris Mears 5067[DESCRIPTION] 5068Fixed a serious bug in parallel search (took over a year to 5069isolate the bug). 5070 5071[ENTRY] 5072Module: other 5073What: new 5074Rank: minor 5075Thanks: Peter Penchev 5076[DESCRIPTION] 5077Gecode now compiles on FreeBSD. 5078 5079[ENTRY] 5080Module: kernel 5081What: new 5082Rank: major 5083Author: Gregory Crosswhite 5084[DESCRIPTION] 5085Added STL compatible iteration support for arrays (variable 5086arrays, argument arrays, view arrays, and shared arrays). 5087 5088[ENTRY] 5089Module: minimodel 5090What: bug 5091Rank: minor 5092Thanks: Alexander Kleff 5093[DESCRIPTION] 5094Do not inline construction of linear, Boolean, and set 5095expressions to avoid cross-DLL allocation/deallocation issues on 5096Windows. 5097 5098[ENTRY] 5099Module: other 5100What: new 5101Rank: major 5102[DESCRIPTION] 5103Embed resource information into Gecode DLLs and EXEs on Windows. 5104 5105[ENTRY] 5106Module: flatzinc 5107What: bug 5108Rank: major 5109Thanks: Roberto Castañeda Lozano 5110[DESCRIPTION] 5111Fixed incorrect posting of linear constraints with variable arrays 5112of size one. 5113 5114[ENTRY] 5115Module: other 5116What: change 5117Rank: minor 5118[DESCRIPTION] 5119Embed manifest into Gecode DLLs on Windows. 5120 5121[ENTRY] 5122Module: flatzinc 5123What: change 5124Rank: major 5125[DESCRIPTION] 5126Fixed the definitions of global_cardinality to work with MiniZinc 1.2 and 5127newer, and added corresponding definitions of global_cardinality_closed and 5128global_cardinality_low_up_closed. 5129 5130 5131[RELEASE] 5132Version: 3.4.2 5133Date: 2010-10-09 5134[DESCRIPTION] 5135This release removes LDS from Gecode as it is patented in the US. 5136 5137[ENTRY] 5138Module: search 5139What: removed 5140Rank: minor 5141[DESCRIPTION] 5142Removed limited discrepancy search (LDS) as it is patented in the US. 5143 5144[ENTRY] 5145Module: flatzinc 5146What: new 5147Rank: minor 5148[DESCRIPTION] 5149Added support for binpacking constraint. 5150 5151[RELEASE] 5152Version: 3.4.1 5153Date: 2010-10-08 5154[DESCRIPTION] 5155This release adds a new global constraint for binpacking (with 5156extended example) and filter functions for branchers. The 5157reference documentation has been cleaned up. In particular, 5158information on how to obtain, install, and link Gecode has been 5159expanded and moved to "Modeling and Programming with Gecode" 5160(Section 2.6). Additionally, the release fixes some bugs and 5161contains some performance improvements. 5162 5163[ENTRY] 5164Module: example 5165What: new 5166Rank: major 5167[DESCRIPTION] 5168Added a binpacking model using the binpacking constraint and CDBF 5169(complete decreasing best fit) search. 5170 5171[ENTRY] 5172Module: int 5173What: new 5174Rank: major 5175[DESCRIPTION] 5176Added a binpacking constraint and propagator. 5177 5178[ENTRY] 5179Module: driver 5180What: new 5181Rank: minor 5182[DESCRIPTION] 5183Added a class InstanceOptions that takes one additional string argument. 5184 5185[ENTRY] 5186Module: flatzinc 5187What: new 5188Rank: minor 5189[DESCRIPTION] 5190Added support for global_cardinality_low_up. 5191 5192[ENTRY] 5193Module: other 5194What: documentation 5195Rank: minor 5196[DESCRIPTION] 5197Removed obsolete Glossary in reference documentation. 5198 5199[ENTRY] 5200Module: int 5201What: bug 5202Rank: minor 5203Thanks: Gustavo A. Gómez Farhat 5204[DESCRIPTION] 5205Do not inline functions with variable arguments. 5206 5207[ENTRY] 5208Module: gist 5209What: change 5210Rank: minor 5211[DESCRIPTION] 5212Only center node on double-click if it was undetermined (otherwise 5213inspecting several nodes becomes slightly annoying). 5214 5215[ENTRY] 5216Module: minimodel 5217What: change 5218Rank: minor 5219[DESCRIPTION] 5220Added element expression for BoolVarArgs. 5221 5222[ENTRY] 5223Module: minimodel 5224What: bug 5225Rank: minor 5226[DESCRIPTION] 5227Fixed memory allocation for non-linear expressions and made the 5228LinExpr constructor explicit for non-linear expressions (previously 5229the automatic cast from integers to LinExpr was sometimes ambiguous). 5230 5231[ENTRY] 5232Module: scheduling 5233What: bug 5234Rank: major 5235Thanks: Roberto Castañeda Lozano 5236[DESCRIPTION] 5237Fixed initialization for unary and cumulative edge-finding (just 5238worked accidentally). 5239 5240[ENTRY] 5241Module: kernel 5242What: change 5243Rank: major 5244Thanks: Felix Brandt 5245[DESCRIPTION] 5246Branching now honors filter functions, where variables are 5247considered for branching only if the filter functions returns 5248true (see "Modeling and Programming with Gecode" for details). 5249 5250[ENTRY] 5251Module: kernel 5252What: change 5253Rank: minor 5254[DESCRIPTION] 5255Variable implementation views are now parametric with respect to 5256variables but not variable implementations (see "Modeling and 5257Programming with Gecode" for details). 5258 5259[ENTRY] 5260Module: kernel 5261What: change 5262Rank: minor 5263[DESCRIPTION] 5264Renamed the template class for variables defined by a variable 5265implementation from Var to VarImpVar and re-added a class Var as 5266base class for any variable type. 5267 5268[ENTRY] 5269Module: int 5270What: bug 5271Rank: minor 5272Thanks: Kish Shen 5273[DESCRIPTION] 5274The reified dom constraint failed instead of setting the BoolVar to 0 when the 5275minimum argument given was greater than the maximum. 5276 5277[ENTRY] 5278Module: int 5279What: performance 5280Rank: minor 5281Thanks: Kish Shen 5282[DESCRIPTION] 5283Fixed sortedness constraint by replacing an algorithm that is linear in the 5284width of the union of all domains with an algorithm that is quadratic in the 5285number of variables. The previous algorithm crashed for domains with large 5286values due to excessive memory use. 5287 5288[ENTRY] 5289Module: int 5290What: performance 5291Rank: minor 5292[DESCRIPTION] 5293Using ICL_DOM for binary linear equations with unit coefficients (such as x = 5294y+3) is now implemented using the much more efficient binary equality 5295propagator instead of the linear equation propagator (which has worst case 5296exponential runtime). 5297 5298[ENTRY] 5299Module: gist 5300What: performance 5301Rank: minor 5302[DESCRIPTION] 5303Saved some memory for each node in Gist (one pointer per node, two integers 5304per inner node, and some additional memory on 64 bit platforms due to optimizing 5305alignment), and speeded up deallocation of the tree (e.g. when resetting or 5306closing Gist). 5307 5308[ENTRY] 5309Module: iter 5310What: performance 5311Rank: minor 5312[DESCRIPTION] 5313Reimplemented n-ary union, minus, and cache iterators for much 5314better efficiency. 5315 5316[ENTRY] 5317Module: flatzinc 5318What: performance 5319Rank: minor 5320[DESCRIPTION] 5321The FlatZinc parser now uses hash maps instead of STL maps, which 5322significantly increases parsing performance for larger files. 5323Furthermore, a single symbol table is used, also increasing 5324performance and allowing to report duplicate symbol errors, 5325which were previously ignored. 5326 5327 5328[RELEASE] 5329Version: 3.4.0 5330Date: 2010-07-26 5331[DESCRIPTION] 5332This release includes: considerably improved support for posting 5333expressions and relations (also including set and full arithmetic 5334expressions); other improvements for modeling (array 5335initialization and element addition to arrays); state-of-the-art 5336unary and cumulative scheduling propagators (including optional 5337and flexible tasks); major cleanups of the variable and view 5338infrastructure (now also documented in MPG); cleanups of the 5339examples; several other fixes and performance improvements. 5340 5341This release is the first to be accompanied by a complete version 5342of "Modeling and Programming in Gecode" which has been extended 5343by many new case studies and parts on programming search engines 5344and variables. 5345 5346[ENTRY] 5347Module: flatzinc 5348What: bug 5349Rank: minor 5350[DESCRIPTION] 5351Boolean relations were incorrect on assigned arguments. 5352 5353[ENTRY] 5354Module: kernel 5355What: bug 5356Rank: minor 5357[DESCRIPTION] 5358Posting a propagator in a failed space could make the space 5359non-failed again. 5360 5361[ENTRY] 5362Module: kernel 5363What: new 5364Rank: minor 5365[DESCRIPTION] 5366Added LocalObject and LocalHandle classes that can be used for 5367space-allocated objects that are shared within a space, for 5368example among several propagators or propagators and branchers. 5369 5370[ENTRY] 5371Module: other 5372What: change 5373Rank: major 5374[DESCRIPTION] 5375Completely cleaned up variables and views, drastically saving code. 5376 5377[ENTRY] 5378Module: other 5379What: removed 5380Rank: minor 5381[DESCRIPTION] 5382Variables do not have init functions any longer as they are not 5383needed, see MPG for discussion. 5384 5385[ENTRY] 5386Module: scheduling 5387What: new 5388Rank: major 5389[DESCRIPTION] 5390Added scheduling constraints for tasks with flexible duration 5391(for both unary and cumulative resources), and made all scheduling 5392propagators deal correctly with zero length tasks. 5393 5394[ENTRY] 5395Module: scheduling 5396What: new 5397Rank: major 5398[DESCRIPTION] 5399Added propagators for cumulative scheduling. 5400 5401[ENTRY] 5402Module: minimodel 5403What: bug 5404Rank: minor 5405Thanks: Håkan Kjellerstrand 5406[DESCRIPTION] 5407Fixed a bug in minimodel, which could crash when using zero 5408coefficients. 5409 5410[ENTRY] 5411Module: driver 5412What: change 5413Rank: minor 5414[DESCRIPTION] 5415The driver now catches SIGINT (i.e., pressing Ctrl-C) and stops 5416the search properly, printing statistics up to the point where 5417it stopped. 5418 5419[ENTRY] 5420Module: gist 5421What: change 5422Rank: minor 5423[DESCRIPTION] 5424If an inspector throws an exception, an error message is 5425printed indicating which inspector caused the problem. 5426Previously, Gist would crash with a Qt error that was difficult 5427to trace. 5428 5429[ENTRY] 5430Module: flatzinc 5431What: bug 5432Rank: minor 5433[DESCRIPTION] 5434Fixed garbage collection of variables that are not printed. The 5435bug lead to variables being mixed up in the output. 5436 5437[ENTRY] 5438Module: example 5439What: removed 5440Rank: minor 5441[DESCRIPTION] 5442Removed stress tests, the real examples are much more stressful, 5443actually! 5444 5445[ENTRY] 5446Module: minimodel 5447What: change 5448Rank: minor 5449[DESCRIPTION] 5450The Matrix class now supports const operations and has an output 5451operator. 5452 5453[ENTRY] 5454Module: minimodel 5455What: change 5456Rank: major 5457[DESCRIPTION] 5458Linear expressions can now contain non-linear parts, such as 5459multiplications or divisions, or set expressions such as 5460cardinality. 5461 5462[ENTRY] 5463Module: minimodel 5464What: change 5465Rank: major 5466[DESCRIPTION] 5467The minimodel post functions have been split into two functions, rel 5468and expr. While rel posts a constraint, expr returns a new variable 5469constrained to the given expression. This change makes it possible to 5470get rid of the reification operator (~) as well as the tt and ff 5471functions, which were previously needed to distinguish between 5472relations and expressions. Boolean equivalence and implication can 5473now be expressed using operators (==,<<,>>). 5474 5475[ENTRY] 5476Module: minimodel 5477What: new 5478Rank: major 5479[DESCRIPTION] 5480The minimodel library now provides convenient post functions 5481for set constraints. 5482 5483[ENTRY] 5484Module: set 5485What: bug 5486Rank: minor 5487[DESCRIPTION] 5488Fixed the include and exclude tell operations of set variables so 5489that they work with empty ranges. 5490 5491[ENTRY] 5492Module: example 5493What: change 5494Rank: minor 5495[DESCRIPTION] 5496The Nonogram example now uses AFC as the default branching and 5497includes some more instances. 5498 5499[ENTRY] 5500Module: example 5501What: new 5502Rank: minor 5503[DESCRIPTION] 5504New custom branching for the BACP example using a custom value selection. 5505 5506[ENTRY] 5507Module: other 5508What: change 5509Rank: minor 5510[DESCRIPTION] 5511The configure script now checks for qmake-qt4 and moc-qt4, which are used on 5512some Linux systems to distinguish between Qt3 and Qt4. 5513 5514[ENTRY] 5515Module: driver 5516What: change 5517Rank: minor 5518[DESCRIPTION] 5519Running a script in time mode stops all iterations and samples 5520immediately if a single run reaches a limit (eases benchmarks 5521with timeouts). 5522 5523[ENTRY] 5524Module: int 5525What: performance 5526Rank: minor 5527[DESCRIPTION] 5528Optimized element propagator, expect a speed up of around 35-50% 5529in most cases. 5530 5531[ENTRY] 5532Module: minimodel 5533What: performance 5534Rank: minor 5535[DESCRIPTION] 5536Posting linear expressions performs more aggressive optimizations 5537for assigned variables. 5538 5539[ENTRY] 5540Module: minimodel 5541What: performance 5542Rank: minor 5543[DESCRIPTION] 5544Arithmetic modeling functions now try to avoid creating new 5545variables and posting propagators for common cases. 5546 5547[ENTRY] 5548Module: set 5549What: change 5550Rank: minor 5551[DESCRIPTION] 5552The argument arrays now have constructors that create new variables. 5553 5554[ENTRY] 5555Module: int 5556What: change 5557Rank: minor 5558[DESCRIPTION] 5559The argument arrays now have constructors that create new variables. 5560 5561[ENTRY] 5562Module: int 5563What: change 5564Rank: minor 5565[DESCRIPTION] 5566IntArgs with simple sequences of values can now be created using the 5567IntArgs::create static member function. 5568 5569[ENTRY] 5570Module: other 5571What: change 5572Rank: minor 5573[DESCRIPTION] 5574The build system now supports Visual C++ 2010. 5575 5576[ENTRY] 5577Module: minimodel 5578What: change 5579Rank: minor 5580[DESCRIPTION] 5581Array slices can now be empty. 5582 5583[ENTRY] 5584Module: kernel 5585What: change 5586Rank: major 5587[DESCRIPTION] 5588The support for dynamically resizing variable arrays has been 5589removed (it was buggy and inefficient). Instead, all argument 5590arrays now support adding elements using operator<<. In addition, 5591all arrays now support concatenation using operator+ and slicing, 5592and variable arrays, view arrays, and variable argument arrays 5593include a test whether all variables are assigned. 5594 5595[ENTRY] 5596Module: example 5597What: change 5598Rank: minor 5599[DESCRIPTION] 5600Take advantage of the better modeling support for the BIBD, Golomb 5601ruler, Kakuro, Black Hole, and Warehouse examples (nothing but dusting off 5602examples that have been around for ages). 5603 5604[ENTRY] 5605Module: int 5606What: new 5607Rank: minor 5608[DESCRIPTION] 5609You can now construct IntArgs from an STL vector, an IntSharedArray, 5610or using simple comprehensions. 5611 5612[ENTRY] 5613Module: gist 5614What: bug 5615Rank: minor 5616[DESCRIPTION] 5617Fixed bug in Gist where signals were sent across threads, which 5618makes Qt crash in certain situations on some platforms. 5619 5620[ENTRY] 5621Module: gist 5622What: bug 5623Rank: minor 5624Thanks: David Zaremby 5625[DESCRIPTION] 5626Fixed bug in interactive search where every move in the tree required 5627recomputation. 5628 5629 5630[RELEASE] 5631Version: 3.3.1 5632Date: 2010-04-09 5633[DESCRIPTION] 5634This release adds many new features to Gist, fixes two major bugs 5635in extensional constraints, and has some more cleanups to comply 5636with the first release of the "Modeling and Programming with 5637Gecode" document. And, as always some small fixes and cleanups. 5638 5639[ENTRY] 5640Module: other 5641What: documentation 5642Rank: minor 5643[DESCRIPTION] 5644Removed many small documentation quirks. 5645 5646[ENTRY] 5647Module: flatzinc 5648What: performance 5649Rank: minor 5650[DESCRIPTION] 5651Variables that do not have output annotations are now garbage 5652collected during copying. 5653 5654[ENTRY] 5655Module: flatzinc 5656What: performance 5657Rank: minor 5658[DESCRIPTION] 5659When using sums of Boolean variables using bool2int in MiniZinc, 5660the FlatZinc interpreter now posts the more efficient propagators 5661that work directly on the Boolean variables. 5662 5663[ENTRY] 5664Module: scheduling 5665What: bug 5666Rank: minor 5667[DESCRIPTION] 5668The unary scheduling propagator with optional tasks missed some 5669propagation sometimes. 5670 5671[ENTRY] 5672Module: int 5673What: bug 5674Rank: major 5675[DESCRIPTION] 5676Fixed extensional constraint with finite automata for very 5677unlikely (but apparantely possible) border case. 5678 5679[ENTRY] 5680Module: gist 5681What: new 5682Rank: major 5683[DESCRIPTION] 5684In addition to inspectors, you can now also register comparators, which can be 5685used to compare two nodes in the tree. In combination with the option to 5686compare before computing a fixpoint of the second node, this lets you see what 5687exactly was modified by a branching. 5688 5689[ENTRY] 5690Module: set 5691What: bug 5692Rank: minor 5693[DESCRIPTION] 5694Fixed channeling between set and integer variables which did not propagate 5695enough. 5696 5697[ENTRY] 5698Module: int 5699What: bug 5700Rank: major 5701[DESCRIPTION] 5702The extensional constraints with tuple sets could cause crashes 5703when used with parallel search. 5704 5705[ENTRY] 5706Module: gist 5707What: bug 5708Rank: minor 5709[DESCRIPTION] 5710Missing export declarations prevented embedding Gist as a widget. There is 5711now example code for embedding Gist in the directory 5712gecode/gist/standalone-example. 5713 5714[ENTRY] 5715Module: gist 5716What: new 5717Rank: major 5718[DESCRIPTION] 5719Gist can now stop exploration after all alternatives of a certain branching 5720are exhausted. This feature can be turned on by posting a special branching 5721using the Gist::stopBranch post function. Gist will then stop whenever that 5722special branching becomes active. 5723 5724[ENTRY] 5725Module: kernel 5726What: bug 5727Rank: minor 5728[DESCRIPTION] 5729Fixed bug in VarArray::resize function that occurred when shrinking 5730variable arrays. 5731 5732[ENTRY] 5733Module: kernel 5734What: change 5735Rank: minor 5736[DESCRIPTION] 5737The (unused and unusable) CopiedHandle have been removed. 5738 5739[ENTRY] 5740Module: scheduling 5741What: change 5742Rank: minor 5743[DESCRIPTION] 5744Tasks in unary scheduling constraints may now have processing times of 0. 5745 5746[ENTRY] 5747Module: gist 5748What: new 5749Rank: minor 5750[DESCRIPTION] 5751Added inspection of nodes before fixpoint computation. 5752 5753[ENTRY] 5754Module: set 5755What: removed 5756Rank: minor 5757[DESCRIPTION] 5758Removed Set::IntSetPropagator and Set::IntSetRePropagator because they are 5759subsumed by the MixBinaryPropagator patterns. 5760 5761[ENTRY] 5762Module: gist 5763What: bug 5764Rank: minor 5765[DESCRIPTION] 5766Fixed a bug where sometimes clicking on a node would select a different node. 5767 5768[ENTRY] 5769Module: gist 5770What: performance 5771Rank: major 5772[DESCRIPTION] 5773Scrolling and zooming have been reimplemented. The new implementation is more 5774efficient and works around problems that occurred with large trees on some 5775platforms. Zooming is now more intuitive, keeping the current center 5776centered. You can now also zoom by pressing shift while using the mouse wheel. 5777 5778[ENTRY] 5779Module: example 5780What: new 5781Rank: minor 5782[DESCRIPTION] 5783Added Gist inspectors for the Knights and Queens examples. 5784 5785[ENTRY] 5786Module: driver 5787What: new 5788Rank: minor 5789[DESCRIPTION] 5790You can now register Gist inspectors in the driver options. 5791 5792[ENTRY] 5793Module: gist 5794What: new 5795Rank: minor 5796[DESCRIPTION] 5797Nodes can now be bookmarked. 5798 5799[ENTRY] 5800Module: gist 5801What: new 5802Rank: minor 5803[DESCRIPTION] 5804Added inspectors that react whenever a node is selected. 5805 5806[ENTRY] 5807Module: flatzinc 5808What: change 5809Rank: minor 5810[DESCRIPTION] 5811Comply with MiniZinc 1.1. String literals are not allowed any longer 5812except in annotations, the solver outputs UNKNOWN and UNSATISFIABLE 5813instead of just ==========, and the global constraints all_equal, 5814decreasing_int, and decreasing_bool are supported. 5815 5816 5817 5818[RELEASE] 5819Version: 3.3.0 5820Date: 2010-03-15 5821[DESCRIPTION] 5822This release provides some fixes, some performance improvements 5823for domain propagators, and quite some clean ups how propagators 5824and advisors report their status to the kernel. Many of these 5825clean ups are essential to make it easier to program propagators 5826and branchers with Gecode. 5827 5828[ENTRY] 5829Module: other 5830What: bug 5831Rank: minor 5832[DESCRIPTION] 5833Configure now prepend options to the CXXFLAGS and CFLAGS variables 5834instead of appending them. That way, defining the variables when 5835invoking configure overrides the choices configure makes (e.g. 5836overriding the default -O3 with -O2). 5837 5838[ENTRY] 5839Module: int 5840What: change 5841Rank: minor 5842[DESCRIPTION] 5843Patterns for reified propagators have been moved to the 5844Gecode::Int namespace. 5845 5846[ENTRY] 5847Module: set 5848What: change 5849Rank: minor 5850[DESCRIPTION] 5851Patterns for set propagators have been moved to the 5852Gecode::Set namespace. 5853 5854[ENTRY] 5855Module: kernel 5856What: bug 5857Rank: minor 5858[DESCRIPTION] 5859ViewValBrancher with random value selection did not produce a 5860random sequence of values. 5861 5862[ENTRY] 5863Module: kernel 5864What: new 5865Rank: minor 5866[DESCRIPTION] 5867Advisors now can force its propagator to be rescheduled, 5868including recomputation of its cost used for scheduling 5869(normally, a propagator is only rescheduled if its modification 5870event delta changes). An advisor can signal forceful rescheduling 5871by returning ES_NOFIX_FORCE or returning the return value of 5872ES_NOFIX_FORCE_DISPOSE. Read the forthcoming "Modeling and 5873Programming with Gecode" for details. 5874 5875[ENTRY] 5876Module: kernel 5877What: change 5878Rank: minor 5879[DESCRIPTION] 5880The failure macros for posting GECODE_ES_FAIL and GECODE_ME_FAIL 5881now only accept a single argument and assume that "home" actually 5882refers to the home space. Read the forthcoming "Modeling and 5883Programming with Gecode" for details. 5884 5885[ENTRY] 5886Module: kernel 5887What: change 5888Rank: minor 5889[DESCRIPTION] 5890The functions ES_FIX_PARTIAL, ES_NOFIX_PARTIAL, ES_FIX_DISPOSE, 5891and ES_NOFIX_DISPOSE are now member of Space. Read the 5892forthcoming "Modeling and Programming with Gecode" for details. 5893 5894[ENTRY] 5895Module: kernel 5896What: change 5897Rank: minor 5898[DESCRIPTION] 5899The function ES_SUBSUMED now is a member of Space and accepts a 5900propagator as its single argument. The variant with a size as the 5901second argument is available as ES_SUBSUMED_DISPOSED but use is 5902highly discouraged. Read the forthcoming "Modeling and 5903Programming with Gecode" for details. 5904 5905[ENTRY] 5906Module: kernel 5907What: change 5908Rank: minor 5909[DESCRIPTION] 5910The functions ES_SUBSUMED_FIX and ES_SUBSUMED_NOFIX for advisors 5911have been renamed to ES_FIX_DISPOSE and ES_NOFIX_DISPOSE. Read 5912the forthcoming "Modeling and Programming with Gecode" for 5913details. 5914 5915[ENTRY] 5916Module: flatzinc 5917What: change 5918Rank: minor 5919[DESCRIPTION] 5920The FlatZinc interpreter can now be extended by plugins that implement 5921custom search strategies. The plugins are implemented as dynamically loaded 5922libraries using the Qt plugin mechanism. An example can be found in the 5923directory gecode/flatzinc/exampleplugin. 5924 5925[ENTRY] 5926Module: flatzinc 5927What: change 5928Rank: minor 5929[DESCRIPTION] 5930The index of the variable used for optimization is now available in the 5931FlatZincSpace class. 5932 5933[ENTRY] 5934Module: flatzinc 5935What: change 5936Rank: minor 5937[DESCRIPTION] 5938Added command line option -print, which controls whether all solutions are 5939printed or only the last one that is found, and -search, to choose between 5940branch-and-bound and restart optimization. 5941 5942[ENTRY] 5943Module: flatzinc 5944What: change 5945Rank: minor 5946[DESCRIPTION] 5947The FlatZinc library can now parse a FlatZinc model into any subclass of 5948FlatZincSpace, so that custom extensions can be built. Annotations on the 5949solve item can now be accessed from the returned FlatZincSpace, so that 5950additional search strategies can be implemented. 5951 5952[ENTRY] 5953Module: flatzinc 5954What: bug 5955Rank: minor 5956[DESCRIPTION] 5957The FlatZinc interpreter ignored the -c-d and -a-d command line 5958switches when used with Gist. 5959 5960[ENTRY] 5961Module: minimodel 5962What: removed 5963Rank: minor 5964[DESCRIPTION] 5965Removed special cases for posting linear and Boolean expressions 5966consisting of a single variable only (was highly ambigious). 5967 5968[ENTRY] 5969Module: minimodel 5970What: new 5971Rank: minor 5972[DESCRIPTION] 5973Linear expressions can freely mix integer and Boolean variables 5974and support construction from variable arrays via a sum function. 5975 5976[ENTRY] 5977Module: support 5978What: performance 5979Rank: major 5980[DESCRIPTION] 5981Changed to single, really efficient bitset implementation used 5982allover the system. 5983 5984[ENTRY] 5985Module: int 5986What: performance 5987Rank: major 5988[DESCRIPTION] 5989Considerably improved performance and memory consumption of the 5990DFA-based extensional constraint (regular). 5991 5992[ENTRY] 5993Module: int 5994What: new 5995Rank: minor 5996[DESCRIPTION] 5997Integer sets (IntSet) now have a in member function for testing 5998whether an integer is included. 5999 6000[ENTRY] 6001Module: gist 6002What: bug 6003Rank: minor 6004[DESCRIPTION] 6005Avoid inter-thread call to QWidget::update, which apparently causes a slight 6006memory leak (and warning messages on stderr) on Mac OS. 6007 6008 6009 6010[RELEASE] 6011Version: 3.2.2 6012Date: 2009-11-30 6013[DESCRIPTION] 6014This release adds the sequence constraint (contributed by David 6015Rijsman, Quintiq) and has as always some small additions and 6016fixes. 6017 6018[ENTRY] 6019Module: int 6020What: bug 6021Rank: minor 6022Thanks: Alberto Delgado 6023[DESCRIPTION] 6024The global cardinality (count) constraint now accepts unsorted 6025arrays of values. It previously propagated incorrectly if the 6026array was not sorted. 6027 6028[ENTRY] 6029Module: int 6030What: bug 6031Rank: minor 6032[DESCRIPTION] 6033Fixed bug in the ICL_VAL propagator for global cardinality. 6034 6035[ENTRY] 6036Module: flatzinc 6037What: bug 6038Rank: minor 6039Thanks: Håkan Kjellerstrand 6040[DESCRIPTION] 6041Support search annotations with constants in the variable arrays. 6042 6043[ENTRY] 6044Module: search 6045What: bug 6046Rank: minor 6047[DESCRIPTION] 6048The memory reported could be sometimes too low (the previous fix 6049for 3.2.0 did not fix it for branch and bound search). 6050 6051[ENTRY] 6052Module: kernel 6053What: bug 6054Rank: minor 6055Thanks: Gustavo Gutierrez 6056[DESCRIPTION] 6057Added missing assignment operator for space-based allocators for 6058STL data structures. 6059 6060[ENTRY] 6061Module: iter 6062What: change 6063Rank: minor 6064[DESCRIPTION] 6065Renamed test for subset or disjointness of range iterators to "compare". 6066 6067[ENTRY] 6068Module: flatzinc 6069What: bug 6070Rank: minor 6071[DESCRIPTION] 6072The set_in and set_in_reif constraints were buggy when used with Boolean 6073variables (which are usually not generated by mzn2fzn so that the issue 6074probably does not occur in practice). 6075 6076[ENTRY] 6077Module: set 6078What: bug 6079Rank: minor 6080[DESCRIPTION] 6081Subscription to constant views did not honor the flag to avoid 6082processing (did not occur in practice). 6083 6084[ENTRY] 6085Module: int 6086What: bug 6087Rank: minor 6088[DESCRIPTION] 6089Subscription to constant views did not honor the flag to avoid 6090processing. 6091 6092[ENTRY] 6093Module: example 6094What: new 6095Rank: minor 6096[DESCRIPTION] 6097Added car sequencing example (problem 1 in CSPLib). Uses the new 6098sequence-constraint. 6099 6100[ENTRY] 6101Module: int 6102What: new 6103Rank: major 6104Author: David Rijsman 6105[DESCRIPTION] 6106Added sequence constraint. 6107 6108[ENTRY] 6109Module: driver 6110What: new 6111Rank: minor 6112[DESCRIPTION] 6113Report if search engine has been stopped. 6114 6115[ENTRY] 6116Module: flatzinc 6117What: bug 6118Rank: minor 6119[DESCRIPTION] 6120The global_cardinality constraint was not completely compatible with 6121the MiniZinc semantics. It would constrain values not mentioned in the 6122array to have zero occurrences, while in MiniZinc they are unrestricted. 6123 6124[ENTRY] 6125Module: flatzinc 6126What: bug 6127Rank: major 6128Thanks: Håkan Kjellerstrand 6129[DESCRIPTION] 6130Element constraints in reified positions produced an error in the mzn2fzn 6131translation. 6132 6133 6134[RELEASE] 6135Version: 3.2.1 6136Date: 2009-11-04 6137[DESCRIPTION] 6138This release fixes one serious bug in the element constraint for 6139matrices; adds branchings using accumulated failure counts (also 6140known as weighted degree); provides some optimizations (mostly 6141for element constraints and for regular expressions with millions 6142of nodes); adds two cute models (word-square and crossword); and 6143a little this and that as always. 6144 6145[ENTRY] 6146Module: minimodel 6147What: performance 6148Rank: minor 6149Thanks: Håkan Kjellerstrand 6150[DESCRIPTION] 6151Conversion of a regular expression to a DFA would crash on 6152regular expressions with several million nodes (due to running 6153out of call stack space). 6154 6155[ENTRY] 6156Module: set 6157What: change 6158Rank: minor 6159[DESCRIPTION] 6160Split rel-op.cpp and rel-op-const.cpp into several compilation units, to avoid 6161excessive memory and time usage of the gcc compiler. 6162 6163[ENTRY] 6164Module: int 6165What: performance 6166Rank: minor 6167[DESCRIPTION] 6168Element constraints for integer arrays now accept shared integer 6169arrays (IntSharedArray). By this, the very same array can be 6170shared among several element constraints. Models require no 6171change, as IntArgs are automatically coerced to 6172IntSharedArrays. See "Modeling with Gecode" for more 6173explanation. 6174 6175[ENTRY] 6176Module: int 6177What: change 6178Rank: minor 6179[DESCRIPTION] 6180The semantics of division and modulo has changed to match the C standard. This 6181means that the operations round towards zero, and that the result of the 6182modulo has the same sign as its first argument. 6183 6184[ENTRY] 6185Module: example 6186What: bug 6187Rank: minor 6188Thanks: Jan Wolter 6189[DESCRIPTION] 6190The Nonogram example no longer crashes on empty lines. 6191 6192[ENTRY] 6193Module: int 6194What: performance 6195Rank: minor 6196[DESCRIPTION] 6197Optimized element for matrices (in special cases, the propagator 6198is up to six times as efficient as before). 6199 6200[ENTRY] 6201Module: flatzinc 6202What: bug 6203Rank: minor 6204[DESCRIPTION] 6205Fixed statistics output (number of solutions was sometimes wrong). 6206 6207[ENTRY] 6208Module: int 6209What: bug 6210Rank: major 6211[DESCRIPTION] 6212Fixed segfault in matrix element constraint. 6213 6214[ENTRY] 6215Module: example 6216What: new 6217Rank: minor 6218Author: Håkan Kjellerstrand 6219[DESCRIPTION] 6220Added word square puzzle. 6221 6222[ENTRY] 6223Module: example 6224What: new 6225Rank: minor 6226Thanks: Peter Van Beek 6227[DESCRIPTION] 6228Added crossword puzzle (thanks to Peter Van Beek for providing 6229access to some crossword grids). 6230 6231[ENTRY] 6232Module: int 6233What: new 6234Rank: minor 6235[DESCRIPTION] 6236Added INT_VAL_RANGES_MIN (and INT_VAL_RANGES_MAX) as value 6237selection for branching: it tries the values from the smallest 6238(largest) range first, if the variable's domain has several 6239ranges, otherwise it splits the domain. 6240 6241[ENTRY] 6242Module: int 6243What: bug 6244Rank: minor 6245[DESCRIPTION] 6246Added missing dispose function for linear disequality of Boolean 6247variables (the only problem was that with a proper dispose 6248function more memory can be reused when the propagator becomes 6249subsumed, so really a tiny quirk). 6250 6251[ENTRY] 6252Module: int 6253What: new 6254Rank: major 6255[DESCRIPTION] 6256Added AFC-based branching strategies for integer and Boolean 6257variables: INT_VAR_AFC_MIN, INT_VAR_AFC_MAX, 6258INT_VAR_SIZE_AFC_MIN, INT_VAR_SIZE_AFC_MAX. For details, see 6259"Modeling with Gecode". 6260 6261[ENTRY] 6262Module: set 6263What: new 6264Rank: major 6265[DESCRIPTION] 6266Added AFC-based branching strategies for set variables: 6267SET_VAR_AFC_MIN, SET_VAR_AFC_MAX, SET_VAR_SIZE_AFC_MIN, 6268SET_VAR_SIZE_AFC_MAX. For details, see "Modeling with Gecode". 6269 6270[ENTRY] 6271Module: kernel 6272What: new 6273Rank: major 6274[DESCRIPTION] 6275Propagators and variables now maintain an accumulated failure 6276count (AFC). 6277[MORE] 6278The AFC of a propagator counts how often has the propagator 6279failed during the entire search, and the AFC of a variable is its 6280degree plus the sum of the AFCs of all propagators depending on 6281the variable. While it looks straightforward, this required a 6282major extension of the Gecode kernel to deal with global 6283information accessed concurrently from several threads during 6284search. The AFC is also known as "weighted degree". 6285 6286[ENTRY] 6287Module: example 6288What: change 6289Rank: minor 6290[DESCRIPTION] 6291Sudoku and GraphColor now uses smallest size over accumulated failure 6292count (AFC) as the default heuristic. 6293 6294[ENTRY] 6295Module: bug 6296What: set 6297Rank: minor 6298[DESCRIPTION] 6299For branching, SET_VAR_DEGREE_MAX would select the variable with 6300smallest rather than largest degree. 6301 6302[ENTRY] 6303Module: other 6304What: change 6305Rank: major 6306[DESCRIPTION] 6307Now posting of propagators and branchers take an object of class 6308Home (rather than just a space) that can carry additional 6309information relevant for posting (for example, groups and 6310accumulated failure information). Models do not need to be 6311changed in any way! 6312[MORE] 6313While models require no change, propagator rewriting does (it 6314will work but some information might be lost). Instead of writing 6315something like 6316GECODE_REWRITE(*this,SomeProp::post(home,...)); 6317where *this is the propagator to be rewritten, you should now 6318write 6319GECODE_REWRITE(*this,SomeProp::post(home(*this),...)); 6320By this, the new propagator will inherit information from *this 6321(in particular the accumulated failure count). 6322 6323 6324[RELEASE] 6325Version: 3.2.0 6326Date: 2009-10-05 6327[DESCRIPTION] 6328This release has some important bug fixes (in particular for 6329global cardinality aka count), the documentation has been 6330improved (worked around some issues with generation by doxygen), 6331integrates the FlatZinc interpreter into the Gecode source tree, 6332provides propagators for disjunctive scheduling (experimental), 6333and lots of small changes and fixes. For more consistent names, 6334branchings are branchers now and branching descriptions are 6335choices (this you might have to adapt to). 6336 6337 6338[ENTRY] 6339Module: scheduling 6340What: new 6341Rank: major 6342[DESCRIPTION] 6343Added propagators for disjunctive scheduling (unary resource 6344scheduling). This is still experimental as the propagators are 6345not yet optimized and branching and modelling support is not yet 6346available. 6347 6348[ENTRY] 6349Module: search 6350What: bug 6351Rank: minor 6352[DESCRIPTION] 6353The memory reported could be sometimes too low (that could only 6354happen when an advisor allocates memory which they do only now). 6355 6356[ENTRY] 6357Module: other 6358What: documentation 6359Rank: major 6360[DESCRIPTION] 6361Cleaned up the generated reference documentation, and introduced a number 6362of workarounds for issues in doxygen. In particular, the documentation for 6363linear constraints over Boolean variables and for the thread abstractions 6364is now generated properly. 6365 6366[ENTRY] 6367Module: flatzinc 6368What: new 6369Rank: major 6370[DESCRIPTION] 6371The Gecode interpreter for the FlatZinc language is now part of the main 6372Gecode source tree. 6373 6374[ENTRY] 6375Module: int 6376What: performance 6377Rank: minor 6378Thanks: George Katsirelos, Nina Narodytska 6379[DESCRIPTION] 6380Extensional propagators using DFAs or REGs (aka regular) use a 6381more compact state representation but create their state more 6382eagerly. That can improve performance considerably (twice as fast) at a slight 6383increase in memory. 6384 6385[ENTRY] 6386Module: gist 6387What: bug 6388Rank: minor 6389[DESCRIPTION] 6390Gist now places clones also on the leftmost branch during search. 6391 6392[ENTRY] 6393Module: other 6394What: documentation 6395Rank: minor 6396Thanks: Vivian De Smedt 6397[DESCRIPTION] 6398Mention that also grep is needed for building Gecode. 6399 6400[ENTRY] 6401Module: int 6402What: bug 6403Rank: minor 6404Thanks: Jan Kelbel 6405[DESCRIPTION] 6406Slightly improved strength of the division propagator. 6407 6408[ENTRY] 6409Module: example 6410What: bug 6411Rank: minor 6412Thanks: Geoffrey Chu 6413[DESCRIPTION] 6414Fixed wrong symmetry breaking for TSP. 6415 6416[ENTRY] 6417Module: support 6418What: change 6419Rank: minor 6420Thanks: Alexandre Fayolle 6421[DESCRIPTION] 6422No longer depend on availability of timersub. 6423 6424[ENTRY] 6425Module: int 6426What: performance 6427Rank: minor 6428[DESCRIPTION] 6429Optimized n-ary disjunction and conjunction and the clause constraint. 6430 6431[ENTRY] 6432Module: int 6433What: performance 6434Rank: minor 6435[DESCRIPTION] 6436Linear constraints over Boolean variables with unit coefficients 6437(aka Boolean cardinality constraints) have been 6438reimplemented. Less memory (minus 30%) and more speed. For 6439example, BIBD runs 10% faster now. 6440 6441[ENTRY] 6442Module: search 6443What: change 6444Rank: minor 6445[DESCRIPTION] 6446Optimized thread creation by thread pools, now the creation and 6447deletion of arbitrarily many parallel search engines also works 6448for platforms using pthreads (Linux and MacOS). 6449 6450[ENTRY] 6451Module: other 6452What: change 6453Rank: minor 6454Thanks: David Rijsman 6455[DESCRIPTION] 6456Compiles with MSVC 2005 again. 6457 6458[ENTRY] 6459Module: other 6460What: bug 6461Rank: minor 6462[DESCRIPTION] 6463The configure script checked for Qt 4.2, although Gist requires at least 6464Qt 4.3. 6465 6466[ENTRY] 6467Module: int 6468What: bug 6469Rank: major 6470[DESCRIPTION] 6471Fixed serious bug in the bounds propagator for global cardinality. 6472 6473[ENTRY] 6474Module: kernel 6475What: change 6476Rank: major 6477[DESCRIPTION] 6478A branching is now a brancher and a branching description is now a choice. 6479[MORE] 6480Classes and member functions have been renamed accordingly. The 6481change is necessary due to proper explanation in the forthcoming 6482"Programming with Gecode". 6483 6484[ENTRY] 6485Module: search 6486What: bug 6487Rank: minor 6488[DESCRIPTION] 6489Compiles again if no threads available. 6490 6491[ENTRY] 6492Module: gist 6493What: change 6494Rank: minor 6495[DESCRIPTION] 6496The Gist console now has a toolbar that provides buttons to clear the text 6497as well as to configure the console window to stay on top of Gist. 6498Furthermore, after adding output, the console now automatically scrolls to the 6499bottom. 6500 6501[ENTRY] 6502Module: graph 6503What: new 6504Rank: minor 6505[DESCRIPTION] 6506Cost-based variants for circuit added. 6507 6508[ENTRY] 6509Module: set 6510What: change 6511Rank: minor 6512[DESCRIPTION] 6513The element constraint with an integer index variable now throws 6514an exception if used with an empty array. 6515 6516[ENTRY] 6517Module: int 6518What: change 6519Rank: minor 6520[DESCRIPTION] 6521The element constraint now computes more accurate variable bounds 6522when being posted (to avoid arithmetic overflow in naive models). 6523 6524[ENTRY] 6525Module: int 6526What: change 6527Rank: minor 6528[DESCRIPTION] 6529The element constraint now throws an exception if used with an 6530empty array. 6531 6532[ENTRY] 6533Module: example 6534What: bug 6535Rank: minor 6536[DESCRIPTION] 6537Fixed zero cost edges in TSP examples. 6538 6539[ENTRY] 6540Module: example 6541What: change 6542Rank: minor 6543[DESCRIPTION] 6544Examples now use the symmetry-option for symmetry-breaking. 6545[MORE] 6546The affected examples are: 6547 - BlackHole 6548 - EFPA 6549 - Pentominoes 6550 - SteelMill 6551 . 6552 6553[ENTRY] 6554Module: driver 6555What: new 6556Rank: minor 6557[DESCRIPTION] 6558Added new standard option for options called symmetry. 6559 6560[ENTRY] 6561Module: int 6562What: new 6563Rank: minor 6564Thanks: Kish Shen 6565[DESCRIPTION] 6566Added regret_min and regret_max for IntVar and BoolVar (they were 6567only available for IntView). 6568 6569[ENTRY] 6570Module: int 6571What: change 6572Rank: minor 6573[DESCRIPTION] 6574Moved cumulatives to the new scheduling library. 6575 6576[ENTRY] 6577Module: scheduling 6578What: new 6579Rank: minor 6580[DESCRIPTION] 6581Added a new module for scheduling. To use scheduling 6582constraints, you have to include <gecode/scheduling.hh> and link 6583against the scheduling library. 6584 6585[ENTRY] 6586Module: int 6587What: change 6588Rank: minor 6589[DESCRIPTION] 6590Moved circuit to the new graph library. 6591 6592[ENTRY] 6593Module: graph 6594What: new 6595Rank: minor 6596[DESCRIPTION] 6597Added a new module for graph constraints. To use graph 6598constraints, you have to include <gecode/graph.hh> and link 6599against the graph library. 6600 6601[ENTRY] 6602Module: example 6603What: new 6604Rank: minor 6605[DESCRIPTION] 6606Added branching following Warnsdorff's heuristic for Knights. 6607 6608[ENTRY] 6609Module: int 6610What: new 6611Rank: minor 6612[DESCRIPTION] 6613Added branch and assign for single integer and Boolean variable. 6614 6615[ENTRY] 6616Module: set 6617What: new 6618Rank: minor 6619[DESCRIPTION] 6620Added branch and assign for single set variable. 6621 6622[ENTRY] 6623Module: minimodel 6624What: new 6625Rank: minor 6626Thanks: Håkan Kjellerstrand 6627[DESCRIPTION] 6628Added element constraints for Matrix interface to arrays. 6629 6630[ENTRY] 6631Module: int 6632What: new 6633Rank: minor 6634Thanks: Håkan Kjellerstrand 6635[DESCRIPTION] 6636Added element constraints for Matrix arrays. 6637 6638[ENTRY] 6639Module: set 6640What: new 6641Rank: minor 6642Thanks: Håkan Kjellerstrand 6643[DESCRIPTION] 6644Added element constraints for Matrix arrays. 6645 6646[ENTRY] 6647Module: search 6648What: change 6649Rank: minor 6650Thanks: Vincent Barichard 6651[DESCRIPTION] 6652Path for search provides top and empty methods. 6653 6654[ENTRY] 6655Module: driver 6656What: change 6657Rank: minor 6658Bug: 59 6659Thanks: Luca Di Gaspero 6660[DESCRIPTION] 6661The driver takes copies of all string values passed top it. 6662 6663 6664[RELEASE] 6665Version: 3.1.0 6666Date: 2009-05-20 6667[DESCRIPTION] 6668This release introduces parallel search, features improved memory 6669management (can double efficiency on MacOS X), and provides a 6670reusable command line driver upon popular request. And, of 6671course, some this and that. 6672 6673[ENTRY] 6674Module: set 6675What: change 6676Rank: minor 6677[DESCRIPTION] 6678The set constraint sequentialUnion has been renamed to sequence. 6679 6680[ENTRY] 6681Module: example 6682What: change 6683Rank: minor 6684[DESCRIPTION] 6685The parameters of the Hamming Codes example are now configurable 6686through command line options (instead of hard-coded). 6687 6688[ENTRY] 6689Module: search 6690What: change 6691Rank: minor 6692[DESCRIPTION] 6693The stop function of stop objects now also takes a second argument 6694of type Search::Options. This is in particular useful for 6695decisions that involve the number of threads used for search. 6696 6697[ENTRY] 6698Module: search 6699What: new 6700Rank: major 6701[DESCRIPTION] 6702Added parallel search engines for DFS, BAB, and Restart (but not 6703LDS). Please make sure to read the section "Parallel search" in 6704"Modeling with Gecode". 6705[MORE] 6706Parallel search is still experimental: creating and destroying a 6707large number (more than 1000) of search engines (and hence a 6708large number of threads) might raise exceptions on operating 6709systems using pthreads as thread implementation. This will be 6710fixed in a future release by using thread pools. 6711 6712[ENTRY] 6713Module: support 6714What: new 6715Rank: minor 6716[DESCRIPTION] 6717Added a tiny portable thread package specifically tailored to the 6718needs for parallel search. Unfortunately, other portable thread 6719packages have just too many issues. 6720 6721[ENTRY] 6722Module: gist 6723What: bug 6724Rank: minor 6725[DESCRIPTION] 6726Fixed a dead lock that could occur when closing the Gist main window while 6727search is still running. 6728 6729[ENTRY] 6730Module: gist 6731What: bug 6732Rank: minor 6733[DESCRIPTION] 6734The inspectors are finalized before Gist exits. This fixes a bug 6735where (at least on Mac OS) some memory was not freed in the 6736correct order. 6737 6738[ENTRY] 6739Module: gist 6740What: bug 6741Rank: minor 6742[DESCRIPTION] 6743Gist now correctly centers the current node after search has finished. 6744 6745[ENTRY] 6746Module: gist 6747What: change 6748Rank: minor 6749[DESCRIPTION] 6750Small user interface changes: disable search from hidden nodes, add depth 6751information to status bar, and add statistics for subtrees (available from the 6752node context menu and the Node menu). 6753 6754[ENTRY] 6755Module: gist 6756What: change 6757Rank: minor 6758[DESCRIPTION] 6759Easily add multiple inspectors to Gist. Inspectors are not 6760exclusive any longer, you can select any combination of them to 6761respond to clicks or solutions simultaneously. 6762 6763[ENTRY] 6764Module: int 6765What: change 6766Rank: minor 6767[DESCRIPTION] 6768The INT_VAL_MED value selection now consistently selects the greatest element 6769in the domain not greater than the median. 6770 6771[ENTRY] 6772Module: driver 6773What: change 6774Rank: minor 6775[DESCRIPTION] 6776If Gist is not available, -mode gist is the same as -mode 6777solution. Invocation with -help also prints information about how 6778Gecode has been configured. 6779 6780[ENTRY] 6781Module: example 6782What: new 6783Rank: minor 6784[DESCRIPTION] 6785Added new example for equidistant frequency permutation arrays (EFPA). 6786 6787[ENTRY] 6788Module: kernel 6789What: performance 6790Rank: major 6791[DESCRIPTION] 6792Cache memory blocks from deleted spaces. This hardly increases 6793peak memory consumption. It improves performance on Windows and 6794Linux only by up to 5%, but on MacOS by 50% in some cases (this 6795improvement is absolutely essential for parallel execution). 6796 6797[ENTRY] 6798Module: set 6799What: new 6800Rank: minor 6801[DESCRIPTION] 6802Added a wait propagator: executes a function when a variable (or 6803variables) become(s) assigned. 6804 6805[ENTRY] 6806Module: int 6807What: new 6808Rank: minor 6809[DESCRIPTION] 6810Added a wait propagator: executes a function when a variable (or 6811variables) become(s) assigned. 6812 6813[ENTRY] 6814Module: driver 6815What: new 6816Rank: major 6817[DESCRIPTION] 6818Added a new module "driver" as a commandline driver for 6819scripts. This is due to popular request: most people have been 6820using the support functionality for examples anyway. This 6821function is now wrapped into a proper module (and Example is 6822now called Script to be more general). See "Modeling with Gecode" 6823for documentation. 6824 6825[ENTRY] 6826Module: support 6827What: new 6828Rank: minor 6829[DESCRIPTION] 6830Support::quicksort and Support::insertion support using the less than 6831operator for the sort order by leaving out the comparator object. 6832 6833 6834[RELEASE] 6835Version: 3.0.2 6836Date: 2009-03-26 6837[DESCRIPTION] 6838This is a bug fix release fixing two more embarrassing 6839bugs. However, this time we redesigned our tests carefully such 6840that they cover all changes and optimizations done for the 6841transition from 2.2.0 to 3.0.*. Please update asap. 6842 6843[ENTRY] 6844Module: example 6845What: bug 6846Rank: minor 6847Thanks: Håkan Kjellerstrand 6848[DESCRIPTION] 6849The radiotherapy example was missing in the Makefile. 6850 6851[ENTRY] 6852Module: int 6853What: bug 6854Rank: major 6855[DESCRIPTION] 6856Fixed bug in optimization of extensional constraints with DFAs 6857(hard to reproduce, almost impossible). 6858 6859[ENTRY] 6860Module: minimodel 6861What: bug 6862Rank: major 6863Thanks: Gustavo Guiterrez 6864[DESCRIPTION] 6865Fixed bug in posting of Boolean expressions including reified 6866linear expressions. Again, that escaped our testsuite (also 6867fixed). 6868 6869[ENTRY] 6870Module: int 6871What: performance 6872Rank: minor 6873[DESCRIPTION] 6874Reoptimized element with integer values and created bizarre 6875testcases. 6876 6877[ENTRY] 6878Module: gist 6879What: change 6880Rank: minor 6881[DESCRIPTION] 6882A separator is printed between solutions in the TextInspector. 6883 6884 6885[RELEASE] 6886Version: 3.0.1 6887Date: 2009-03-24 6888[DESCRIPTION] 6889This is a bug fix release fixing two embarrassing bugs that were 6890not caught by our test infrastructure. Please update asap. 6891 6892 6893[ENTRY] 6894Module: int 6895What: bug 6896Rank: major 6897Thanks: Vincent Barichard 6898[DESCRIPTION] 6899Fixed bug in element with integer values. 6900 6901[ENTRY] 6902Module: int 6903What: bug 6904Rank: minor 6905[DESCRIPTION] 6906IntSetArgs no longer inherit from PrimArgArray, which was wrong 6907as IntSet is no primitive type and hence does not support vararg 6908initializers. 6909 6910[ENTRY] 6911Module: example 6912What: bug 6913Rank: minor 6914[DESCRIPTION] 6915The examples now pass the c-d and a-d command line options correctly to Gist. 6916 6917[ENTRY] 6918Module: int 6919What: bug 6920Rank: major 6921Thanks: Alberto Delgado 6922[DESCRIPTION] 6923Fixed bug in reified Boolean linear constraints (an optimization 6924is currently disabled and will be active in the next release: the 6925optimization was incorrect and was never tested). 6926 6927[ENTRY] 6928Module: example 6929What: bug 6930Rank: minor 6931Bug: 56 6932Thanks: Chris Mears 6933[DESCRIPTION] 6934The Steel Mill Slab Design example had two bugs in the search 6935heuristic and a missing redundant constraint. 6936 6937[ENTRY] 6938Module: example 6939What: new 6940Rank: minor 6941[DESCRIPTION] 6942Added new example for Radiotherapy. 6943 6944 6945 6946[RELEASE] 6947Version: 3.0.0 6948Date: 2009-03-13 6949[DESCRIPTION] 6950This release is a major consolidation release: interfaces have 6951been cleaned up (consistent parameter passing, consistent naming, 6952simpler Gist interface, namespaces for operator overloading); 6953some functionality has been extended (propagators can be 6954non-monotonic; branchings support tie-breaking and random 6955variable and value selection); some functionality that did not 6956meet our quality goals has been removed (complete set variables, 6957reflection); usage has been simplified (auto-linking on Windows, 6958more commonly used filename extensions); important aspects have 6959been optimized (memory management, memory usage and efficiency on 696064bit machines). These cleanups were in particular necessary to 6961make %Gecode easier to document (this release is the first to be 6962accompanied by tutorial documentation explaining how to model 6963with %Gecode). 6964 6965Apart from that, many small fixes and additions. Please see below 6966for the details. 6967 6968As the interfaces have changed considerably, please consult \ref 6969PageHowToChange_3 "How to Change to Gecode 3.0.0". 6970 6971[ENTRY] 6972Module: example 6973What: performance 6974Rank: minor 6975Thanks: Håkan Kjellerstrand 6976[DESCRIPTION] 6977Improved branching for Nonogram examples. 6978 6979[ENTRY] 6980Module: set 6981What: bug 6982Rank: minor 6983Thanks: Stefano Gualandi 6984[DESCRIPTION] 6985Fixed bug in creation of set variables. 6986 6987[ENTRY] 6988Module: kernel 6989What: bug 6990Rank: major 6991Thanks: Vincent Barichard 6992[DESCRIPTION] 6993Updating of a council of advisors crashed if a propagator has no 6994advisors (as we had no example of this kind of propagators). 6995 6996[ENTRY] 6997Module: set 6998What: change 6999Rank: minor 7000[DESCRIPTION] 7001Element and convexity constraints on set variables have a more 7002uniform interface, and the match constrained has been renamed to 7003channel. 7004 7005[ENTRY] 7006Module: gist 7007What: change 7008Rank: minor 7009[DESCRIPTION] 7010Gist now takes an optional argument specifying options for the 7011search, including the inspectors to be used. The Qt interface has 7012been cleaned up, so that Gist is easier to extend. 7013 7014[ENTRY] 7015Module: gist 7016What: new 7017Rank: minor 7018[DESCRIPTION] 7019Added inspectors that react on every solution instead of a double 7020click. 7021 7022[ENTRY] 7023Module: int 7024What: change 7025Rank: minor 7026[DESCRIPTION] 7027A TupleSet must be finalized before an extensional constraint can 7028be posted using it. 7029 7030[ENTRY] 7031Module: set 7032What: removed 7033Rank: minor 7034[DESCRIPTION] 7035Removed automatically generated set projectors, they will come 7036back eventually. This makes no change to the available 7037functionality for set variables. 7038 7039[ENTRY] 7040Module: cpltset 7041What: removed 7042Rank: major 7043[DESCRIPTION] 7044Complete sets have been removed (just not good enough). 7045 7046[ENTRY] 7047Module: kernel 7048What: new 7049Rank: minor 7050Author: Filip Konvicka 7051[DESCRIPTION] 7052Integrated space and region-based allocators that work with STL 7053classes. 7054 7055[ENTRY] 7056Module: int 7057What: bug 7058Rank: minor 7059[DESCRIPTION] 7060Fixed bug in domain consistent min and max propagators. 7061 7062[ENTRY] 7063Module: int 7064What: performance 7065Rank: major 7066Author: Tias Guns 7067[DESCRIPTION] 7068Integrated an efficient implementation of reified linear 7069constraints over Boolean variables. 7070 7071[ENTRY] 7072Module: example 7073What: bug 7074Rank: minor 7075Thanks: Stefano Gualandi 7076[DESCRIPTION] 7077A bug in the independent set example has been fixed (most edges 7078were ignored). 7079 7080[ENTRY] 7081Module: set 7082What: new 7083Rank: minor 7084[DESCRIPTION] 7085More set branching strategies have been added (for instance random variable 7086and value selection), as well as set assignment. 7087 7088[ENTRY] 7089Module: other 7090What: removed 7091Rank: major 7092[DESCRIPTION] 7093All support for reflection has been removed: not clean enough, 7094not powerful enough, too difficult, and too much trouble. 7095 7096[ENTRY] 7097Module: kernel 7098What: new 7099Rank: minor 7100Thanks: Denys Duchier 7101[DESCRIPTION] 7102Added support for synchronized execution during branching 7103(executes a function). 7104 7105[ENTRY] 7106Module: kernel 7107What: change 7108Rank: major 7109[DESCRIPTION] 7110The specification of propagation cost has changed. It now must be 7111computed by the static member functions of the class 7112Gecode::PropCost. 7113 7114[ENTRY] 7115Module: int 7116What: new 7117Rank: minor 7118[DESCRIPTION] 7119Added support for synchronized execution that executes a function 7120or a static member function when a Boolean variable becomes 7121assigned (called when). 7122 7123[ENTRY] 7124Module: int 7125What: change 7126Rank: minor 7127Thanks: David Rijsman 7128[DESCRIPTION] 7129Make the variable deltas generated for minus_r more meaningful if 7130possible. 7131 7132[ENTRY] 7133Module: iter 7134What: documentation 7135Rank: minor 7136Thanks: Anden Blah, Morten Boysen 7137[DESCRIPTION] 7138Mention that arrays for Iter::Values::Arrays must be sorted. 7139 7140[ENTRY] 7141Module: int 7142What: bug 7143Rank: major 7144Thanks: Roland Yap Hock Chuan 7145[DESCRIPTION] 7146Fixed off-by-one bug in extensional for DFAs. 7147 7148[ENTRY] 7149Module: kernel 7150What: change 7151Rank: minor 7152[DESCRIPTION] 7153The clone operation on spaces is now const. 7154 7155[ENTRY] 7156Module: int 7157What: change 7158Rank: minor 7159[DESCRIPTION] 7160TupleSet now accepts duplicate tuples. 7161 7162[ENTRY] 7163Module: int 7164What: change 7165Rank: minor 7166[DESCRIPTION] 7167Renamed size() to ranges() for IntSet (returning the number of 7168ranges). Added a size() and width() function that return the size 7169and width of the set respectively. 7170 7171[ENTRY] 7172Module: kernel 7173What: change 7174Rank: minor 7175[DESCRIPTION] 7176Introduced CopiedHandle as a new base class for SharedHandle. 7177[MORE] 7178A copied handle provides access to an object that is used by 7179entities in a space, and that is copied when then space is 7180copied. This abstraction can be used e.g. to pass information 7181between different entities in a space, such as between 7182propagators and branchings. 7183 7184[ENTRY] 7185Module: support 7186What: bug 7187Rank: minor 7188Thanks: Michal Dobrogost 7189[DESCRIPTION] 7190Sorting (quicksort and insertion) require strict orders and now 7191work with arrays of more than 2^32 elements. 7192 7193[ENTRY] 7194Module: int 7195What: new 7196Rank: minor 7197[DESCRIPTION] 7198Integer sets can now be initialized from integer argument arrays. 7199 7200[ENTRY] 7201Module: other 7202What: bug 7203Rank: minor 7204Thanks: Chris Mears 7205[DESCRIPTION] 7206Output operators (<<) now respect formatting width and work with 7207output streams using arbitrary character types. 7208 7209[ENTRY] 7210Module: kernel 7211What: change 7212Rank: minor 7213Thanks: Denys Duchier 7214[DESCRIPTION] 7215Made macros semicolon-safe. 7216 7217[ENTRY] 7218Module: set 7219What: bug 7220Rank: minor 7221Thanks: Denys Duchier 7222[DESCRIPTION] 7223Fixed constructors for set variables. They now throw proper exceptions when 7224trying to create empty variable domains. 7225 7226[ENTRY] 7227Module: set 7228What: new 7229Rank: minor 7230Thanks: Denys Duchier 7231[DESCRIPTION] 7232Added reified propagators constraining an integer variable to be the minimum 7233or maximum element of a set variable. 7234 7235[ENTRY] 7236Module: int 7237What: removed 7238Rank: minor 7239[DESCRIPTION] 7240Support for PropKind has been removed for all but extensional constraints. 7241 7242[ENTRY] 7243Module: int 7244What: new 7245Rank: minor 7246[DESCRIPTION] 7247Domain constraints (dom) also accept integers now. 7248 7249[ENTRY] 7250Module: other 7251What: change 7252Rank: major 7253Thanks: Max 7254[DESCRIPTION] 7255All operators are now in their correct namespace. 7256 7257[ENTRY] 7258Module: minimodel 7259What: change 7260Rank: minor 7261[DESCRIPTION] 7262LinExpr, LinRel, BoolExpr are now part of the Gecode namespace 7263rather than Gecode::MiniModel (to support operator resolution). 7264 7265[ENTRY] 7266Module: test 7267What: new 7268Rank: minor 7269[DESCRIPTION] 7270Tests for testing claims of bounds(Z) and bounds(D) consistency. These 7271tests would have found the bug in the binary min and max propagators. 7272[MORE] 7273An integer test can enable these new tests by setting the contest member 7274to CTL_BOUNDS_Z or CTL_BOUNDS_D. For domain-consistency propagators 7275the contest member is set automatically to CTL_DOMAIN. If no 7276consistency-testing should be done, contest should be set to CTL_NONE. 7277 7278[ENTRY] 7279Module: search 7280What: new 7281Rank: minor 7282[DESCRIPTION] 7283The search engines now collect statistics for the number of nodes 7284visited and the maximum depth of the search tree. The information 7285for number of clone and commit operations has been removed as it 7286was too confusing. 7287 7288[ENTRY] 7289Module: search 7290What: new 7291Rank: major 7292[DESCRIPTION] 7293Search engines have been completely reimplemented. 7294 7295[ENTRY] 7296Module: int 7297What: bug 7298Rank: minor 7299Thanks: Jonathan Cederberg 7300[DESCRIPTION] 7301The binary min and max propagators did not do all pruning they 7302should do. 7303[MORE] 7304Given the constraint x = max(y,z) with the store {x->{1,2,3}, 7305y->{1,2}, z->{3}}, propagation did not yield any new information 7306(now it gives the correct result {x->{3}, y->{1,2}, z->{3}}). 7307 7308[ENTRY] 7309Module: example 7310What: new 7311Rank: minor 7312[DESCRIPTION] 7313New example: the steel mill slab design problem (Problem 38 in <a 7314href="http://csplib.org">CSPLib</a>). 7315[MORE] 7316The model used is from Gargani and Refalo, "An efficient model and 7317strategy for the steel mill slab design problem.", CP 2007. The 7318symmetry-breaking search is from Van Hentenryck and Michel, "The Steel 7319Mill Slab Design Problem Revisited", CPAIOR 2008. 7320 7321[ENTRY] 7322Module: iter 7323What: bug 7324Rank: minor 7325Thanks: Stefano Gualandi 7326[DESCRIPTION] 7327Fixed init method of SingletonAppend range iterator. 7328 7329[ENTRY] 7330Module: example 7331What: bug 7332Rank: minor 7333[DESCRIPTION] 7334Fixed a bug in the extensional propagation-version of the domino example. 7335 7336[ENTRY] 7337Module: other 7338What: new 7339Rank: minor 7340[DESCRIPTION] 7341For the Microsoft compiler, auto-link information is added during 7342compilation. 7343[MORE] 7344That is, by including %Gecode headers during 7345compilation the right libraries will be found automatically 7346during linking. To simplify development and deployment, the 7347libraries (and DLLs) encode version, platform, and build type 7348(release or debug) in their filename. 7349 7350[ENTRY] 7351Module: minimodel 7352What: performance 7353Rank: minor 7354[DESCRIPTION] 7355Posting constraints according to Boolean expressions now uses a 7356negation normalform and by this avoids any propagator for 7357negation and uses fewer propagators due to the new clause constraint. 7358 7359[ENTRY] 7360Module: other 7361What: change 7362Rank: major 7363[DESCRIPTION] 7364Changed naming scheme for files. 7365[MORE] 7366All files with extension .cc have been renamed to .cpp, and .icc 7367has become .hpp. This avoids conflicts as .icc is typically used 7368for other file types. All include directives are now specified 7369using <...> notation instead of "...", so that %Gecode headers do 7370not clutter the include namespace of a client program. 7371 7372[ENTRY] 7373Module: minimodel 7374What: change 7375Rank: minor 7376[DESCRIPTION] 7377The Matrix class is now in the Gecode namespace (and not in 7378Gecode::MiniModel). 7379 7380[ENTRY] 7381Module: set 7382What: change 7383Rank: minor 7384[DESCRIPTION] 7385Reorganized the internal data structures of set variables so that each 7386variable takes up 8 bytes less memory on 64 bit machines. 7387 7388[ENTRY] 7389Module: kernel 7390What: change 7391Rank: minor 7392[DESCRIPTION] 7393The index structure for variable dependencies is now implemented using integers 7394instead of pointers, saving memory on 64 bit machines. 7395[MORE] 7396For example, the index 7397structure of integer variables is now 40% smaller, for Boolean variables 7398(which have the smallest possible index structure) we still save 16%. 7399 7400[ENTRY] 7401Module: int 7402What: new 7403Rank: minor 7404[DESCRIPTION] 7405Added a Boolean clause constraint that supports conjunction and 7406disjunction of both positive and negative variables. 7407 7408[ENTRY] 7409Module: int 7410What: performance 7411Rank: minor 7412[DESCRIPTION] 7413Now n-ary Boolean disjunction and conjunction are constant time 7414(rather than linear time, as before), even when a variable for 7415the result is used. 7416 7417[ENTRY] 7418Module: kernel 7419What: change 7420Rank: major 7421[DESCRIPTION] 7422%Gecode now supports weakly monotonic propagators. 7423[MORE] 7424A weakly monotonic propagator must only be able to decide for 7425assignments whether they are solutions or not (which is a very 7426natural property as it means the propagator must be a correct 7427implementation of a constraint). Otherwise, the propagator does 7428not have to be monotonic, it can even be indeterministic. 7429 7430Weakly monotonic but not monotonic propagators must notify a 7431space about their existence: if a weakly monotonic propagator is 7432created, it must execute "home.notice(*this,AP_WEAKLY)"; if it is 7433disposed, it must execute "home.ignore(*this,AP_WEAKLY)". 7434 7435[ENTRY] 7436Module: kernel 7437What: change 7438Rank: minor 7439[DESCRIPTION] 7440The functions force and unforce of an actor to force disposal 7441have been removed. 7442[MORE] 7443Now, the new interface based on notice and ignore using actor 7444properties must be used instead. So, instead of "force(home)", 7445write "home.notice(*this,AP_DISPOSE)" and, instead of 7446"unforce(home)", write "home.ignore(*this,AP_DISPOSE)". 7447 7448[ENTRY] 7449Module: int 7450What: performance 7451Rank: minor 7452[DESCRIPTION] 7453The incremental extensional propagator for tuplesets uses less 7454memory (around 25%) and reports its size correctly. 7455 7456[ENTRY] 7457Module: int 7458What: performance 7459Rank: minor 7460[DESCRIPTION] 7461The element propagator for integer arrays now chooses 7462datastructures according to and the elements of the array. 7463[MORE] 7464This can save more than 80% memory on a 64 bit machine, and up to 746575% on a 32 bit machine. In common cases, one can expect a 7466reduction by at least 50%. 7467 7468[ENTRY] 7469Module: int 7470What: performance 7471Rank: minor 7472[DESCRIPTION] 7473The regular propagator now chooses datastructures according to 7474the size of the DFA. This can save up to 80% memory on a 64 bit 7475machine, and still up to 50% on a 32 bit machine. 7476 7477[ENTRY] 7478Module: kernel 7479What: change 7480Rank: minor 7481[DESCRIPTION] 7482The home space is now also passed to the cost function of a propagator. 7483 7484[ENTRY] 7485Module: other 7486What: change 7487Rank: major 7488[DESCRIPTION] 7489Now everything is passed as reference (Space, Propagator, 7490ModEventDelta, Advisor, Branching, and BranchingDesc). 7491[MORE] 7492The reason for this massive change is to be more C++ compliant 7493and make the interfaces more consistent (at some places things 7494were passed as references and at other places as pointers, for no 7495obvious and explainable reason). Routines that create objects 7496rather than pass them (such as copy, clone, or description) still 7497return a pointer to an object (so that it can actually be 7498deleted!). 7499 7500You will have to rewrite your models and other programs using 7501%Gecode. For models this is easy enough: 7502 - Replace "(Space* home" by "(Space& home". 7503 - Replace "home->" by "home.". 7504 - Replace "(this" by "(*this". 7505 . 7506That should do the trick for 99% of the models. 7507 7508For the other changes, just lookout for the changes in types and 7509that "this" becomes "*this" now. 7510 7511[ENTRY] 7512Module: other 7513What: change 7514Rank: major 7515[DESCRIPTION] 7516The memory management has been completely reworked. 7517[MORE] 7518It is now more robust, more portable (does not use alloca any 7519longer), more efficient, fits C++ better and is much easier too 7520understand. There are now three memory areas: a single heap, 7521spaces, and regions. Heap and spaces are as before. A region (an 7522object of class Region) is a simple and very efficient memory 7523manager for temporary memory managed in a stack fashion. These 7524three memory managers provide uniform operations for allocation 7525(alloc), deallocation (free), and reallocation (realloc). These 7526operations use constructors, destructors, and assignment 7527operators as required by C++ and are implemented with efficient 7528specializations for basic data types. 7529 7530[ENTRY] 7531Module: support 7532What: removed 7533Rank: minor 7534[DESCRIPTION] 7535PQueue has been removed (too specialized to be reused anyway). 7536 7537[ENTRY] 7538Module: support 7539What: removed 7540Rank: minor 7541[DESCRIPTION] 7542GECODE_AUTOARRAY has been removed. Use a Region for memory 7543management instead. 7544 7545[ENTRY] 7546Module: support 7547What: removed 7548Rank: minor 7549[DESCRIPTION] 7550GECODE_AUTOSTACK and SentinelStack has been removed. Use 7551StaticStack instead. 7552 7553[ENTRY] 7554Module: int 7555What: performance 7556Rank: minor 7557[DESCRIPTION] 7558Simpler and more efficient memory management for element 7559propagators (integer arrays). 7560 7561[ENTRY] 7562Module: kernel 7563What: change 7564Rank: minor 7565[DESCRIPTION] 7566All functions for checking sharing for arrays (same, shared, 7567unique) require a space argument (for memory management). 7568 7569[ENTRY] 7570Module: minimodel 7571What: new 7572Rank: minor 7573[DESCRIPTION] 7574Added MinimizeSpace and MaximizeSpace classes for cost-based 7575optimization (requires implementing a cost function returning an 7576integer cost variable). Optimization can now be implemented by 7577inheriting from these classes rather than from Space and by 7578implementing a cost function. 7579 7580[ENTRY] 7581Module: kernel 7582What: change 7583Rank: minor 7584[DESCRIPTION] 7585The description() member function of a space is not any longer 7586const: it can be called at most once. 7587 7588[ENTRY] 7589Module: kernel 7590What: change 7591Rank: major 7592[DESCRIPTION] 7593The constrain method used for best solution search must be 7594virtual and takes an argument of type const Space& rather than 7595Space* as argument. 7596 7597[ENTRY] 7598Module: int 7599What: change 7600Rank: major 7601[DESCRIPTION] 7602Tie-breaking and random selection for branch is now supported. 7603 7604[ENTRY] 7605Module: set 7606What: change 7607Rank: major 7608[DESCRIPTION] 7609The values for variable and value selection for branching have 7610been made consistent and extended. 7611[MORE] 7612The following values have been renamed: 7613 - SET_VAR_MIN_CARD -> SET_VAR_SIZE_MIN 7614 - SET_VAR_MAX_CARD -> SET_VAR_SIZE_MAX 7615 - SET_VAR_MIN_UNKNOWN_ELEM -> SET_VAR_MIN_MIN 7616 - SET_VAR_MAX_UNKNOWN_ELEM -> SET_VAR_MAX_MAX 7617 - SET_VAL_MIN -> SET_VAL_MIN_INC 7618 - SET_VAL_MAX -> SET_VAL_MAX_INC 7619 . 7620Tie-breaking and random selection is now supported. 7621 7622[ENTRY] 7623Module: int 7624What: change 7625Rank: minor 7626[DESCRIPTION] 7627The variable selection INT_VAR_DEGREE_MIN and INT_VAR_DEGREE_MAX 7628do not have tiebreaking with smallest domain size built in. 7629[MORE] 7630The old behavior can be reclaimed by explicit tiebreaking, for 7631example replace INT_VAR_DEGREE_MAX by 7632tiebreak(INT_VAR_DEGREE_MAX,INT_VAR_SIZE_MIN). 7633 7634[ENTRY] 7635Module: kernel 7636What: change 7637Rank: major 7638[DESCRIPTION] 7639View and value branchings have been completely reimplemented to support 7640tie-breaking and state (for randomized selection). 7641 7642[ENTRY] 7643Module: kernel 7644What: removed 7645Rank: major 7646[DESCRIPTION] 7647View and value assignments have been removed as they now can be 7648expressed by view and value branchings. 7649 7650 7651[RELEASE] 7652Version: 2.2.0 7653Date: 2008-08-25 7654[DESCRIPTION] 7655This release adds many domain consistent propagators for 7656arithmetic constraints and fixes a number of bugs. Some of these 7657bugs fixed are potentially serious, in particular as they occur 7658very seldom. Please change to 2.2.0 as soon as possible (in 7659particular if you are using the 64bit Microsoft Visual C++ 7660compiler). And, of course, the usual small fixes and changes. 7661 7662[ENTRY] 7663Module: kernel 7664What: bug 7665Rank: major 7666[DESCRIPTION] 7667Fixed a bug in the memory alignment on Windows 64bit (very hard to reproduce). 7668 7669[ENTRY] 7670Module: other 7671What: new 7672Rank: minor 7673[DESCRIPTION] 7674Added configure options for adding a prefix and a suffix to the names of the 7675compiled libraries. 7676 7677[ENTRY] 7678Module: int 7679What: bug 7680Rank: major 7681[DESCRIPTION] 7682Fixed a bug in the domain consistent distinct propagator that would cause 7683a stack overflow under rare circumstances. 7684 7685[ENTRY] 7686Module: set 7687What: bug 7688Rank: major 7689[DESCRIPTION] 7690The ternary intersection propagator was incorrect if any of the sets had a 7691maximum cardinality of Set::Limits::card. 7692 7693[ENTRY] 7694Module: int 7695What: new 7696Rank: minor 7697Thanks: Raphael Reischuk 7698[DESCRIPTION] 7699The attempt to access the value of an unassigned integer or 7700Boolean variable (IntVar or BoolVar) throws an exception now. 7701 7702[ENTRY] 7703Module: int 7704What: new 7705Rank: minor 7706[DESCRIPTION] 7707Added bounds consistent division/modulo propagator. 7708 7709[ENTRY] 7710Module: int 7711What: change 7712Rank: minor 7713[DESCRIPTION] 7714All functional linear and arithmetic constraints now put sharp 7715bounds on the output variable (eases interfacing to modelling 7716languages). 7717 7718[ENTRY] 7719Module: int 7720What: new 7721Rank: minor 7722[DESCRIPTION] 7723The channel constraint now comes in a version that allows to specify offsets 7724to the array indices. 7725 7726[ENTRY] 7727Module: example 7728What: removed 7729Rank: minor 7730[DESCRIPTION] 7731Example-based support for SAC (singleton arc consistency) has 7732been removed. Might be reintroduced later in a more general 7733fashion. 7734 7735[ENTRY] 7736Module: other 7737What: new 7738Rank: minor 7739[DESCRIPTION] 7740The Makefile has a new target, check, which performs a minimal integrity check 7741using some tests from the test suite. 7742 7743[ENTRY] 7744Module: set 7745What: change 7746Rank: minor 7747[DESCRIPTION] 7748The set selection constraints are now called element. 7749 7750[ENTRY] 7751Module: int 7752What: bug 7753Rank: minor 7754[DESCRIPTION] 7755Fixed bug for domain-consistent distinct that never occurred in 7756practice. 7757 7758[ENTRY] 7759Module: kernel 7760What: bug 7761Rank: minor 7762[DESCRIPTION] 7763Fixed bug that could potentially have affected certain staged 7764propagators. 7765 7766[ENTRY] 7767Module: kernel 7768What: documentation 7769Rank: minor 7770Thanks: David Rijsman 7771[DESCRIPTION] 7772Fixed explanation of ES_FIX and ES_NOFIX for advisors 7773(description was mixed up). 7774 7775[ENTRY] 7776Module: other 7777What: change 7778Rank: minor 7779[DESCRIPTION] 7780The configure script now always uses the Microsoft compiler on Windows. Use 7781the CC and CXX environment variables to override this if you want to use 7782gcc. 7783 7784[ENTRY] 7785Module: int 7786What: new 7787Rank: minor 7788[DESCRIPTION] 7789Added domain consistent multiplication propagator. 7790 7791[ENTRY] 7792Module: kernel 7793What: bug 7794Rank: major 7795Thanks: Filip Konvicka 7796[DESCRIPTION] 7797Generated variable stubs were wrong (could only be observed for 7798new variable types). 7799 7800[ENTRY] 7801Module: int 7802What: bug 7803Rank: minor 7804Thanks: David Rijsman 7805[DESCRIPTION] 7806Cumulatives did not do all the pruning it should do. 7807 7808[ENTRY] 7809Module: int 7810What: bug 7811Rank: minor 7812[DESCRIPTION] 7813Fixed bug in element with IntArgs and sharing between the two IntVars. 7814 7815[ENTRY] 7816Module: int 7817What: bug 7818Rank: minor 7819Thanks: Jaroslav Mlejnek 7820[DESCRIPTION] 7821Fixed bug in sqrt. 7822 7823[ENTRY] 7824Module: int 7825What: bug 7826Rank: minor 7827Thanks: David Rijsman 7828[DESCRIPTION] 7829Fixed bug in ValSplitMin::branchingSpec. 7830 7831[ENTRY] 7832Module: kernel 7833What: removed 7834Rank: minor 7835[DESCRIPTION] 7836Removed ViewTuple. Just not useful enough... 7837 7838[ENTRY] 7839Module: kernel 7840What: change 7841Rank: minor 7842[DESCRIPTION] 7843Cleaned up Reflection::Var type, overloading did not conform to the C++ 7844standard. 7845 7846[ENTRY] 7847Module: int 7848What: new 7849Rank: minor 7850[DESCRIPTION] 7851Added domain consistent minimum (min) and maximum (max) propagators. 7852 7853[ENTRY] 7854Module: int 7855What: new 7856Rank: minor 7857[DESCRIPTION] 7858Added domain consistent square root propagator (sqrt). 7859 7860[ENTRY] 7861Module: int 7862What: new 7863Rank: minor 7864[DESCRIPTION] 7865Added domain consistent squaring propagator (sqr). 7866 7867[ENTRY] 7868Module: int 7869What: documentation 7870Rank: minor 7871[DESCRIPTION] 7872Added documentation for domain consistent absolute value (abs) propagator. 7873 7874[ENTRY] 7875Module: int 7876What: new 7877Rank: minor 7878[DESCRIPTION] 7879Added reified propagators for relations over Boolean variables. 7880 7881[RELEASE] 7882Version: 2.1.1 7883Date: 2008-03-06 7884[DESCRIPTION] 7885This is a bugfix release. 7886 7887[ENTRY] 7888Module: int 7889What: bug 7890Rank: minor 7891[DESCRIPTION] 7892Non-shared copying of dfa was broken (matters only for parallel execution). 7893 7894[ENTRY] 7895Module: kernel 7896What: bug 7897Rank: major 7898[DESCRIPTION] 7899The generated med_updated function was incorrect, resulting in potential 7900crashes of programs that use SetVars. 7901 7902[ENTRY] 7903Module: cpltset 7904What: documentation 7905Rank: minor 7906[DESCRIPTION] 7907The CpltSet variables are now in the correct documentation group. 7908 7909[ENTRY] 7910Module: gist 7911What: bug 7912Rank: minor 7913[DESCRIPTION] 7914Fixed redraw artefacts on Windows. 7915 7916[ENTRY] 7917Module: other 7918What: bug 7919Rank: minor 7920[DESCRIPTION] 7921Fixed boost serialization. 7922 7923[ENTRY] 7924Module: kernel 7925What: bug 7926Rank: minor 7927[DESCRIPTION] 7928Made the constructor of Reflection::Var explicit, otherwise overloading for 7929output stream operators does not work as expected. 7930 7931 7932[RELEASE] 7933Version: 2.1.0 7934Date: 2008-02-29 7935[DESCRIPTION] 7936This release makes two essential contributions: a partly 7937reimplemented kernel that is faster, is simpler, and uses less 7938memory and lots of small and not so small fixes. This release is 7939the first release where really everything that we can test 7940(rather than everything that we initially believed to matter) has 7941been systematically tested. So, better switch now to 2.1.0! 7942 7943Apart from that, the value range for variables has been increased 7944(basically, 32 bits minus three values, so that is 32 bits), the reflection 7945API is now fully functional and no longer considered experimental, and we have 7946the usual small additions. 7947 7948 7949[ENTRY] 7950Module: int 7951What: new 7952Rank: minor 7953[DESCRIPTION] 7954Added interface to extensional constraints defined by TupleSets with 7955BoolVars. 7956 7957[ENTRY] 7958Module: minimodel 7959What: bug 7960Rank: major 7961[DESCRIPTION] 7962Reimplemented linear expressions from scratch, they were just 7963hopelessly screwed. 7964 7965[ENTRY] 7966Module: minimodel 7967What: bug 7968Rank: minor 7969[DESCRIPTION] 7970Added work-around for compiler bug in MSVC. 7971 7972[ENTRY] 7973Module: minimodel 7974What: new 7975Rank: minor 7976[DESCRIPTION] 7977Support reified linear expressions with Boolean variables. 7978 7979[ENTRY] 7980Module: int 7981What: change 7982Rank: minor 7983[DESCRIPTION] 7984Throw an exception if variables occur multiply for array-based 7985channel constraints. 7986 7987[ENTRY] 7988Module: int 7989What: bug 7990Rank: minor 7991[DESCRIPTION] 7992Fixed multiplication propagator for x*y=x. 7993 7994[ENTRY] 7995Module: search 7996What: change 7997Rank: major 7998[DESCRIPTION] 7999All search engines now take an option value for configuration 8000instead of individual arguments for recomputation, stop objects, 8001etc. 8002 8003[ENTRY] 8004Module: minimodel 8005What: removed 8006Rank: minor 8007[DESCRIPTION] 8008Removed scheduling abstractions. 8009 8010[ENTRY] 8011Module: int 8012What: removed 8013Rank: minor 8014[DESCRIPTION] 8015Removed extensional constraints with offset arguments. 8016 8017[ENTRY] 8018Module: minimodel 8019What: new 8020Rank: minor 8021[DESCRIPTION] 8022All minimodel functionality now understands both IntConLevel and 8023PropKind arguments. 8024 8025[ENTRY] 8026Module: set 8027What: bug 8028Rank: major 8029[DESCRIPTION] 8030Fixed bugs in several set constraints: 8031rel(Space*,SetVar,IntRelType irt,IntVar) for irt=IRT_NQ, 8032rel(Space*,SetVar,SetOpType sot,const IntSet&,SetRelType srt,SetVar) for 8033sot=SOT_MINUS, srt=SRT_SUP, selectDisjoint, selectUnion with constant IntSet 8034arguments, dom with SRT_NQ. 8035 8036[ENTRY] 8037Module: kernel 8038What: bug 8039Rank: minor 8040[DESCRIPTION] 8041Fixed bug in unreflection of empty VarArrays. 8042 8043[ENTRY] 8044Module: linear 8045What: bug 8046Rank: major 8047[DESCRIPTION] 8048Fixed overflow checking error in linear constraints. 8049 8050[ENTRY] 8051Module: minimodel 8052What: new 8053Rank: minor 8054[DESCRIPTION] 8055Added sqrt function. 8056 8057[ENTRY] 8058Module: int 8059What: new 8060Rank: minor 8061[DESCRIPTION] 8062Added sqrt propagator. 8063 8064[ENTRY] 8065Module: int 8066What: new 8067Rank: minor 8068[DESCRIPTION] 8069Added sqr post function. 8070 8071[ENTRY] 8072Module: int 8073What: bug 8074Rank: minor 8075[DESCRIPTION] 8076The overloaded versions of dom for variable arrays could not be 8077resolved automatically. 8078 8079[ENTRY] 8080Module: int 8081What: new 8082Rank: minor 8083[DESCRIPTION] 8084Added missing branching for INT_VAR_SIZE_DEGREE_MIN and 8085INT_VAR_SIZE_DEGREE_MAX for Boolean variables. 8086 8087[ENTRY] 8088Module: minimodel 8089What: bug 8090Rank: major 8091Thanks: Stanimir Dragiev 8092[DESCRIPTION] 8093Fixed bug in posting linear expressions. 8094 8095[ENTRY] 8096Module: int 8097What: performance 8098Rank: minor 8099[DESCRIPTION] 8100IntSet have been reimplemented for efficiency. 8101 8102[ENTRY] 8103Module: other 8104What: documentation 8105Rank: minor 8106Thanks: Martin Mann 8107[DESCRIPTION] 8108Function prototypes are now highlighted in the detailed function documentation. 8109 8110[ENTRY] 8111Module: int 8112What: removed 8113Rank: minor 8114[DESCRIPTION] 8115The offset arguments for element constraints have been removed, as you can 8116simply add dummy elements to the array to achieve the same effect. 8117 8118[ENTRY] 8119Module: set 8120What: removed 8121Rank: minor 8122[DESCRIPTION] 8123The offset arguments for selection constraints have been removed, as you can 8124simply add dummy elements to the array to achieve the same effect. 8125 8126[ENTRY] 8127Module: other 8128What: new 8129Rank: major 8130[DESCRIPTION] 8131The serialization library now contains a registry of all the %Gecode post 8132functions. This makes interfacing to %Gecode much easier. The registry is 8133automatically generated from the post functions defined in gecode/int.hh and 8134gecode/set.hh. 8135 8136[ENTRY] 8137Module: kernel 8138What: change 8139Rank: minor 8140[DESCRIPTION] 8141Cleaned up reflection. Unreflection is now part of the kernel instead of the 8142serialization library. Branchings now provide a human-readable description of 8143a BranchingDesc. The name function of a Propagator has been renamed to ati 8144(actor type identifier). All reflection is now const where possible. 8145Unreflection of variables now checks dynamically that the variable types 8146match. Unreflection of propagators checks the number of arguments. A 8147tutorial-style section on reflection has been added to the documentation. 8148 8149[ENTRY] 8150Module: set 8151What: change 8152Rank: major 8153[DESCRIPTION] 8154The limits for set variables have been moved from Limits::Set to 8155Set::Limits. 8156 8157The range of set variables has been adapted to the range of 8158integer variables. For example, on a standard machine 8159(regardless of 32 or 64 bits), a set can hold values from -2^30+2 8160to 2^30-2, its maximum cardinality therefore is 2^31-3. 8161 8162[ENTRY] 8163Module: int 8164What: change 8165Rank: major 8166[DESCRIPTION] 8167The limits for set variables have been moved from Limits::Set to 8168Set::Limits. 8169 8170The range of integer variables have been extended by one bit. For 8171example, on a standard machine (regardless of 32 or 64 bits), the 8172largest possible integer value for an integer variable is 2^31-2, 8173the smallest -2^31+2. With other words, only the integer values 81742^31-1, -2^31, and -2^31+1 are missing from the two-complement 8175representation (and we will never use these values for the sake 8176of mental sanity. We promise.). 8177 8178[ENTRY] 8179Module: int 8180What: bug 8181Rank: minor 8182[DESCRIPTION] 8183Distinct with integer offsets checks accurately for overflow now. 8184 8185[ENTRY] 8186Module: int 8187What: performance 8188Rank: minor 8189[DESCRIPTION] 8190Boolean variables consume 20% less memory. 8191 8192[ENTRY] 8193Module: kernel 8194What: change 8195Rank: major 8196[DESCRIPTION] 8197Only stable and non-failed spaces can be cloned, otherwise 8198Space::clone raises an exception. This makes cloning and 8199propagation fully orthogonal. To emulate the old behavior, just 8200execute Space::status before Space::clone. 8201 8202[ENTRY] 8203Module: kernel 8204What: change 8205Rank: minor 8206[DESCRIPTION] 8207The number of propagators and branchings can be accurately 8208retrieved from both failed and non-stable spaces. 8209 8210[ENTRY] 8211Module: examples 8212What: new 8213Rank: minor 8214[DESCRIPTION] 8215Added an example that interprets a JavaScript program and runs a search of the 8216model that the program encodes. This is an example of how to use the 8217JavaScript interpreter. A simple JavaScript model for n-Queens has been added, 8218too. 8219 8220[ENTRY] 8221Module: kernel 8222What: new 8223Rank: minor 8224[DESCRIPTION] 8225A generic variable class has been added that can be used for interfacing. It 8226can store arbitrary %Gecode variables (e.g. IntVar and SetVar), and cast them 8227back using a run-time type check. The update, reflection, and output 8228operations are implemented through the reflection registry. 8229 8230[ENTRY] 8231Module: other 8232What: new 8233Rank: major 8234[DESCRIPTION] 8235(De-)Serialization to and from JavaScript added. 8236 8237[ENTRY] 8238Module: other 8239What: change 8240Rank: major 8241[DESCRIPTION] 8242Both the cost and propagate function of a propagator take the 8243current modification event delta as input. Likewise, 8244retrieving the modification event for a particular View must use 8245the static function View::me with the passed 8246modification event delta. Again, this feature committed the kernel to a 8247particular implementation which might not be available in the 8248future. 8249 8250[ENTRY] 8251Module: kernel 8252What: change 8253Rank: minor 8254[DESCRIPTION] 8255Views and variables do not any longer reveal whether they have 8256been modified: this feature committed the kernel to a particular 8257implementation which might not be available in the future. 8258 8259[ENTRY] 8260Module: example 8261What: new 8262Rank: minor 8263[DESCRIPTION] 8264Simple Singleton Arc Consistency pre-processing has been added as an 8265optional step for examples. 8266 8267[ENTRY] 8268Module: kernel 8269What: change 8270Rank: major 8271[DESCRIPTION] 8272The kernel has undergone some cleanups and improvements (much of 8273it got actually reimplemented): 8274 - Automatically generated stubs for variable implementations are directly 8275 inlined into the kernel. This improves performance, but more 8276 importantly, lifts some limits on the number of variables. Now, the 8277 only limit is that the sum of the ceiling of the logarithms of the 8278 number of modification events of all variables does not exceed 32 8279 (as an estimate, the kernel now can handle around 10 to 16 variable 8280 types). Moreover, if the need for more variable types arises this is 8281 straightforward to do. 8282 - The addition of new variable types for users has been simplified. 8283 - The main propagation loop has been entirely rewritten (much much simpler). 8284 Now, the kernel does not optimize any longer for the case that a 8285 variable is modified more than once during propagator execution. 8286 While this changes the asymptotic complexity, it reduces the propagator 8287 execution overhead by up to 30%. And a propagator is still free 8288 to make sure that a variable is modified only once (many propagators 8289 do that already). 8290 - Variable implementations became smaller by one word. Now variable 8291 implementations are optimal in the sense that no additional memory 8292 is needed for cloning or book-keeping, the memory required for 8293 propagation is sufficient. 8294 - Spaces have lost some weight as memory for datastructures only used 8295 during cloning or propagation are shared (saves some 25% of memory 8296 per space). 8297 8298[ENTRY] 8299Module: kernel 8300What: change 8301Rank: major 8302[DESCRIPTION] 8303Propagator modification events have been renamed to modification event 8304deltas (because that is what they are). 8305 8306[ENTRY] 8307Module: kernel 8308What: change 8309Rank: minor 8310[DESCRIPTION] 8311To not confuse variable implementations with variables, variable 8312implementations are now always called VarImp, and not Variable. 8313 8314[ENTRY] 8315Module: gist 8316What: new 8317Rank: major 8318[DESCRIPTION] 8319The %Gecode Interactive Search Tool (Gist), a Qt-based graphical search 8320engine, is now part of the main %Gecode distribution. It is currently included 8321as an experimental beta preview and may not be completely stable yet. 8322 8323 8324[RELEASE] 8325Version: 2.0.1 8326Date: 2008-02-07 8327[DESCRIPTION] 8328This is a bug-fix only release. Very unfortunately, it fixes 8329three serious bugs in search (LDS, Restart, and assignment 8330branchings). We highly encourage you to switch to Gecode 2.0.1 as 8331soon as possible. 8332 8333[ENTRY] 8334Module: test 8335What: bug 8336Rank: minor 8337[DESCRIPTION] 8338Fixed memory leak in reflection tests. 8339 8340[ENTRY] 8341Module: set 8342What: bug 8343Rank: minor 8344[DESCRIPTION] 8345Fixed memory leak in set projection propagators. 8346 8347[ENTRY] 8348Module: int 8349What: bug 8350Rank: minor 8351[DESCRIPTION] 8352Fixed memory leak in IntSet. 8353 8354[ENTRY] 8355Module: test 8356What: new 8357Rank: major 8358[DESCRIPTION] 8359Added comprehensive tests for all search engines. 8360 8361[ENTRY] 8362Module: search 8363What: bug 8364Rank: major 8365[DESCRIPTION] 8366Assignment branchings wrongly reported that they feature two alternatives 8367rather than one. 8368 8369[ENTRY] 8370Module: search 8371What: bug 8372Rank: major 8373Thanks: Stefano Gualandi 8374[DESCRIPTION] 8375LDS had numerous quirks. It has been fixed and greatly improved: 8376it detects when the entire search tree has been probed, 8377independent of the maximal discrepancy. 8378 8379[ENTRY] 8380Module: search 8381What: bug 8382Rank: major 8383Thanks: Stefano Gualandi 8384[DESCRIPTION] 8385Restart was broken in case the problem failed immediately with 8386propagation only, both when being initialized or when requesting 8387a next solution. 8388 8389[ENTRY] 8390Module: iter 8391What: bug 8392Rank: minor 8393Thanks: David Barton 8394[DESCRIPTION] 8395Changed Ranges::Diff to make older versions of gcc happy. 8396 8397[ENTRY] 8398Module: other 8399What: bug 8400Rank: minor 8401Thanks: David Barton 8402[DESCRIPTION] 8403Fixed linking order so that static linking works again. 8404 8405[ENTRY] 8406Module: int 8407What: new 8408Rank: minor 8409Thanks: Mohamad Rabbath 8410[DESCRIPTION] 8411Re-added reified linear constraints for Boolean variables. 8412 8413[ENTRY] 8414Module: int 8415What: bug 8416Rank: minor 8417[DESCRIPTION] 8418Domain-consistent abs could crash in certain (extremely rare) border cases. 8419 8420[ENTRY] 8421Module: kernel 8422What: bug 8423Rank: major 8424[DESCRIPTION] 8425Static initialization order was undefined, making reflection work unreliably. 8426In particular, linking Gecode statically did not work. 8427 8428[ENTRY] 8429Module: int 8430What: bug 8431Rank: minor 8432[DESCRIPTION] 8433Initializing an IntVar with an empty IntSet did not throw the appropriate 8434exception but crashed. 8435 8436[ENTRY] 8437Module: kernel 8438What: bug 8439Rank: minor 8440[DESCRIPTION] 8441Exceptions did not have rtti information when compiled with gcc and 8442visibility, which meant that they could not be caught. 8443 8444[ENTRY] 8445Module: example 8446What: bug 8447Rank: minor 8448Thanks: Helmut Simonis 8449[DESCRIPTION] 8450Fixed a bug and quirk in %Kakuro puzzles. 8451 8452[ENTRY] 8453Module: kernel 8454What: change 8455Rank: minor 8456[DESCRIPTION] 8457The VarMapIter can now return both a specification and the actual VarBase* of 8458the currently iterated variable. 8459 8460[ENTRY] 8461Module: other 8462What: bug 8463Rank: minor 8464[DESCRIPTION] 8465Revived boost serialization. The serialization functions will be compiled if 8466Gecode is configured with --with-boost. 8467 8468[ENTRY] 8469Module: kernel 8470What: performance 8471Rank: minor 8472[DESCRIPTION] 8473Be less aggressive in increasing size of heap chunks. 8474 8475[ENTRY] 8476Module: int 8477What: documentation 8478Rank: minor 8479[DESCRIPTION] 8480Fixed bug in documentation of table-based extensional constraint. 8481 8482[ENTRY] 8483Module: kernel 8484What: bug 8485Rank: minor 8486[DESCRIPTION] 8487Fixed a bug in the hash function for pointers, which could return 8488negative array indices. 8489 8490 8491 8492[RELEASE] 8493Version: 2.0.0 8494Date: 2007-11-14 8495[DESCRIPTION] 8496As witnessed by the version number change, this is a major 8497release with too many changes, fixes, and additions to mention 8498them all: please consult the changelog. 8499 8500The highlights are: 8501 - New propagators: channeling between Integer variable and array 8502 of Boolean variables, circuit, table constraint (extensional), 8503 incremental regular constraint (extensional), incremental 8504 Boolean linear constraints 8505 - Boolean variables have a dedicated implementation: twice as 8506 fast, half the memory 8507 - Advisors for incremental propagation (see: Lagerkvist, 8508 Schulte, Advisors for Incremental Propagation, CP 2007) 8509 - Many crucial performance and scalability improvements: memory 8510 management, memory footprint of propagators 8511 - Many cleanups and more documentation, many new examples 8512 - New set variables with complete domain representation 8513 (CpltSetVar) [experimental] 8514 - A reflection API to query spaces about their propagators 8515 [experimental] 8516 8517The features marked as experimental are all functional, but might 8518be revised in the next releases. 8519 8520As %Gecode 2.0.0 is a major release, you might have to adapt your 8521programs: \ref PageHowToChange_2 "How to Change to Gecode 2.0.0". 8522 8523[ENTRY] 8524Module: int 8525What: new 8526Rank: major 8527[DESCRIPTION] 8528Added table-based extensional constraint. 8529 8530[ENTRY] 8531Module: other 8532What: new 8533Rank: minor 8534[DESCRIPTION] 8535When compiling with gcc, the default visibility of symbols in the 8536generated dynamic library is set to hidden. 8537 8538[ENTRY] 8539Module: set 8540What: removed 8541Rank: minor 8542[DESCRIPTION] 8543Removed buggy distinct propagator for finite sets. 8544 8545[ENTRY] 8546Module: example 8547What: new 8548Rank: minor 8549Thanks: Helmut Simonis 8550[DESCRIPTION] 8551New example: %Kakuro puzzles. 8552 8553[ENTRY] 8554Module: other 8555What: new 8556Rank: minor 8557Thanks: Martin Mann 8558[DESCRIPTION] 8559Added dist and distdir targets for creating source distribution. 8560 8561[ENTRY] 8562Module: other 8563What: new 8564Rank: minor 8565Thanks: Filip Konvicka 8566[DESCRIPTION] 8567On windows with MSVC, always build program database files to ease 8568debugging of applications using %Gecode (files are also included in 8569packages). 8570 8571[ENTRY] 8572Module: int 8573What: new 8574Rank: minor 8575[DESCRIPTION] 8576Added new variable selection based on largest or smallest 8577quotient of size and degree. 8578 8579[ENTRY] 8580Module: other 8581What: new 8582Rank: minor 8583[DESCRIPTION] 8584Variable arrays, view arrays, and argument arrays can directly be 8585printed on standard output streams. 8586 8587[ENTRY] 8588Module: other 8589What: change 8590Rank: minor 8591[DESCRIPTION] 8592The structure of includes has been drastically 8593simplified. Support for iterators ("gecode/iter.hh") is 8594automatically included with integers ("gecode/int.hh") and sets 8595("gecode/set.hh"). Likewise, all support functionality becomes 8596available by including "gecode/support.hh" (one can assume that 8597this is included in "gecode/kernel.hh"). 8598 8599[ENTRY] 8600Module: kernel 8601What: change 8602Rank: minor 8603[DESCRIPTION] 8604Shared arrays are now available in the kernel (where they properly 8605belong). This entails that they are available in the Gecode 8606namespace and not in Gecode::Support. 8607 8608[ENTRY] 8609Module: int 8610What: change 8611Rank: minor 8612[DESCRIPTION] 8613The extensional constraint specified by a DFA or a regular 8614expression (formerly known as regular) is now named "extensional" 8615rather than "regular". 8616 8617[ENTRY] 8618Module: minimodel 8619What: bug 8620Rank: minor 8621[DESCRIPTION] 8622Fixed small quirk in posting an absolute propagator via a function. 8623 8624[ENTRY] 8625Module: set 8626What: new 8627Rank: minor 8628[DESCRIPTION] 8629Added channeling propagator between a SetVar and a BoolVarArray 8630that propagates the characteristic function of the set to the 8631Boolean variables. 8632 8633[ENTRY] 8634Module: set 8635What: performance 8636Rank: minor 8637[DESCRIPTION] 8638Changed the datastructure for set variables to use singly-linked 8639lists. 8640 8641[ENTRY] 8642Module: other 8643What: change 8644Rank: minor 8645[DESCRIPTION] 8646The values (and types) for selecting how to branch have been made 8647uniform for all variables types: they start with INT_ (or SET_ or 8648CPLTSET_), followed by either VAL or VAR and the respective 8649strategy. 8650 8651[ENTRY] 8652Module: int 8653What: change 8654Rank: minor 8655[DESCRIPTION] 8656The interface for the global cardinality constraint has been simplified. 8657The constraint is now called count. 8658 8659[ENTRY] 8660Module: int 8661What: change 8662Rank: minor 8663[DESCRIPTION] 8664Regular expressions (REG) have been moved from the integer module to 8665the minimodel module. 8666 8667[ENTRY] 8668Module: example 8669What: change 8670Rank: major 8671[DESCRIPTION] 8672Most examples have been cleaned up. 8673 8674[ENTRY] 8675Module: example 8676What: change 8677Rank: minor 8678[DESCRIPTION] 8679Parsing of commandline arguments has been completely redone and 8680is much more extensible and flexible. 8681 8682[ENTRY] 8683Module: other 8684What: change 8685Rank: minor 8686[DESCRIPTION] 8687All of %Gecode has been put under the MIT license (which the 8688previous license was a simple rewording of). 8689 8690[ENTRY] 8691Module: other 8692What: bug 8693Rank: minor 8694[DESCRIPTION] 8695Removed huge number of casts that could (only potentially) 8696compromise portability. 8697 8698[ENTRY] 8699Module: set 8700What: new 8701Rank: minor 8702[DESCRIPTION] 8703Finite set projectors can now be specified using formulas, in addition to 8704set expressions. 8705 8706[ENTRY] 8707Module: cpltset 8708What: new 8709Rank: major 8710[DESCRIPTION] 8711Finite integer set variables with complete domain representation, 8712based on binary decision diagrams (BDDs), have been added as a 8713new variable type. 8714 8715[ENTRY] 8716Module: kernel 8717What: new 8718Rank: major 8719[DESCRIPTION] 8720A reflection API has been added, which allows querying spaces 8721about the variables and propagators they contain. 8722 8723[ENTRY] 8724Module: kernel 8725What: bug 8726Rank: major 8727[DESCRIPTION] 8728Branching ids were not properly initialized. This was a serious 8729problem if you posted branchings in spaces other than the root 8730space. 8731 8732[ENTRY] 8733Module: int 8734What: change 8735Rank: major 8736[DESCRIPTION] 8737Iterator-based domain operations have been renamed, 8738reimplemented, and extended. Now operations for both range and 8739value iterators are supported and the operations can be told to 8740perform more efficient destructive updates. 8741 8742[ENTRY] 8743Module: int 8744What: change 8745Rank: minor 8746[DESCRIPTION] 8747Sortedness constraints have been renamed to sorted constraints. 8748 8749[ENTRY] 8750Module: kernel 8751What: change 8752Rank: minor 8753[DESCRIPTION] 8754VarArrays can now be resized dynamically. 8755 8756[ENTRY] 8757Module: int 8758What: performance 8759Rank: major 8760[DESCRIPTION] 8761Boolean linear equations and inequalities with constant 8762right-hand sides use constant time propagators whenever 8763appropriate (linear time with less overhead and memory for 8764propagators with few variables). 8765 8766[ENTRY] 8767Module: kernel 8768What: new 8769Rank: major 8770[DESCRIPTION] 8771Added advisors as an abstraction for incremental propagation: 8772advisors are executed for their propagator whenever their view 8773changes. Advisors, when not being used, add one word of overhead 8774to each variable and slow down the system in the worst case by 8775less than 1%. In average, no slowdown can be observed. 8776 8777[ENTRY] 8778Module: int 8779What: bug 8780Rank: minor 8781[DESCRIPTION] 8782Fixed a border-case bug for n-ary Boolean conjunction and disjunction. 8783 8784[ENTRY] 8785Module: kernel 8786What: new 8787Rank: minor 8788[DESCRIPTION] 8789A new propagation condition PC_GEN_NONE (and hence, PC_INT_NONE, 8790...) has been introduced. Propagator patterns with this 8791propagation condition now do not create any subscriptions. 8792 8793[ENTRY] 8794Module: int 8795What: performance 8796Rank: major 8797[DESCRIPTION] 8798The regular constraint has been reimplemented, the new version 8799runs more than twice as fast. 8800 8801[ENTRY] 8802Module: example 8803What: new 8804Rank: minor 8805[DESCRIPTION] 8806Added a model for the traveling salesman problem, mostly 8807intended to exercise the new circuit constraint (as the model is not 8808very competitive). 8809 8810[ENTRY] 8811Module: kernel 8812What: new 8813Rank: major 8814[DESCRIPTION] 8815Support for reference-counted shared objects added: they handle 8816both reference counting as well as non-shared copying. This fixes 8817some bugs with the handling of shared arrays, integer sets, and 8818finite automata. 8819 8820 8821[ENTRY] 8822Module: example 8823What: bug 8824Rank: minor 8825[DESCRIPTION] 8826Examples reported wrong number of propagator invocations (the 8827invocations for problem setup were missing). 8828 8829[ENTRY] 8830Module: kernel 8831What: new 8832Rank: major 8833[DESCRIPTION] 8834Added classes for shared objects and handles. Handles to shared 8835objects allow to either share copies among spaces when being 8836copied or to create a new shared copy, if requested. 8837 8838[ENTRY] 8839Module: int 8840What: new 8841Rank: minor 8842Thanks: Martin Mann 8843[DESCRIPTION] 8844Added a new version of count (and also atleast, atmost, exactly) 8845that counts the number of variables equal to integers in an 8846array. 8847 8848[ENTRY] 8849Module: example 8850What: bug 8851Rank: minor 8852Bug: 50 8853[DESCRIPTION] 8854The number of colors in graph-color was off by one. 8855 8856[ENTRY] 8857Module: int 8858What: new 8859Rank: major 8860[DESCRIPTION] 8861Added channel constraints that channel an integer variable to 8862either a single or an array of Boolean variables. 8863 8864[ENTRY] 8865Module: int 8866What: bug 8867Rank: minor 8868[DESCRIPTION] 8869Fixed bug in copying of n-ary or-propagator for a special boundary case. 8870 8871[ENTRY] 8872Module: int 8873What: new 8874Rank: minor 8875[DESCRIPTION] 8876Relaxed sharing restrictions for channel, in particular 8877channel(this, x, x) is allowed. 8878 8879[ENTRY] 8880Module: int 8881What: new 8882Rank: major 8883[DESCRIPTION] 8884Added propagators for the circuit constraint. 8885 8886[ENTRY] 8887Module: kernel 8888What: performance 8889Rank: minor 8890[DESCRIPTION] 8891Improved automatic memory management on Windows platforms. 8892 8893[ENTRY] 8894Module: int 8895What: performance 8896Rank: minor 8897[DESCRIPTION] 8898Domain consistent distinct and channel allocate memory from the 8899space heap now. Much simpler. 8900 8901[ENTRY] 8902Module: int 8903What: change 8904Rank: minor 8905[DESCRIPTION] 8906The Boolean tell operations one_none and zero_none now also 8907return a ModEvent and hence must be checked for failure. This is 8908needed for simpler advisors. 8909 8910[ENTRY] 8911Module: kernel 8912What: performance 8913Rank: major 8914[DESCRIPTION] 8915The memory management policies have been completely reworked. Now 8916memory requests are much more regular. Hence, memory is much more 8917likely to be returned to the operating system. Furthermore, the 8918flush member functions for actors have been removed (they were 8919unneeded) and actors and spaces now have allocated member 8920functions for returning how much memory is allocated by a space. 8921 8922Moreover, the memory reported by some propagators has been 8923ignored. Note that this flaw did not affect the benchmark figures 8924on the %Gecode webpage. 8925 8926[ENTRY] 8927Module: int 8928What: performance 8929Rank: minor 8930[DESCRIPTION] 8931The multiplication uses integer precision if possible for better 8932performance. 8933 8934[ENTRY] 8935Module: int 8936What: change 8937Rank: minor 8938[DESCRIPTION] 8939Integer and Boolean variables are now guaranteed to be 8940inspectable (that is, all const member functions work on them), 8941even though a space is failed. However, the variables might have 8942been modified during a tell operation that has failed. 8943 8944[ENTRY] 8945Module: minimodel 8946What: change 8947Rank: major 8948[DESCRIPTION] 8949Linear expressions and relations can also be created from Boolean 8950variables, with the restriction that Boolean relations cannot be 8951reified. 8952 8953[ENTRY] 8954Module: int 8955What: change 8956Rank: major 8957[DESCRIPTION] 8958Boolean variables (and hence Boolean views) do not any longer 8959share the implementation with integer variables. That has the 8960following consequences: 8961- Boolean variables are not any longer integer variables. The same 8962 holds true for arrays of variables. 8963- All constraints that make sense for both Boolean and integer 8964 variables have post functions that support both integer and 8965 Boolean variables. 8966- Memory for Boolean variables is reduced by 50% and performance 8967 increases in problems with many Boolean variables by up to 50%. 8968 8969[ENTRY] 8970Module: int 8971What: new 8972Rank: major 8973[DESCRIPTION] 8974Added propagators for linear constraints over Boolean variables, 8975in particular specialized and efficient versions for non-unit 8976coefficients. 8977 8978[ENTRY] 8979Module: int 8980What: change 8981Rank: minor 8982[DESCRIPTION] 8983The linear constraints are now more careful (that is, they will 8984use more efficient versions more often if it is safe) to 8985determine whether overflow occurs and which precision (integer or 8986double) should be chosen. 8987 8988[ENTRY] 8989Module: int 8990What: change 8991Rank: minor 8992[DESCRIPTION] 8993The element constraints now accept an additional offset argument. 8994 8995[ENTRY] 8996Module: set 8997What: new 8998Rank: minor 8999[DESCRIPTION] 9000Added selection and reified relation constraints with constant sets. 9001 9002[ENTRY] 9003Module: set 9004What: change 9005Rank: minor 9006[DESCRIPTION] 9007Slightly stronger inferences for the finite set sequence and selection 9008constraints. 9009 9010[ENTRY] 9011Module: example 9012What: new 9013Rank: minor 9014[DESCRIPTION] 9015New example: the balanced academic curriculum problem (problem 030 from 9016CSPlib). 9017 9018[ENTRY] 9019Module: set 9020What: bug 9021Rank: minor 9022[DESCRIPTION] 9023Fixed the n-ary partition propagator to handle overflow of the sum of 9024cardinalities correctly. 9025 9026[ENTRY] 9027Module: kernel 9028What: bug 9029Rank: minor 9030[DESCRIPTION] 9031Subscription to constant views now should use the propagate 9032member function from a variable implementation: it guarantees 9033execution of a propagator at least once (int and set views have 9034been adopted accordingly). 9035 9036[ENTRY] 9037Module: int 9038What: bug 9039Rank: major 9040Bug: 48 9041[DESCRIPTION] 9042Branching on maximum regret would always crash on non-range domains. 9043 9044[ENTRY] 9045Module: set 9046What: change 9047Rank: minor 9048[DESCRIPTION] 9049The finite set selection propagators accept an additional 9050argument that specifies where the indexing should start. It 9051should make some models more natural to express, and helps in 9052porting code from other systems, such as Prolog or Mozart. In 9053addition, the selectUnion propagator is now hand-written again, 9054resulting in better performance. 9055 9056[ENTRY] 9057Module: int 9058What: change 9059Rank: major 9060[DESCRIPTION] 9061All Boolean constraints got a new and regular interface. Rather 9062than providing different post functions for the different 9063constraints, the single post function rel is used: the Boolean 9064operation then is described by a value of type BoolOpType. In 9065addition, all Boolean propagators have been reimplemented for 9066better performance and less memory use. 9067 9068[ENTRY] 9069Module: test 9070What: new 9071Rank: minor 9072[DESCRIPTION] 9073Added simple testing for branchings. 9074 9075[ENTRY] 9076Module: kernel 9077What: change 9078Rank: major 9079[DESCRIPTION] 9080The way how propagators report subsumption and partial fixpoints 9081has changed. Now, a propagator must first call dispose (which 9082then cancels subscriptions and possibly frees external resources) 9083and only then can return that the propagator is subsumed. For 9084that purpose a new function Gecode::ES_SUBSUMED has been 9085defined. Likewise, ES_FIX_PARTIAL and ES_NOFIX_PARTIAL are 9086functions rather than member functions of Gecode::Propagator. The 9087benefit is that this saves memory and is more efficient. 9088 9089[ENTRY] 9090Module: int 9091What: change 9092Rank: minor 9093[DESCRIPTION] 9094The use of the consistency options were a little confusing, now 9095the rule is: the level of consistency increases from ICL_VAL to 9096ICL_BND to ICL_DOM. 9097 9098[ENTRY] 9099Module: minimodel 9100What: performance 9101Rank: minor 9102[DESCRIPTION] 9103Boolean expressions erroneously decomposed into ternary Boolean 9104constraints, while not incorrect rather inefficient for large 9105Boolean expressions. 9106 9107[ENTRY] 9108Module: kernel 9109What: change 9110Rank: minor 9111[DESCRIPTION] 9112Made all macros type safe. 9113 9114[ENTRY] 9115Module: kernel 9116What: new 9117Rank: major 9118[DESCRIPTION] 9119Added macro GECODE_REWRITE for rewriting propagators. It is strongly advised 9120to always use this macro! 9121 9122[ENTRY] 9123Module: example 9124What: bug 9125Rank: minor 9126Bug: 46 9127[DESCRIPTION] 9128Orientation of Sudokus now match the orientation in the specification-file. 9129 9130[ENTRY] 9131Module: example 9132What: new 9133Rank: minor 9134[DESCRIPTION] 9135New example: MineSweeper. 9136 9137[ENTRY] 9138Module: example 9139What: new 9140Rank: minor 9141[DESCRIPTION] 9142New example: Domino. 9143 9144[ENTRY] 9145Module: set 9146What: bug 9147Rank: minor 9148[DESCRIPTION] 9149Set projectors could subscribe with bogus propagation conditions. 9150 9151[ENTRY] 9152Module: set 9153What: performance 9154Rank: minor 9155[DESCRIPTION] 9156Performance of the tell operations on finite set variables was 9157improved. Especially the intersect operation benefits from this. 9158 9159[ENTRY] 9160Module: int 9161What: new 9162Rank: minor 9163[DESCRIPTION] 9164The element constraint now also supports integer values as result. 9165 9166[ENTRY] 9167Module: kernel 9168What: new 9169Rank: minor 9170[DESCRIPTION] 9171Add a generic class for assignments during search (similar to 9172generic branchings for views and values). 9173 9174[ENTRY] 9175Module: int 9176What: change 9177Rank: minor 9178[DESCRIPTION] 9179All branching classes for value and view selection are now 9180parametric. 9181 9182[ENTRY] 9183Module: int 9184What: change 9185Rank: minor 9186[DESCRIPTION] 9187Boolean variables cannot longer be initialized from an integer 9188variable. If needed, a channel propagator must be posted (added). 9189 9190[ENTRY] 9191Module: int 9192What: change 9193Rank: minor 9194[DESCRIPTION] 9195The equality constraints have been replaced by a variant of rel. 9196 9197[ENTRY] 9198Module: kernel 9199What: change 9200Rank: minor 9201[DESCRIPTION] 9202The propagator abstractions Inhom* have been renamed to Mix*. 9203 9204[ENTRY] 9205Module: int 9206What: change 9207Rank: minor 9208[DESCRIPTION] 9209The operations t_one, t_one_none, t_zero, t_zero_none for Boolean 9210views have been renamed to one, one_none, zero, zero_none. 9211 9212[ENTRY] 9213Module: kernel 9214What: performance 9215Rank: major 9216[DESCRIPTION] 9217Explicit disposal of actors has been reimplemented (the old 9218design was nothing but darn stupid). The memory overhead of 9219propagators is reduced by 40% for most propagators and 20% for 9220all. That is, a binary propagator takes 30% less memory and a 9221ternary propagator takes 25% less memory. Programs with many 9222binary or ternary propagators can run up to 20% faster. 9223 9224[ENTRY] 9225Module: kernel 9226What: change 9227Rank: minor 9228[DESCRIPTION] 9229Propagators and branchings that require disposal when a space is 9230deleted must now be explicitly registered via a force function 9231and explicitly deregistered by an unforce function. 9232 9233[ENTRY] 9234Module: int 9235What: bug 9236Rank: minor 9237[DESCRIPTION] 9238Fixed memory leak in reified dom constraint. 9239 9240[ENTRY] 9241Module: set 9242What: bug 9243Rank: minor 9244[DESCRIPTION] 9245Fixed memory leak in distinct constraint for sets. 9246 9247[ENTRY] 9248Module: example 9249What: new 9250Rank: major 9251[DESCRIPTION] 9252New example: Pentominoes. The example uses extensional 9253constraints specified as regular expressions to place 9254irregular-shaped pieces on a board. 9255 9256 9257 9258[RELEASE] 9259Version: 1.3.1 9260Date: 2006-10-25 9261[DESCRIPTION] 9262This is a minor release which fixes a major bug (the first real 9263serious bug). Please update as soon as possible. 9264 9265[ENTRY] 9266Module: kernel 9267What: bug 9268Rank: major 9269Thanks: Rafael Meneses 9270[DESCRIPTION] 9271Branch&Bound search with ViewValBranchings (all standard branchings) together 9272with batch recomputation was severely broken. The problems ranged from wrong 9273search trees (missing solutions) to segmentation faults. The fix changes the 9274way assigned variables are removed from the array in a ViewValBranching. 9275 9276[ENTRY] 9277Module: int 9278What: bug 9279Rank: minor 9280[DESCRIPTION] 9281Bounds-consistent distinct catches border case when an assigned variable 9282during bounds propagation leads to value removal for value propagation. 9283 9284[ENTRY] 9285Module: int 9286What: performance 9287Rank: minor 9288[DESCRIPTION] 9289Bounds-consistent distinct eliminates assigned variables more 9290aggressively (can save up to 10% runtime in some cases). 9291 9292[ENTRY] 9293Module: int 9294What: bug 9295Rank: minor 9296Thanks: Alejandro Arbelaez 9297[DESCRIPTION] 9298IntVar::init now also raises exceptions for illegal domain specifications. 9299 9300 9301 9302 9303 9304[RELEASE] 9305Version: 1.3.0 9306Date: 2006-09-19 9307[DESCRIPTION] 9308This release adds a compiler for finite set projectors and provides new 9309infrastructure making it easier to add new variable domains. In addition, 9310it contains recent bug fixes and minor improvements. 9311 9312[ENTRY] 9313Module: set 9314What: new 9315Rank: major 9316[DESCRIPTION] 9317Compiler for finite set projectors. Given a specification of a finite set 9318constraint as a projector set, it generates C++ code for the corresponding 9319propagator. Together with the dynamic propagator for finite set projectors, 9320this implements the backend of the technique described in the paper 9321"Generating Propagators for Finite Set Constraints" (Tack, Schulte, 9322Smolka; CP 2006.). 9323 9324[ENTRY] 9325Module: other 9326What: new 9327Rank: minor 9328Thanks: Jorge Marques Pelizzoni 9329[DESCRIPTION] 9330Also pass options for linking standard libraries for MSVC. 9331 9332[ENTRY] 9333Module: other 9334What: bug 9335Rank: minor 9336[DESCRIPTION] 9337The pkg-config files now contain the correct path if you configured to the 9338default prefix (i.e. /usr/local). 9339 9340[ENTRY] 9341Module: minimodel 9342What: new 9343Rank: minor 9344[DESCRIPTION] 9345Added aliases lex, atleast, atmost, and exactly for the count constraint. 9346 9347[ENTRY] 9348Module: int 9349What: change 9350Rank: minor 9351[DESCRIPTION] 9352Renamed lex constraint to rel (as it also supports equality and disequality). 9353 9354[ENTRY] 9355Module: int 9356What: performance 9357Rank: minor 9358[DESCRIPTION] 9359Make count constraints with integer number of equal occurrences 9360more incremental using dynamic subscriptions (gives a 20-30% 9361speedup). 9362 9363[ENTRY] 9364Module: example 9365What: new 9366Rank: minor 9367[DESCRIPTION] 9368Added an example for solving Black Hole patience games. 9369 9370[ENTRY] 9371Module: kernel 9372What: new 9373Rank: major 9374[DESCRIPTION] 9375Subscription to variables now features an additional and optional 9376Boolean argument whether the propagator is to be processed. This 9377allows dynamically creation of subscriptions during propagation. 9378 9379[ENTRY] 9380Module: other 9381What: new 9382Rank: minor 9383[DESCRIPTION] 9384New configure switches: --enable-audit to include audit code, which may 9385contain expensive checks of internal invariants or alternative, checked 9386implementations of critical parts of %Gecode. --enable-universal and 9387--with-sdk, to support building universal binaries on Mac OS X. 9388 9389[ENTRY] 9390Module: kernel 9391What: new 9392Rank: minor 9393[DESCRIPTION] 9394Variables can now be deallocated when the Space is deallocated (for example in 9395case of failure). This is important in case a variable implementation needs to 9396reference external resources. Deallocation can be switched on in the 9397high-level description used for generating the variable implementation. 9398 9399[ENTRY] 9400Module: minimodel 9401What: bug 9402Rank: minor 9403Thanks: Rafael Meneses 9404[DESCRIPTION] 9405Under certain conditions (posting in a failed space), the post function 9406returned uninitialized variables. 9407 9408[ENTRY] 9409Module: kernel 9410What: performance 9411Rank: major 9412[DESCRIPTION] 9413Variable implementations are now generated from a high-level 9414description (taking care of all aspects relating to modification 9415events and propagation conditions). While simplifying the 9416implementation of new variable domains considerably, this also can, 9417in lucky cases, deliver a speed-up of 5%. 9418 9419[ENTRY] 9420Module: kernel 9421What: performance 9422Rank: major 9423[DESCRIPTION] 9424Allocate subscriptions in separate memory area. Can speedup execution 9425in some (but few) cases by up to 15-20%. 9426 9427[ENTRY] 9428Module: int 9429What: documentation 9430Rank: minor 9431Bug: 43 9432[DESCRIPTION] 9433Fixed documentation problem due to doxygen... 9434 9435[ENTRY] 9436Module: search 9437What: new 9438Rank: major 9439[DESCRIPTION] 9440Branch-and-bound search now interleaves recomputation with adding 9441bounding constraints. This can prune the search tree much 9442earlier: instead of recomputing many nodes from the same copy 9443node and then adding a constraint that fails all these nodes, it 9444might be possible to already fail the copy node directly. In 9445principle, the difference can be exponential, however for 9446examples we tried the effect is minor. 9447 9448[ENTRY] 9449Module: kernel 9450What: bug 9451Rank: minor 9452[DESCRIPTION] 9453Now commits can be interleaved with adding new constraints during 9454batch recomputation. This also entails that commit does not raise 9455an exception when applied to an already failed space (it is 9456simply ignored). The bug could not be observed (unless you did 9457some very fancy search engines yourself) and one could actually 9458see it as an extension. 9459 9460 9461 9462 9463[RELEASE] 9464Version: 1.2.2 9465Date: 2006-07-25 9466[DESCRIPTION] 9467This release switches recomputation back on and removes some 9468experimental code that had sneaked into the system... 9469 9470[ENTRY] 9471Module: kernel 9472What: performance 9473Rank: major 9474[DESCRIPTION] 9475Some experimental code had sneaked into the release, slowing down 9476the system by more than 10%... 9477 9478[ENTRY] 9479Module: search 9480What: bug 9481Rank: major 9482[DESCRIPTION] 9483With the changes to search in %Gecode 1.2.1 recomputation was 9484actually almost switched off... 9485 9486[ENTRY] 9487Module: int 9488What: performance 9489Rank: minor 9490[DESCRIPTION] 9491Improve performance of domain-consistent distinct (by providing 9492special ternary version). Can reduce runtime by 10-20% for some 9493examples. 9494 9495[ENTRY] 9496Module: int 9497What: performance 9498Rank: minor 9499[DESCRIPTION] 9500Cut memory requirements for element (for integer arrays) by half. 9501 9502[ENTRY] 9503Module: example 9504What: new 9505Rank: minor 9506[DESCRIPTION] 9507Added stress test for element constraint (originally due to Neng-Fa Zhou). 9508 9509[ENTRY] 9510Module: example 9511What: new 9512Rank: minor 9513[DESCRIPTION] 9514Added stress test for min constraint. 9515 9516[ENTRY] 9517Module: example 9518What: new 9519Rank: minor 9520[DESCRIPTION] 9521Added possibility to stop the search for solutions in examples based 9522on the time taken, the number of fails, or both. 9523 9524[ENTRY] 9525Module: example 9526What: new 9527Rank: minor 9528[DESCRIPTION] 9529Added an example for solving Peacable co-existing armies of %Queens. 9530 9531 9532 9533[RELEASE] 9534Version: 1.2.1 9535Date: 2006-07-19 9536[DESCRIPTION] 9537In addition to the usual fixes and improvements, the biggest 9538change is that all branchings now must support branching 9539descriptions. This also entails straightforward changes 9540(simplifications) to search-related space operations and to the 9541implementation of search engines. 9542 9543 9544[ENTRY] 9545Module: kernel 9546What: new 9547Rank: minor 9548[DESCRIPTION] 9549Added a macro GECODE_NEVER that assert that this command is never 9550executed. This is preferred over assert(false) as it is used for 9551optimization, if supported by a compiler (for example, Microsoft 9552Visual C++). 9553 9554[ENTRY] 9555Module: int 9556What: bug 9557Rank: minor 9558[DESCRIPTION] 9559Fixed fixpoint detection bug in n-ary min and max propagators. 9560 9561[ENTRY] 9562Module: int 9563What: bug 9564Rank: minor 9565[DESCRIPTION] 9566Min and max propagators now correctly handle cases such as min(x,y)=x. 9567 9568[ENTRY] 9569Module: int 9570What: removed 9571Rank: minor 9572[DESCRIPTION] 9573Removed bounds-consistent propagation for count constraint (not worth 9574the trouble, just use domain-consistent). 9575 9576[ENTRY] 9577Module: kernel 9578What: change 9579Rank: minor 9580Thanks: Martin Mann 9581[DESCRIPTION] 9582The ViewValBranching class now passes the home space to all member 9583functions used in selecting the view and the value. 9584 9585[ENTRY] 9586Module: set 9587What: bug 9588Rank: minor 9589[DESCRIPTION] 9590Fixed fixpoint detection for n-ary partition propagator. 9591 9592[ENTRY] 9593Module: set 9594What: new 9595Rank: major 9596[DESCRIPTION] 9597Added finite set projection propagators. They allow to propagate all 9598finite set constraints expressible as finite set projectors, including 9599negated and reified constraints. 9600 9601[ENTRY] 9602Module: support 9603What: new 9604Rank: minor 9605[DESCRIPTION] 9606Added simple class encapsulating a linear congruential pseudo-random 9607number generator. 9608 9609[ENTRY] 9610Module: kernel 9611What: change 9612Rank: major 9613[DESCRIPTION] 9614The interface for branchings has changed considerably, reflecting 9615the fact now that all branchings must support branching descriptions. 9616This is also reflected in the Space::status operation which has its 9617arguments reversed and corrected const qualifiers on its arguments. 9618But the good news is that it is considerably simpler than before. 9619 9620[ENTRY] 9621Module: int 9622What: bug 9623Rank: minor 9624[DESCRIPTION] 9625Assignment branchings (that is, branchings with a single alternative) 9626could possibly take the wrong values for assignment during recomputation. 9627 9628[ENTRY] 9629Module: kernel 9630What: change 9631Rank: major 9632[DESCRIPTION] 9633The status operation does not any longer accept an argument for 9634the number of alternatives. The number of alternatives is now 9635available from a branching description (where it is passed upon 9636creation of the description). This reflects the fact that 9637branching descriptions are mandatory now. 9638 9639[ENTRY] 9640Module: search 9641What: bug 9642Rank: major 9643[DESCRIPTION] 9644Fixed a serious bug where during recomputation the search stack 9645was always inspected behind the last element: the reason why 9646recomputation never crashed has been that stacks always keep one 9647element extra for optimization. So, serious bug but looks as if 9648no one stumbled over this... 9649 9650[ENTRY] 9651Module: kernel 9652What: bug 9653Rank: minor 9654[DESCRIPTION] 9655As Boolean variables can be derived from integer variables, the 9656assumption that a not yet assigned Boolean variable can not be 9657modified is wrong. 9658 9659[ENTRY] 9660Module: other 9661What: documentation 9662Rank: minor 9663[DESCRIPTION] 9664Generate one page per version released in changelog. 9665 9666[ENTRY] 9667Module: kernel 9668What: change 9669Rank: minor 9670Bug: 41 9671[DESCRIPTION] 9672Change exceptions thrown by %Gecode to be compliant with C++ 9673exceptions. 9674 9675[ENTRY] 9676Module: other 9677What: bug 9678Rank: minor 9679Bug: 42 9680[DESCRIPTION] 9681Renamed macros so as to avoid nameclashes (all macros start with 9682GECODE_). 9683 9684[ENTRY] 9685Module: search 9686What: bug 9687Rank: minor 9688[DESCRIPTION] 9689Search engines now correctly count the number of propagation 9690steps including propagation that occurs when adaptive 9691recomputation creates additional clones. 9692 9693[ENTRY] 9694Module: search 9695What: change 9696Rank: major 9697[DESCRIPTION] 9698Branchings now must return branching descriptions and commit 9699operations also insist on being provided with branching 9700descriptions. This change reflects that batch recomputation is 9701of vital importance for efficiency in %Gecode. 9702 9703[ENTRY] 9704Module: int 9705What: performance 9706Rank: major 9707[DESCRIPTION] 9708Make Boolean linear constraints with constant right hand sides 9709more incremental using dynamic subscriptions (gives a 20-30% speedup). 9710 9711[ENTRY] 9712Module: minimodel 9713What: performance 9714Rank: minor 9715[DESCRIPTION] 9716Take advantage of specialized Boolean propagators in Boolean 9717expressions and relations. 9718 9719[ENTRY] 9720Module: int 9721What: performance 9722Rank: minor 9723[DESCRIPTION] 9724Made n-ary Boolean conjunction and disjunction more incremental by 9725using dynamic subscriptions. 9726 9727[ENTRY] 9728Module: int 9729What: performance 9730Rank: minor 9731[DESCRIPTION] 9732Provide special versions of Boolean propagators optimizing cases 9733where n-ary disjunctions are true. 9734 9735[ENTRY] 9736Module: int 9737What: performance 9738Rank: minor 9739[DESCRIPTION] 9740Change implementation of Boolean propagators from conjunction 9741to disjunction so that disjunction can be used as special case 9742for Boolean sum with inequalities. 9743 9744 9745[RELEASE] 9746Version: 1.2.0 9747Date: 2006-06-20 9748[DESCRIPTION] 9749This release makes quite some drastic changes to how propagators 9750and branchings are deleted: instead of using destructors they use 9751a dispose method that allows passing a home space during deletion 9752(we will use this infrastructure measure to speed up cloning 9753considerably a little later). Moreover the directory structure 9754has changed on popular request so that all include files are to 9755be found in a gecode subdirectory. Apart from that, some small 9756fixes and extensions due to requests. 9757 9758[ENTRY] 9759Module: set 9760What: bug 9761Rank: minor 9762Thanks: Luis Otero 9763[DESCRIPTION] 9764Fixed memory leak in finite set distinct propagator. 9765 9766[ENTRY] 9767Module: int 9768What: bug 9769Rank: minor 9770[DESCRIPTION] 9771Fixed memory leak in global cardinality constraint. 9772 9773[ENTRY] 9774Module: int 9775What: bug 9776Rank: minor 9777Thanks: Martin Mann 9778[DESCRIPTION] 9779Fixed bug in equality tests that could lead to reified (dis)equality 9780propagators not achieving domain consistency. 9781 9782[ENTRY] 9783Module: test 9784What: new 9785Rank: minor 9786[DESCRIPTION] 9787Added --enable-leak-debug configure option. This option causes the test suite 9788to call mtrace() under Linux, which can be used to test for memory leaks. 9789 9790[ENTRY] 9791Module: kernel 9792What: performance 9793Rank: minor 9794[DESCRIPTION] 9795More aggressive inlining for canceling subscriptions. 9796 9797[ENTRY] 9798Module: search 9799What: bug 9800Rank: minor 9801Bug: 39 9802[DESCRIPTION] 9803Fixed linkage of BAB destructor under Cygwin. 9804 9805[ENTRY] 9806Module: kernel 9807What: change 9808Rank: minor 9809[DESCRIPTION] 9810The branch member function for branchings now also takes a home space 9811as argument. 9812 9813[ENTRY] 9814Module: kernel 9815What: change 9816Rank: major 9817[DESCRIPTION] 9818Canceling subscriptions on views and variable implementations now 9819require also a home space (this has become possible due to not using 9820destructors but ordinary "dispose" member functions). 9821 9822[ENTRY] 9823Module: kernel 9824What: change 9825Rank: major 9826[DESCRIPTION] 9827Actors (propagators and branchings) do not any longer use destructors 9828but a "dispose" member function that takes a home space as argument 9829and must return the size of the actor. 9830Important: this requires that dispose member functions from super-classes 9831and class members are called explicitly! 9832 9833[ENTRY] 9834Module: kernel 9835What: new 9836Rank: minor 9837[DESCRIPTION] 9838Spaces can be queried for number of propagators and branchings. 9839 9840[ENTRY] 9841Module: search 9842What: new 9843Rank: minor 9844[DESCRIPTION] 9845Search engines can now be checked whether they have been stopped. 9846 9847[ENTRY] 9848Module: int 9849What: documentation 9850Rank: minor 9851Thanks: Martin Mann 9852[DESCRIPTION] 9853Fixed bug in description of PC_INT_DOM. 9854 9855[ENTRY] 9856Module: other 9857What: change 9858Rank: major 9859Thanks: Martin Mann 9860[DESCRIPTION] 9861Moved library source code into gecode subdirectory. Facilitates cleaner 9862installation. Programs compiling against %Gecode now need to include 9863e.g. "gecode/int.hh". 9864 9865[ENTRY] 9866Module: example 9867What: change 9868Rank: minor 9869[DESCRIPTION] 9870Sudoku example generalized to arbitrarily sized Sudokus. 9871 9872[RELEASE] 9873Version: 1.1.0 9874Date: 2006-04-10 9875[DESCRIPTION] 9876This minor release adds some new constraints (see below), adds support 9877for stopping search engines based on definable criteria, and some other 9878small fixes. Most notably, the test infrastructure has been extended to 9879also check whether propagators correctly claim that they have computed 9880a fixpoint (now all invariants a propagator must obey in %Gecode are covered 9881by the test infrastructure). This has lead to many small fixes. 9882 9883[ENTRY] 9884Module: other 9885What: bug 9886Bug: 37 9887Rank: minor 9888Thanks: Kari Pahula 9889[DESCRIPTION] 9890Added a configure switch --enable-doc-dot. If enabled, this checks for 9891presence of the dot tool (used for generating graphs in the documentation) 9892 9893[ENTRY] 9894Module: example 9895What: new 9896Rank: minor 9897[DESCRIPTION] 9898Added all-interval series using distinct. 9899 9900[ENTRY] 9901Module: minimodel 9902What: new 9903Rank: minor 9904[DESCRIPTION] 9905Added functions returning variables for arithmetic 9906(min, max, abs, mult, plus, minus). 9907 9908[ENTRY] 9909Module: int 9910What: change 9911Rank: minor 9912[DESCRIPTION] 9913Support for shared views has been removed in 9914sortedness propagator and in the propagator 9915for global cardinality with fixed cardinalities. 9916 9917[ENTRY] 9918Module: int 9919What: bug 9920Rank: minor 9921[DESCRIPTION] 9922Fixed bug in fixpoint detection of sortedness and 9923global cardinality propagator. 9924 9925[ENTRY] 9926Module: set 9927What: bug 9928Rank: minor 9929Bug: 36 9930Thanks: Javier Mena 9931[DESCRIPTION] 9932A non-debug version of %Gecode could not be linked to a program compiled with 9933assertions switched on, as BndSet::isConsistent was missing from the library. 9934 9935[ENTRY] 9936Module: int 9937What: change 9938Rank: minor 9939[DESCRIPTION] 9940Staged propagation for domain-consistent absolute value propagator 9941 9942[ENTRY] 9943Module: int 9944What: change 9945Rank: minor 9946[DESCRIPTION] 9947EqBnd and EqDom now take two template parameters for their view types. This 9948supports using different views, e.g. to express x0=-x1 using a MinusView. 9949 9950[ENTRY] 9951Module: search 9952What: new 9953Rank: major 9954Thanks: Rafael Meneses 9955[DESCRIPTION] 9956Added functionality to interrupt search engines (introduced 9957a Search::Stop class). 9958 9959[ENTRY] 9960Module: search 9961What: change 9962Rank: major 9963[DESCRIPTION] 9964Removed search engines optimizing for copying only (after 9965all, one should always use some recomputation). 9966 9967[ENTRY] 9968Module: int 9969What: bug 9970Rank: minor 9971[DESCRIPTION] 9972Fixed bug in fixpoint detection of n-ary maximum/minimum 9973propagator. 9974 9975[ENTRY] 9976Module: kernel 9977What: change 9978Rank: minor 9979[DESCRIPTION] 9980The status member function now also allows the first 9981argument to be optional. 9982 9983[ENTRY] 9984Module: set 9985What: bug 9986Rank: minor 9987[DESCRIPTION] 9988Fixed bugs in fixpoint detection of several set propagators (match, 9989convexity, sequence, n-ary (disjoint) union). 9990 9991[ENTRY] 9992Module: int 9993What: bug 9994Rank: minor 9995[DESCRIPTION] 9996Fixed bug in fixpoint detection of bounds-consistent 9997element for variables propagator. 9998 9999[ENTRY] 10000Module: int 10001What: bug 10002Rank: minor 10003[DESCRIPTION] 10004Fixed bug in fixpoint detection of bounds-consistent squaring 10005propagator (mult with the same variable twice). 10006 10007[ENTRY] 10008Module: int 10009What: bug 10010Rank: minor 10011[DESCRIPTION] 10012Fixed bug in fixpoint detection of bounds-consistent abs 10013propagator. 10014 10015[ENTRY] 10016Module: int 10017What: performance 10018Rank: minor 10019[DESCRIPTION] 10020Rewrite n-ary linear, min/max, and Boolean propagators to binary/ternary 10021variants during cloning if possible (saves memory). 10022 10023[ENTRY] 10024Module: int 10025What: bug 10026Rank: minor 10027Thanks: Stefano Gualandi 10028[DESCRIPTION] 10029Fixed wrong assertion in gcc-bnd propagator. 10030 10031[ENTRY] 10032Module: int 10033What: bug 10034Rank: major 10035Thanks: Jean-Christophe Godart 10036[DESCRIPTION] 10037Fixed indexing bug in SupportSet (part of the domain consistent linear 10038equation propagator). 10039 10040[ENTRY] 10041Module: int 10042What: new 10043Rank: major 10044[DESCRIPTION] 10045Added new constraint channel for variable/value channeling 10046between two variable arrays. 10047 10048[ENTRY] 10049Module: int 10050What: change 10051Rank: minor 10052[DESCRIPTION] 10053All distinct propagators raise an exception if a variable occurs 10054multiply in its arguments. 10055 10056[ENTRY] 10057Module: set 10058What: change 10059Rank: major 10060[DESCRIPTION] 10061Renamed the set propagators minElement to min, maxElement to max, 10062and channelVarVal to channel. 10063 10064[ENTRY] 10065Module: int 10066What: performance 10067Rank: major 10068[DESCRIPTION] 10069Improved initialization of domain-consistent distinct propagator, 10070in common cases for distinct this can save up to 10% runtime. 10071 10072[ENTRY] 10073Module: set 10074What: bug 10075Rank: minor 10076Thanks: Patrick Pekczynski 10077[DESCRIPTION] 10078Fixed off-by-one bug in SetVarImp::lubMinN and SetVarImp::lubMaxN. 10079 10080[ENTRY] 10081Module: minimodel 10082What: bug 10083Rank: minor 10084Thanks: Olof Sivertsson 10085[DESCRIPTION] 10086(In-)Equations were still not correct with respect to the sign. 10087 10088[ENTRY] 10089Module: minimodel 10090What: bug 10091Rank: minor 10092Bug: 33 10093Thanks: Olof Sivertsson 10094[DESCRIPTION] 10095Slice-operation now returns elements in right order. 10096 10097[ENTRY] 10098Module: minimodel 10099What: bug 10100Rank: minor 10101Bug: 32 10102Thanks: Olof Sivertsson 10103[DESCRIPTION] 10104Possible array-out-of bounds access fixed for MiniModel::Matrix. 10105 10106[ENTRY] 10107Module: example 10108What: performance 10109Rank: minor 10110[DESCRIPTION] 10111Added redundant constraint to social golfers example. 10112 10113 10114 10115 10116[RELEASE] 10117Version: 1.0.1 10118Date: 2006-03-01 10119[DESCRIPTION] 10120Maintenance release including some additions of domain-consistent 10121propagators and a fix for a serious bug in reified linear 10122inequalities. 10123 10124[ENTRY] 10125Module: search 10126What: change 10127Rank: minor 10128[DESCRIPTION] 10129Changed default copying recomputation distance to 8. 10130 10131[ENTRY] 10132Module: minimodel 10133What: bug 10134Rank: minor 10135Thanks: Olof Sivertsson 10136[DESCRIPTION] 10137(In-)Equations with an int on the left hand side (like 9==x) were 10138translated with a wrong sign (as -9==x). 10139 10140[ENTRY] 10141Module: other 10142What: bug 10143Rank: minor 10144Bug: 31 10145[DESCRIPTION] 10146The preprocessor macro NDEBUG for disabling assertions is no longer 10147put into config.hpp. Without this fix, user programs could not use 10148assert if %Gecode was compiled with NDEBUG. 10149 10150[ENTRY] 10151Module: minimodel 10152What: new 10153Rank: minor 10154[DESCRIPTION] 10155The post functions for linear expressions and relations also take 10156an integer consistency level as optional argument. 10157 10158[ENTRY] 10159Module: int 10160What: new 10161Rank: major 10162[DESCRIPTION] 10163Added domain-consistent linear equalities. 10164 10165[ENTRY] 10166Module: int 10167What: bug 10168Rank: minor 10169Bug: 30 10170[DESCRIPTION] 10171Fixed fixpoint detection for ternary min and max. 10172 10173[ENTRY] 10174Module: int 10175What: bug 10176Rank: minor 10177[DESCRIPTION] 10178Fixed subsumption detection for regular with multiple variable occurences. 10179 10180[ENTRY] 10181Module: int 10182What: change 10183Rank: minor 10184[DESCRIPTION] 10185Cost computation for sortedness has been changed from static to 10186dynamic (taking into account the variable reduction the 10187propagator can perform). 10188 10189[ENTRY] 10190Module: int 10191What: change 10192Rank: major 10193[DESCRIPTION] 10194Global cardinality changed to non-staged version. Further 10195inference for cardinality variables added. Parts of the graph 10196structure for the domain-consistent propagator have been revised 10197so as to avoid unnecessary propagation in case of fixed 10198cardinalities and to allow better staging for the 10199propagator. Revision of propagation for fixed cardinalities has 10200also been applied to bounds-consistent propagator. 10201 10202[ENTRY] 10203Module: int 10204What: new 10205Rank: major 10206[DESCRIPTION] 10207Added domain-consistent version of the absolute value propagator. 10208 10209[ENTRY] 10210Module: other 10211What: performance 10212Rank: major 10213[DESCRIPTION] 10214Switch assertions off in optimized builds with Microsoft's C++ compiler. 10215 10216[ENTRY] 10217Module: int 10218What: bug 10219Rank: major 10220Bug: 29 10221Thanks: Dominik Brill 10222[DESCRIPTION] 10223Fixed a very serious bug in the reified linear inequality propagator. 10224 10225[ENTRY] 10226Module: other 10227What: bug 10228Rank: minor 10229Thanks: Filip Konvicka 10230[DESCRIPTION] 10231Removed some compiler warnings for the Microsoft compiler with -W3. 10232 10233[ENTRY] 10234Module: int 10235What: bug 10236Rank: major 10237Bug: 27 10238[DESCRIPTION] 10239The strongly connected components represented by the permutation 10240variables in the extended version of Sortedness has been fixed 10241restoring bounds consistency on the permutation variables. 10242 10243[ENTRY] 10244Module: other 10245What: change 10246Rank: minor 10247Bug: 24 10248[DESCRIPTION] 10249The soname for libraries on Linux is now set properly, as well as the 10250version information on Darwin (Mac OS). 10251 10252[ENTRY] 10253Module: other 10254What: change 10255Rank: minor 10256Bug: 25 10257[DESCRIPTION] 10258The build system has been updated to support building both static and 10259shared libraries at the same time on Unix-like systems. 10260 10261[ENTRY] 10262Module: example 10263What: change 10264Rank: minor 10265[DESCRIPTION] 10266Examples now use per default the recomputation settings as 10267defined in the search module. 10268 10269[RELEASE] 10270Version: 1.0.0 10271Date: 2005-12-06 10272[DESCRIPTION] 10273Initial release. 10274 10275[ENTRY] 10276Module: kernel 10277What: new 10278Rank: minor 10279Thanks: Gilles Pesant and Samuel Gagnon 10280[DESCRIPTION] 10281Introduction of a basic structure for supporting counting-based 10282search as described in: 10283S. Gagnon, G. Pesant, Accelerating Counting-Based Search, CPAIOR 2018. 10284This is only enabled if Gecode has been compiled with the option 10285--enable-cbs. 10286[MORE] 10287A branching option will be added to compatible examples as 10288counting algorithms are added to constraints.