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