Filewatcher File Search File Search
Catalog
Content Search
» » » » » libgecode32_3.7.3-1_s390.deb » Content »
pkg://libgecode32_3.7.3-1_s390.deb:2817622/usr/share/doc/libgecode32/  info  control  downloads

libgecode32 - generic constraint development environment…  more info»

changelog.gz

Changelog for Gecode
==============================================================================

Changes in Version 3.7.3 (2012-03-23)

Scope: This release fixes some bugs, mostly in the FlatZinc interpreter and library.
 
- Range and value iterators
  - Bug fixes
    - Fixed segfault in NaryUnion iterator.
      (major, thanks to Jean-No�l Monette)

------------------------------------------------------------------------------

Changes in Version 3.7.2 (2012-02-27)

Scope: This release fixes several small bugs.
 
- Kernel
  - Additions
    - Added Archive operators for floats and doubles.
      (minor)
- Finite domain integers
  - Other changes
    - Throw exception of type OutOfLimits instead of Exception when
      numerical arguments to sequence constraint are out of range.
      (minor)
  - Bug fixes
    - Added missing pruning to cumulative edge finding propagator.
      (minor, thanks to Joseph Scott)
    - Fixed sorted constraint to accept zero-length arrays.
      (minor, thanks to Kish Shen)
    - Added some missing propagation when posting a channel constraint
      between an array of Boolean variables and an integer variable.
      (minor, thanks to Kish Shen)
  - Performance improvements
    - Posting a reified dom constraint on IntVars with an assigned control
      variable does not create propagators any more, but updates the
      domain immediately.
      (minor)
- Finite integer sets
  - Bug fixes
    - The element constraint with SOT_UNION and IntSetArgs reported
      subsumption too early, resulting in incorrect propagation.
      (major, thanks to Denys Duchier)
- Minimal modelling support
  - Bug fixes
    - The BoolExpr default constructor did not properly initialize
      its members, causing crashes.
      (minor)
- General
  - Additions
    - Gecode now compiles on NetBSD.
      (minor, thanks to Adam Russell)
    - Added a macro GECODE_VERSION_NUMBER that is defined as
      x*1000000+y*100+z for Gecode version x.y.z.
      (minor, thanks to Denys Duchier)

------------------------------------------------------------------------------

Changes in Version 3.7.1 (2011-10-10)

Scope: This release fixes several bugs, upgrades to MiniZinc version
 1.4, and features some minor improvements.
 
- Search engines
  - Bug fixes
    - Fixed a bug that crashed the single-thread branch-and-bound
      search engine when initialized with a failed space.
      (minor)
- Finite domain integers
  - Additions
    - Added efficient propagators for n-ary Boolean xor and equivalence
      (as they are now primitive in MiniZinc).
      (minor)
    - Domain consistency for simple counting constraints can be
      switched off.
      (minor, thanks to Kish Shen)
  - Other changes
    - The semantics of n-ary Boolean implication has been changed (to
      the more convential reading): rel(home, BOT_IMP, x, y) where x is
      an array of Boolean variable now assumes implication to be right
      associative. See MPG for explanation.
      (minor)
  - Bug fixes
    - Fixed bugs in the computation of the required precision
      (int or double) for linear propagation, and in division
      operations of scale views. These could cause an incorrect
      treatment of overflow in linear constraints.
      (major)
  - Performance improvements
    - Domain consistent distinct runs 10-20% faster.
      (minor)
- Finite integer sets
  - Bug fixes
    - Do not use SharedArray<IntSet> in the set element constraints,
      because it does not properly udpate the IntSet during copying.
      This could cause memory corruption.
      (major)
- Support algorithms and datastructures
  - Bug fixes
    - Compile again if threads are disabled.
      (minor)
- Gist
  - Bug fixes
    - Fixed a crash that occurred when double-clicking an unexplored
      node while move inspectors were active.
      
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.7.0 (2011-08-31)

Scope: This release adds and improves quite a number of constraints
 (total lexicographic order for set variables, membership
 constraints for integer variables, counting constraints for
 integer variables using integer sets, range, roots, set element
 constraints for integer variables, number of values for integer
 variables). All of these constraints (and some more) are now also
 available in FlatZinc. Additionally, some fixes and improvements.
 
 This release is an important milestone as Gecode now provides
 native implementations for all important constraints available
 in MiniZinc/FlatZinc.
 
 The documentation of constraints in "Modeling and Programming
 with Gecode" now refers to the Global Constraint Catalog (for
 those constraints that are listed in the catalog).
 
- Kernel
  - Additions
    - View arrays can now also use region-allocated memory.
      (minor)
  - Bug fixes
    - Array slices can now be created from empty arrays.
      (minor, thanks to Max Ostrowski)
- Finite domain integers
  - Additions
    - Added normal and reified membership constraints for integer and
      Boolean variables.
      (major)
    - The count constraints now also support comparison to integer sets
      in addition to integers and integer variables (which then implements among
      from the GCCAT).
      (major)
    - Added nvalues constraint.
      (major)
  - Bug fixes
    - Added some additional propagation for the count constraints (now,
      for example, count(home, x, y, IRT_GQ, 1) also constrains y to
      only take values supported by x).
      (minor)
    - The estimation of bounds on linear terms did not handle overflow
      correctly.
      (major)
- Finite integer sets
  - Additions
    - Added set relations SRT_LQ, SRT_LE, SRT_GQ, SRT_GR for total
      (lexicographic) order.
      (major)
    - Added set element constraints with singleton integer variables
      as arguments.
      (minor)
  - Bug fixes
    - Fixed a memory leak in the set weights constraint, and use
      IntSharedArray instead of IntArgs as parameters for weights.
      (minor, thanks to Johannes Inf�hr)
- Minimal modelling support
  - Additions
    - Added a convenience function values that restricts the set of values
      taken by an array of integer variables to a fixed set, using the nvalues
      constraint. The channel constraints between IntVarArgs and a SetVar now
      also use nvalues to increase propagation.
      (minor)
    - Added range and roots, which decompose into set element constraints.
      (minor)
- Range and value iterators
  - Other changes
    - Cached iterators such as n-ary union and intersection, minus, and
      cache (of course) are not any longer template classes but take
      template constructors and member functions. N-ary union and
      intersection iterators can now also be initialized incrementaly
      with iterators of different types.
      (minor)
- Example scripts
  - Additions
    - Added Dominating %Queens puzzle.
      (minor)
- Gist
  - Bug fixes
    - Call solution inspectors also when exploring manually.
      (minor)
    - Flush output to Gist console, so that output that is not ended by a
      newline is not lost.
      (minor)
- General
  - Bug fixes
    - Install generated variable implementation headers instead of the shipped 
      versions (fixes a problem when building Gecode in a separate directory).
      (minor, thanks to Gustavo Gutierrez)

------------------------------------------------------------------------------

Changes in Version 3.6.0 (2011-07-15)

Scope: This release adds new constraints (value precedence constraints
 for integer and set variables, no-overlap constraints for
 rectangles, constraints for Hamiltonian paths), improves and
 cleans up a number of existing constraints (scheduling,
 channeling, relation, bin-packing, lexicographic relations), and
 adds new functionality (support for externalization of choices
 for distributed search, support for incremental propagation).
 
 Some models might have to be changed as the graph and scheduling
 modules have been incorporated into the integer module (removing
 the respective include directives is sufficient).
 
 On top, there are many small fixes, in particular for FlatZinc.
 
- Kernel
  - Additions
    - Moved RangeList class, which is a list of ranges implemented as a FreeList, 
      from the set module into the kernel. Also added corresponding 
      Iter::Ranges::RangeList iterator.
      (minor)
  - Other changes
    - Choices can now be written into an externalized form (called an Archive),
      and reconstructed from it. This is necessary for serializing paths in
      a distributed search engine.
      (major)
- Search engines
  - Bug fixes
    - Fixed memory leak when passing a failed space to a search engine with cloning 
      option set to false.
      (minor)
- Finite domain integers
  - Additions
    - The cumulative constraints now support an IntVar as the capacity
      argument.
      (minor)
    - Added value precedence constraint.
      (major)
    - Added no-overlap constraint that enforces that rectangles do not
      overlap (also known as diffn). See "Modeling and Programming with
      Gecode" for details.
      (major)
    - Added constraints for Hamiltonian paths (called
      path). See "Modeling and Programming with Gecode" for details.
      (major)
    - Generalized lexicographic constraint to arrays of different sizes.
      (minor, thanks to Kish Shen)
    - Added a CachedView that can cache the domain between propagator invocations
      and provides an efficient test whether a view has changed since the previous
      invocation as well as an iterator over the removed domain values. This makes
      it easier to implement incremental propagation algorithms that need exact
      delta information.
      (major)
  - Other changes
    - The cumulatives constraint now does not post the s+p=e constraints,
      harmonizing its semantics with the cumulative and unary constraints.
      (minor)
    - Changed semantics of rel(home, x, IRT_NQ), enforces that not all
      variables in x are equal. See "Modeling and Programming with
      Gecode" for details.
      (major)
  - Bug fixes
    - Fixed element and sequence propagators, which were only
      correct by accident (incorrect use of GECODE_ME_CHECK instead of
      GECODE_ES_CHECK).
      (minor)
  - Performance improvements
    - Optimized channeling propagator between an array of Boolean
      variables and an integer variables.
      (minor)
    - The disequality constraint between variable arrays has an efficient
      propagator now.
      (minor)
    - The ordering constraints rel(home, x, IRT_LE) (also for IRT_LQ,
      IRT_GR, IRT_GQ) now have an optimal implementation (single
      incremental propagator).
      (major)
    - Increased performance of bin-packing propagator by 40 to 300
      percent by using staging.
      (major)
    - The channel constraints between two integer arrays are now more
      memory efficient when offsets are used.
      (minor)
- Finite integer sets
  - Additions
    - Added value precedence constraint.
      (major)
    - Added a CachedView that can cache the domain between propagator invocations
      and provides an efficient test whether a view has changed since the previous
      invocation as well as an iterator over the removed domain values. This makes
      it easier to implement incremental propagation algorithms that need exact
      delta information.
      (major)
    - Added channel aliases for set union of an array of integer variables,
      and renamed channel to channelSorted.
      (minor, thanks to Marco Correia)
  - Bug fixes
    - Fixed sequence, partition, and union propagators, which were only
      correct by accident (incorrect use of GECODE_ME_CHECK instead of
      GECODE_ES_CHECK).
      (minor)
    - The constructors for set variable arrays and argument arrays threw incorrect 
      VariableEmptyDomain exceptions.
      (minor)
  - Performance improvements
    - Use new cached views for a more efficient implementation of the channel constraint between IntVarArgs and SetVarArgs.
      (minor)
  - Documentation fixes
    - Fixed documentation for set channeling constraint.
      
      (minor, thanks to Marco Correia)
- Scheduling constraints
  - Other changes
    - The scheduling module has been removed and its constraints have been
      added to the integer module.
      (major)
  - Bug fixes
    - Fixed scheduling code for mandatory flexible tasks, which was only
      correct by accident (incorrect use of GECODE_ME_CHECK instead of
      GECODE_ES_CHECK).
      (minor)
- Example scripts
  - Additions
    - Added Schur's Lemma puzzle.
      (minor)
- Gist
  - Other changes
    - Zoom-to-fit can now be selected during search.
      (minor)
    - Compiles under MSVC 2005 SP1 again.
      (minor, thanks to Alin Gherman)
  - Bug fixes
    - Changed keyboard shortcuts in Gist so that they work on all platforms: "Inspect"
      is now Ctrl+number of inspector, for "Inspect before fixpoint" press Alt in 
      addition (on Mac OS, use the Command key instead of Ctrl).
      (minor)
- General
  - Additions
    - Added configure option --enable-small-codesize that results in
      slightly less efficient but more compact code being generated for
      non-debug builds.
      (minor, thanks to Ruben Zilibowitz)
  - Bug fixes
    - Fixed Makefile, now installation works when FlatZinc library is disabled.
      (minor, thanks to Martin Mann)

------------------------------------------------------------------------------

Changes in Version 3.5.0 (2011-02-01)

Scope: This release fixes serious bugs in parallel search, FlatZinc,
 fixes some DLL issues on Windows, adds support for FreeBSD, and
 adds STL-style iterators for arrays.
 
- Kernel
  - Additions
    - Added STL compatible iteration support for arrays (variable
      arrays, argument arrays, view arrays, and shared arrays).
      (major)
- Search engines
  - Bug fixes
    - Fixed a serious bug in parallel search (took over a year to
      isolate the bug).
      (major, thanks to Denys Duchier, Chris Mears)
- Minimal modelling support
  - Bug fixes
    - Do not inline construction of linear, Boolean, and set
      expressions to avoid cross-DLL allocation/deallocation issues on
      Windows.
      (minor, thanks to Alexander Kleff)
- General
  - Additions
    - Gecode now compiles on FreeBSD.
      (minor, thanks to Peter Penchev)
    - Embed resource information into Gecode DLLs and EXEs on Windows.
      (major)
  - Other changes
    - Embed manifest into Gecode DLLs on Windows.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.4.2 (2010-10-09)

Scope: This release removes LDS from Gecode as it is patented in the US.
 
- Search engines

------------------------------------------------------------------------------

Changes in Version 3.4.1 (2010-10-08)

Scope: This release adds a new global constraint for bin-packing (with
 extended example) and filter functions for branchers. The
 reference documentation has been cleaned up. In particular,
 information on how to obtain, install, and link Gecode has been
 expanded and moved to "Modeling and Programming with Gecode"
 (Section 2.6). Additionally, the release fixes some bugs and
 contains some performance improvements.
 
- Kernel
  - Other changes
    - Branching now honors filter functions, where variables are
      considered for branching only if the filter functions returns
      true (see "Modeling and Programming with Gecode" for details).
      (major, thanks to Felix Brandt)
    - Variable implementation views are now parametric with respect to
      variables but not variable implementations (see "Modeling and
      Programming with Gecode" for details).
      (minor)
    - Renamed the template class for variables defined by a variable
      implementation from Var to VarImpVar and re-added a class Var as
      base class for any variable type.
      (minor)
- Finite domain integers
  - Additions
    - Added a binpacking constraint and propagator.
      (major)
  - Bug fixes
    - Do not inline functions with variable arguments.
      (minor, thanks to Gustavo A. G�mez Farhat)
    - The reified dom constraint failed instead of setting the BoolVar to 0 when the 
      minimum argument given was greater than the maximum.
      (minor, thanks to Kish Shen)
  - Performance improvements
    - Fixed sortedness constraint by replacing an algorithm that is linear in the 
      width of the union of all domains with an algorithm that is quadratic in the 
      number of variables. The previous algorithm crashed for domains with large 
      values due to excessive memory use.
      (minor, thanks to Kish Shen)
    - Using ICL_DOM for binary linear equations with unit coefficients (such as x = 
      y+3) is now implemented using the much more efficient binary equality 
      propagator instead of the linear equation propagator (which has worst case 
      exponential runtime).
      (minor)
- Scheduling constraints
  - Bug fixes
    - Fixed initialization for unary and cumulative edge-finding (just
      worked accidentally).
      (major, thanks to Roberto Casta�eda Lozano)
- Minimal modelling support
  - Other changes
    - Added element expression for BoolVarArgs.
      (minor)
  - Bug fixes
    - Fixed memory allocation for non-linear expressions and made the
      LinExpr constructor explicit for non-linear expressions (previously
      the automatic cast from integers to LinExpr was sometimes ambiguous).
      (minor)
- Range and value iterators
  - Performance improvements
    - Reimplemented n-ary union, minus, and cache iterators for much
      better efficiency.
      (minor)
- Example scripts
  - Additions
    - Added a binpacking model using the binpacking constraint and CDBF
      (complete decreasing best fit) search.
      (major)
- Gist
  - Other changes
    - Only center node on double-click if it was undetermined (otherwise
      inspecting several nodes becomes slightly annoying).
      (minor)
  - Performance improvements
    - Saved some memory for each node in Gist (one pointer per node, two integers
      per inner node, and some additional memory on 64 bit platforms due to optimizing
      alignment), and speeded up deallocation of the tree (e.g. when resetting or
      closing Gist).
      (minor)
- General
  - Documentation fixes
    - Removed obsolete Glossary in reference documentation.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.4.0 (2010-07-26)

Scope: This release includes: considerably improved support for posting
 expressions and relations (also including set and full arithmetic
 expressions); other improvements for modeling (array
 initialization and element addition to arrays); state-of-the-art
 unary and cumulative scheduling propagators (including optional
 and flexible tasks); major cleanups of the variable and view
 infrastructure (now also documented in MPG); cleanups of the
 examples; several other fixes and performance improvements. 
 
 This release is the first to be accompanied by a complete version
 of "Modeling and Programming in Gecode" which has been extended
 by many new case studies and parts on programming search engines
 and variables.
 
- Kernel
  - Additions
    - Added LocalObject and LocalHandle classes that can be used for
      space-allocated objects that are shared within a space, for
      example among several propagators or propagators and branchers.
      (minor)
  - Other changes
    - The support for dynamically resizing variable arrays has been
      removed (it was buggy and inefficient). Instead, all argument
      arrays now support adding elements using operator<<. In addition,
      all arrays now support concatenation using operator+ and slicing,
      and variable arrays, view arrays, and variable argument arrays
      include a test whether all variables are assigned.
      (major)
  - Bug fixes
    - Posting a propagator in a failed space could make the space
      non-failed again.
      (minor)
- Finite domain integers
  - Additions
    - You can now construct IntArgs from an STL vector, an IntSharedArray,
      or using simple comprehensions.
      (minor)
  - Other changes
    - The argument arrays now have constructors that create new variables.
      (minor)
    - IntArgs with simple sequences of values can now be created using the 
      IntArgs::create static member function.
      (minor)
  - Performance improvements
    - Optimized element propagator, expect a speed up of around 35-50%
      in most cases.
      (minor)
- Finite integer sets
  - Other changes
    - The argument arrays now have constructors that create new variables.
      (minor)
  - Bug fixes
    - Fixed the include and exclude tell operations of set variables so
      that they work with empty ranges.
      (minor)
- Scheduling constraints
  - Additions
    - Added scheduling constraints for tasks with flexible duration
      (for both unary and cumulative resources), and made all scheduling
      propagators deal correctly with zero length tasks.
      (major)
    - Added propagators for cumulative scheduling.
      (major)
- Minimal modelling support
  - Additions
    - The minimodel library now provides convenient post functions
      for set constraints.
      (major)
  - Other changes
    - The Matrix class now supports const operations and has an output
      operator.
      (minor)
    - Linear expressions can now contain non-linear parts, such as
      multiplications or divisions, or set expressions such as
      cardinality.
      (major)
    - The minimodel post functions have been split into two functions, rel
      and expr. While rel posts a constraint, expr returns a new variable
      constrained to the given expression. This change makes it possible to
      get rid of the reification operator (~) as well as the tt and ff
      functions, which were previously needed to distinguish between
      relations and expressions. Boolean equivalence and implication can
      now be expressed using operators (==,<<,>>).
      (major)
    - Array slices can now be empty.
      (minor)
  - Bug fixes
    - Fixed a bug in minimodel, which could crash when using zero
      coefficients.
      (minor, thanks to H�kan Kjellerstrand)
  - Performance improvements
    - Posting linear expressions performs more aggressive optimizations
      for assigned variables.
      (minor)
    - Arithmetic modeling functions now try to avoid creating new
      variables and posting propagators for common cases.
      (minor)
- Example scripts
  - Additions
    - New custom branching for the BACP example using a custom value selection.
      (minor)
  - Other changes
    - The Nonogram example now uses AFC as the default branching and 
      includes some more instances.
      (minor)
    - Take advantage of the better modeling support for the BIBD, Golomb
      ruler, Kakuro, Black Hole, and Warehouse examples (nothing but dusting off
      examples that have been around for ages).
      (minor)
- Gist
  - Other changes
    - If an inspector throws an exception, an error message is 
      printed indicating which inspector caused the problem.
      Previously, Gist would crash with a Qt error that was difficult
      to trace.
      (minor)
  - Bug fixes
    - Fixed bug in Gist where signals were sent across threads, which
      makes Qt crash in certain situations on some platforms.
      (minor)
    - Fixed bug in interactive search where every move in the tree required 
      recomputation.
      
      (minor, thanks to David Zaremby)
- General
  - Other changes
    - Completely cleaned up variables and views, drastically saving code.
      (major)
    - The configure script now checks for qmake-qt4 and moc-qt4, which are used on 
      some Linux systems to distinguish between Qt3 and Qt4.
      (minor)
    - The build system now supports Visual C++ 2010.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.3.1 (2010-04-09)

Scope: This release adds many new features to Gist, fixes two major bugs
 in extensional constraints, and has some more cleanups to comply
 with the first release of the "Modeling and Programming with
 Gecode" document. And, as always some small fixes and cleanups.
 
- Kernel
  - Other changes
    - The (unused and unusable) CopiedHandle have been removed.
      (minor)
  - Bug fixes
    - Fixed bug in VarArray::resize function that occurred when shrinking
      variable arrays.
      (minor)
- Finite domain integers
  - Bug fixes
    - Fixed extensional constraint with finite automata for very
      unlikely (but apparantely possible) border case.
      (major)
    - The extensional constraints with tuple sets could cause crashes
      when used with parallel search.
      (major)
- Finite integer sets
  - Bug fixes
    - Fixed channeling between set and integer variables which did not propagate 
      enough.
      (minor)
- Scheduling constraints
  - Other changes
    - Tasks in unary scheduling constraints may now have processing times of 0.
      (minor)
  - Bug fixes
    - The unary scheduling propagator with optional tasks missed some
      propagation sometimes.
      (minor)
- Example scripts
  - Additions
    - Added Gist inspectors for the Knights and Queens examples.
      (minor)
- Gist
  - Additions
    - In addition to inspectors, you can now also register comparators, which can be 
      used to compare two nodes in the tree. In combination with the option to 
      compare before computing a fixpoint of the second node, this lets you see what 
      exactly was modified by a branching.
      (major)
    - Gist can now stop exploration after all alternatives of a certain branching
      are exhausted. This feature can be turned on by posting a special branching
      using the Gist::stopBranch post function. Gist will then stop whenever that 
      special branching becomes active.
      (major)
    - Added inspection of nodes before fixpoint computation.
      (minor)
    - Nodes can now be bookmarked.
      (minor)
    - Added inspectors that react whenever a node is selected.
      (minor)
  - Bug fixes
    - Missing export declarations prevented embedding Gist as a widget. There is 
      now example code for embedding Gist in the directory 
      gecode/gist/standalone-example.
      (minor)
    - Fixed a bug where sometimes clicking on a node would select a different node.
      (minor)
  - Performance improvements
    - Scrolling and zooming have been reimplemented. The new implementation is more 
      efficient and works around problems that occurred with large trees on some 
      platforms. Zooming is now more intuitive, keeping the current center 
      centered. You can now also zoom by pressing shift while using the mouse wheel.
      (major)
- General
  - Documentation fixes
    - Removed many small documentation quirks.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.3.0 (2010-03-15)

Scope: This release provides some fixes, some performance improvements
 for domain propagators, and quite some clean ups how propagators
 and advisors report their status to the kernel. Many of these
 clean ups are essential to make it easier to program propagators
 and branchers with Gecode.
 
- Kernel
  - Additions
    - Advisors now can force its propagator to be rescheduled,
      including recomputation of its cost used for scheduling
      (normally, a propagator is only rescheduled if its modification
      event delta changes). An advisor can signal forceful rescheduling
      by returning ES_NOFIX_FORCE or returning the return value of
      ES_NOFIX_FORCE_DISPOSE. Read the forthcoming "Modeling and
      Programming with Gecode" for details.
      (minor)
  - Other changes
    - The failure macros for posting GECODE_ES_FAIL and GECODE_ME_FAIL
      now only accept a single argument and assume that "home" actually
      refers to the home space.  Read the forthcoming "Modeling and
      Programming with Gecode" for details.
      (minor)
    - The functions ES_FIX_PARTIAL, ES_NOFIX_PARTIAL, ES_FIX_DISPOSE,
      and ES_NOFIX_DISPOSE are now member of Space. Read the
      forthcoming "Modeling and Programming with Gecode" for details.
      (minor)
    - The function ES_SUBSUMED now is a member of Space and accepts a
      propagator as its single argument. The variant with a size as the
      second argument is available as ES_SUBSUMED_DISPOSED but use is
      highly discouraged. Read the forthcoming "Modeling and
      Programming with Gecode" for details.
      (minor)
    - The functions ES_SUBSUMED_FIX and ES_SUBSUMED_NOFIX for advisors
      have been renamed to ES_FIX_DISPOSE and ES_NOFIX_DISPOSE. Read
      the forthcoming "Modeling and Programming with Gecode" for
      details.
      (minor)
  - Bug fixes
    - ViewValBrancher with random value selection did not produce a
      random sequence of values.
      (minor)
- Finite domain integers
  - Additions
    - Integer sets (IntSet) now have a in member function for testing
      whether an integer is included.
      (minor)
  - Other changes
    - Patterns for reified propagators have been moved to the
      Gecode::Int namespace.
      (minor)
  - Performance improvements
    - Considerably improved performance and memory consumption of the
      DFA-based extensional constraint (regular).
      (major)
- Finite integer sets
  - Other changes
    - Patterns for set propagators have been moved to the
      Gecode::Set namespace.
      (minor)
- Minimal modelling support
  - Additions
    - Linear expressions can freely mix integer and Boolean variables
      and support construction from variable arrays via a sum function.
      (minor)
- Support algorithms and datastructures
  - Performance improvements
    - Changed to single, really efficient bitset implementation used
      allover the system.
      (major)
- Gist
  - Bug fixes
    - Avoid inter-thread call to QWidget::update, which apparently causes a slight 
      memory leak (and warning messages on stderr) on Mac OS.
      
      
      (minor)
- General
  - Bug fixes
    - Configure now prepend options to the CXXFLAGS and CFLAGS variables
      instead of appending them. That way, defining the variables when
      invoking configure overrides the choices configure makes (e.g.
      overriding the default -O3 with -O2).
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.2.2 (2009-11-30)

Scope: This release adds the sequence constraint (contributed by David
 Rijsman, Quintiq) and has as always some small additions and
 fixes.
 
- Kernel
  - Bug fixes
    - Added missing assignment operator for space-based allocators for
      STL data structures.
      (minor, thanks to Gustavo Gutierrez)
- Search engines
  - Bug fixes
    - The memory reported could be sometimes too low (the previous fix
      for 3.2.0 did not fix it for branch and bound search).
      (minor)
- Finite domain integers
  - Additions
    - Added sequence constraint.
      (major)
  - Bug fixes
    - The global cardinality (count) constraint now accepts unsorted
      arrays of values.  It previously propagated incorrectly if the
      array was not sorted.
      (minor, thanks to Alberto Delgado)
    - Fixed bug in the ICL_VAL propagator for global cardinality.
      (minor)
    - Subscription to constant views did not honor the flag to avoid
      processing.
      (minor)
- Finite integer sets
  - Bug fixes
    - Subscription to constant views did not honor the flag to avoid
      processing (did not occur in practice).
      (minor)
- Range and value iterators
  - Other changes
    - Renamed test for subset or disjointness of range iterators to "compare".
      (minor)
- Example scripts
  - Additions
    - Added car sequencing example (problem 1 in CSPLib). Uses the new
      sequence-constraint.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.2.1 (2009-11-04)

Scope: This release fixes one serious bug in the element constraint for
 matrices; adds branchings using accumulated failure counts (also
 known as weighted degree); provides some optimizations (mostly
 for element constraints and for regular expressions with millions
 of nodes); adds two cute models (word-square and crossword); and
 a little this and that as always.
 
- Kernel
  - Additions
    - Propagators and variables now maintain an accumulated failure
      count (AFC).
      The AFC of a propagator counts how often has the propagator
      failed during the entire search, and the AFC of a variable is its
      degree plus the sum of the AFCs of all propagators depending on
      the variable. While it looks straightforward, this required a
      major extension of the Gecode kernel to deal with global
      information accessed concurrently from several threads during
      search. The AFC is also known as "weighted degree".
      (major)
- Finite domain integers
  - Additions
    - Added INT_VAL_RANGES_MIN (and INT_VAL_RANGES_MAX) as value
      selection for branching: it tries the values from the smallest
      (largest) range first, if the variable's domain has several
      ranges, otherwise it splits the domain.
      (minor)
    - Added AFC-based branching strategies for integer and Boolean
      variables: INT_VAR_AFC_MIN, INT_VAR_AFC_MAX,
      INT_VAR_SIZE_AFC_MIN, INT_VAR_SIZE_AFC_MAX. For details, see
      "Modeling with Gecode".
      (major)
  - Other changes
    - The semantics of division and modulo has changed to match the C standard. This
      means that the operations round towards zero, and that the result of the 
      modulo has the same sign as its first argument.
      (minor)
  - Bug fixes
    - Fixed segfault in matrix element constraint.
      (major)
    - Added missing dispose function for linear disequality of Boolean
      variables (the only problem was that with a proper dispose
      function more memory can be reused when the propagator becomes
      subsumed, so really a tiny quirk).
      (minor)
  - Performance improvements
    - Element constraints for integer arrays now accept shared integer
      arrays (IntSharedArray). By this, the very same array can be
      shared among several element constraints. Models require no
      change, as IntArgs are automatically coerced to
      IntSharedArrays. See "Modelling with Gecode" for more
      explanation.
      (minor)
    - Optimized element for matrices (in special cases, the propagator
      is up to six times as efficient as before).
      (minor)
- Finite integer sets
  - Additions
    - Added AFC-based branching strategies for set variables:
      SET_VAR_AFC_MIN, SET_VAR_AFC_MAX, SET_VAR_SIZE_AFC_MIN,
      SET_VAR_SIZE_AFC_MAX. For details, see "Modeling with Gecode".
      (major)
  - Other changes
    - Split rel-op.cpp and rel-op-const.cpp into several compilation units, to avoid
      excessive memory and time usage of the gcc compiler.
      (minor)
- Minimal modelling support
  - Performance improvements
    - Conversion of a regular expression to a DFA would crash on
      regular expressions with several million nodes (due to running
      out of call stack space).
      (minor, thanks to H�kan Kjellerstrand)
- Example scripts
  - Additions
    - Added word square puzzle.
      (minor)
    - Added crossword puzzle (thanks to Peter Van Beek for providing
      access to some crossword grids).
      (minor, thanks to Peter Van Beek)
  - Other changes
    - Sudoku and GraphColor now uses smallest size over accumulated failure
      count (AFC) as the default heuristic.
      (minor)
  - Bug fixes
    - The Nonogram example no longer crashes on empty lines.
      (minor, thanks to Jan Wolter)
- General
  - Other changes
    - Now posting of propagators and branchers take an object of class
      Home (rather than just a space) that can carry additional
      information relevant for posting (for example, groups and
      accumulated failure information). Models do not need to be
      changed in any way!
      While models require no change, propagator rewriting does (it
      will work but some information might be lost). Instead of writing
      something like
      GECODE_REWRITE(*this,SomeProp::post(home,...));
      where *this is the propagator to be rewritten, you should now
      write
      GECODE_REWRITE(*this,SomeProp::post(home(*this),...));
      By this, the new propagator will inherit information from *this
      (in particular the accumulated failure count).
      
      (major)

------------------------------------------------------------------------------

Changes in Version 3.2.0 (2009-10-05)

Scope: This release has some important bug fixes (in particular for
 global cardinality aka count), the documentation has been
 improved (worked around some issues with generation by doxygen),
 integrates the FlatZinc interpreter into the Gecode source tree,
 provides propagators for disjunctive scheduling (experimental),
 and lots of small changes and fixes. For more consistent names,
 branchings are branchers now and branching descriptions are
 choices (this you might have to adapt to).
 
 
- Kernel
  - Other changes
    - A branching is now a brancher and a branching description is now a choice. 
      Classes and member functions have been renamed accordingly. The
      change is necessary due to proper explanation in the forthcoming
      "Programming with Gecode".
      (major)
- Search engines
  - Other changes
    - Optimized thread creation by thread pools, now the creation and
      deletion of arbitrarily many parallel search engines also works
      for platforms using pthreads (Linux and MacOS).
      (minor)
    - Path for search provides top and empty methods.
      (minor, thanks to Vincent Barichard)
  - Bug fixes
    - The memory reported could be sometimes too low (that could only
      happen when an advisor allocates memory which they do only now).
      (minor)
    - Compiles again if no threads available.
      (minor)
- Finite domain integers
  - Additions
    - Added regret_min and regret_max for IntVar and BoolVar (they were
      only available for IntView).
      (minor, thanks to Kish Shen)
    - Added branch and assign for single integer and Boolean variable.
      (minor)
    - Added element constraints for Matrix arrays.
      (minor, thanks to H�kan Kjellerstrand)
  - Other changes
    - The element constraint now computes more accurate variable bounds
      when being posted (to avoid arithmetic overflow in naive models).
      (minor)
    - The element constraint now throws an exception if used with an
      empty array.
      (minor)
    - Moved cumulatives to the new scheduling library.
      (minor)
    - Moved circuit to the new graph library.
      (minor)
  - Bug fixes
    - Slightly improved strength of the division propagator.
      (minor, thanks to Jan Kelbel)
    - Fixed serious bug in the bounds propagator for global cardinality.
      (major)
  - Performance improvements
    - Extensional propagators using DFAs or REGs (aka regular) use a
      more compact state representation but create their state more
      eagerly. That can improve performance considerably (twice as fast) at a slight
      increase in memory.
      (minor, thanks to George Katsirelos, Nina Narodytska)
    - Optimized n-ary disjunction and conjunction and the clause constraint.
      (minor)
    - Linear constraints over Boolean variables with unit coefficients
      (aka Boolean cardinality constraints) have been
      reimplemented. Less memory (minus 30%) and more speed. For
      example, BIBD runs 10% faster now.
      (minor)
- Finite integer sets
  - Additions
    - Added branch and assign for single set variable.
      (minor)
    - Added element constraints for Matrix arrays.
      (minor, thanks to H�kan Kjellerstrand)
  - Other changes
    - The element constraint with an integer index variable now throws
      an exception if used with an empty array.
      (minor)
- Scheduling constraints
  - Additions
    - Added propagators for disjunctive scheduling (unary resource
      scheduling). This is still experimental as the propagators are
      not yet optimized and branching and modelling support is not yet
      available.
      (major)
    - Added a new module for scheduling. To use scheduling
      constraints, you have to include <gecode/scheduling.hh> and link
      against the scheduling library.
      (minor)
- Minimal modelling support
  - Additions
    - Added element constraints for Matrix interface to arrays.
      (minor, thanks to H�kan Kjellerstrand)
- Support algorithms and datastructures
  - Other changes
    - No longer depend on availability of timersub.
      (minor, thanks to Alexandre Fayolle)
- Example scripts
  - Additions
    - Added branching following Warnsdorff's heuristic for Knights.
      (minor)
  - Other changes
    - Examples now use the symmetry-option for symmetry-breaking.
      The affected examples are:
        - BlackHole
        - EFPA
        - Pentominoes
        - SteelMill
        .
      (minor)
  - Bug fixes
    - Fixed wrong symmetry breaking for TSP.
      (minor, thanks to Geoffrey Chu)
    - Fixed zero cost edges in TSP examples.
      (minor)
- Gist
  - Other changes
    - The Gist console now has a toolbar that provides buttons to clear the text
      as well as to configure the console window to stay on top of Gist. 
      Furthermore, after adding output, the console now automatically scrolls to the 
      bottom.
      (minor)
  - Bug fixes
    - Gist now places clones also on the leftmost branch during search.
      (minor)
- General
  - Other changes
    - Compiles with MSVC 2005 again.
      (minor, thanks to David Rijsman)
  - Bug fixes
    - The configure script checked for Qt 4.2, although Gist requires at least
      Qt 4.3.
      (minor)
  - Documentation fixes
    - Cleaned up the generated reference documentation, and introduced a number
      of workarounds for issues in doxygen. In particular, the documentation for
      linear constraints over Boolean variables and for the thread abstractions
      is now generated properly.
      (major)
    - Mention that also grep is needed for building Gecode.
      (minor, thanks to Vivian De Smedt)

------------------------------------------------------------------------------

Changes in Version 3.1.0 (2009-05-20)

Scope: This release introduces parallel search, features improved memory
 management (can double efficiency on MacOS X), and provides a
 reusable command line driver upon popular request. And, of
 course, some this and that.
 
- Kernel
  - Performance improvements
    - Cache memory blocks from deleted spaces. This hardly increases
      peak memory consumption. It improves performance on Windows and
      Linux only by up to 5%, but on MacOS by 50% in some cases (this
      improvement is absolutely essential for parallel execution).
      (major)
- Search engines
  - Additions
    - Added parallel search engines for DFS, BAB, and Restart (but not
      LDS). Please make sure to read the section "Parallel search" in
      "Modeling with Gecode".
      Parallel search is still experimental: creating and destroying a
      large number (more than 1000) of search engines (and hence a
      large number of threads) might raise exceptions on operating
      systems using pthreads as thread implementation. This will be
      fixed in a future release by using thread pools.
      (major)
  - Other changes
    - The stop function of stop objects now also takes a second argument
      of type Search::Options. This is in particular useful for
      decisions that involve the number of threads used for search.
      (minor)
- Finite domain integers
  - Additions
    - Added a wait propagator: executes a function when a variable (or
      variables) become(s) assigned.
      (minor)
  - Other changes
    - The INT_VAL_MED value selection now consistently selects the greatest element
      in the domain not greater than the median.
      (minor)
- Finite integer sets
  - Additions
    - Added a wait propagator: executes a function when a variable (or
      variables) become(s) assigned.
      (minor)
  - Other changes
    - The set constraint sequentialUnion has been renamed to sequence.
      (minor)
- Support algorithms and datastructures
  - Additions
    - Added a tiny portable thread package specifically tailored to the
      needs for parallel search. Unfortunately, other portable thread
      packages have just too many issues.
      (minor)
    - Support::quicksort and Support::insertion support using the less than
      operator for the sort order by leaving out the comparator object.
      
      (minor)
- Example scripts
  - Additions
    - Added new example for equidistant frequency permutation arrays (EFPA).
      (minor)
  - Other changes
    - The parameters of the Hamming Codes example are now configurable
      through command line options (instead of hard-coded).
      (minor)
- Gist
  - Other changes
    - Small user interface changes: disable search from hidden nodes, add depth 
      information to status bar, and add statistics for subtrees (available from the 
      node context menu and the Node menu).
      (minor)
    - Easily add multiple inspectors to Gist. Inspectors are not
      exclusive any longer, you can select any combination of them to
      respond to clicks or solutions simultaneously.
      (minor)
  - Bug fixes
    - Fixed a dead lock that could occur when closing the Gist main window while 
      search is still running.
      (minor)
    - The inspectors are finalized before Gist exits. This fixes a bug
      where (at least on Mac OS) some memory was not freed in the
      correct order.
      (minor)
    - Gist now correctly centers the current node after search has finished.
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.0.2 (2009-03-26)

Scope: This is a bug fix release fixing two more embarrassing
 bugs. However, this time we redesigned our tests carefully such
 that they cover all changes and optimizations done for the
 transition from 2.2.0 to 3.0.*. Please update asap.
 
- Finite domain integers
  - Bug fixes
    - Fixed bug in optimization of extensional constraints with DFAs
      (hard to reproduce, almost impossible).
      (major)
  - Performance improvements
    - Reoptimized element with integer values and created bizarre
      testcases.
      (minor)
- Minimal modelling support
  - Bug fixes
    - Fixed bug in posting of Boolean expressions including reified
      linear expressions. Again, that escaped our testsuite (also
      fixed).
      (major, thanks to Gustavo Guiterrez)
- Example scripts
  - Bug fixes
    - The radiotherapy example was missing in the Makefile.
      (minor, thanks to H�kan Kjellerstrand)
- Gist
  - Other changes
    - A separator is printed between solutions in the TextInspector.
      
      (minor)

------------------------------------------------------------------------------

Changes in Version 3.0.1 (2009-03-24)

Scope: This is a bug fix release fixing two embarrassing bugs that were
 not caught by our test infrastructure. Please update asap.
 
 
- Finite domain integers
  - Bug fixes
    - Fixed bug in element with integer values.
      (major, thanks to Vincent Barichard)
    - IntSetArgs no longer inherit from PrimArgArray, which was wrong
      as IntSet is no primitive type and hence does not support vararg
      initializers.
      (minor)
    - Fixed bug in reified Boolean linear constraints (an optimization
      is currently disabled and will be active in the next release: the
      optimization was incorrect and was never tested).
      (major, thanks to Alberto Delgado)
- Example scripts
  - Additions
    - Added new example for Radiotherapy.
      
      
      (minor)
  - Bug fixes
    - The examples now pass the c-d and a-d command line options correctly to Gist.
      (minor)
    - The Steel Mill Slab Design example had two bugs in the search
      heuristic and a missing redundant constraint.
      (minor, bugzilla entry 56, thanks to Chris Mears)

------------------------------------------------------------------------------

Changes in Version 3.0.0 (2009-03-13)

Scope: This release is a major consolidation release: interfaces have
 been cleaned up (consistent parameter passing, consistent naming,
 simpler Gist interface, namespaces for operator overloading);
 some functionality has been extended (propagators can be
 non-monotonic; branchings support tie-breaking and random
 variable and value selection); some functionality that did not
 meet our quality goals has been removed (complete set variables,
 reflection); usage has been simplified (auto-linking on Windows,
 more commonly used filename extensions); important aspects have
 been optimized (memory management, memory usage and efficiency on
 64bit machines). These cleanups were in particular necessary to
 make Gecode easier to document (this release is the first to be
 accompanied by tutorial documentation explaining how to model
 with Gecode).
 
 Apart from that, many small fixes and additions. Please see below
 for the details.
 
 As the interfaces have changed considerably, please consult \ref
 PageHowToChange_3 "How to Change to Gecode 3.0.0".
 
- Kernel
  - Additions
    - Integrated space and region-based allocators that work with STL
      classes.
      (minor)
    - Added support for synchronized execution during branching
      (executes a function).
      (minor, thanks to Denys Duchier)
  - Other changes
    - The specification of propagation cost has changed. It now must be
      computed by the static member functions of the class
      Gecode::PropCost.
      (major)
    - The clone operation on spaces is now const.
      (minor)
    - Introduced CopiedHandle as a new base class for SharedHandle. 
      A copied handle provides access to an object that is used by
      entities in a space, and that is copied when then space is
      copied. This abstraction can be used e.g. to pass information
      between different entities in a space, such as between
      propagators and branchings.
      (minor)
    - Made macros semicolon-safe.
      (minor, thanks to Denys Duchier)
    - The index structure for variable dependencies is now implemented using integers
      instead of pointers, saving memory on 64 bit machines.
      For example, the index 
      structure of integer variables is now 40% smaller, for Boolean variables 
      (which have the smallest possible index structure) we still save 16%.
      (minor)
    - Gecode now supports weakly monotonic propagators. 
      A weakly monotonic propagator must only be able to decide for
      assignments whether they are solutions or not (which is a very
      natural property as it means the propagator must be a correct
      implementation of a constraint). Otherwise, the propagator does
      not have to be monotonic, it can even be indeterministic.
      
      Weakly monotonic but not monotonic propagators must notify a
      space about their existence: if a weakly monotonic propagator is
      created, it must execute "home.notice(*this,AP_WEAKLY)"; if it is
      disposed, it must execute "home.ignore(*this,AP_WEAKLY)".
      (major)
    - The functions force and unforce of an actor to force disposal
      have been removed. 
      Now, the new interface based on notice and ignore using actor
      properties must be used instead. So, instead of "force(home)",
      write "home.notice(*this,AP_DISPOSE)" and, instead of
      "unforce(home)", write "home.ignore(*this,AP_DISPOSE)".
      (minor)
    - The home space is now also passed to the cost function of a propagator.
      (minor)
    - All functions for checking sharing for arrays (same, shared,
      unique) require a space argument (for memory management).
      (minor)
    - The description() member function of a space is not any longer
      const: it can be called at most once.
      (minor)
    - The constrain method used for best solution search must be
      virtual and takes an argument of type const Space& rather than
      Space* as argument.
      (major)
    - View and value branchings have been completely reimplemented to support
      tie-breaking and state (for randomized selection).
      (major)
  - Bug fixes
    - Updating of a council of advisors crashed if a propagator has no
      advisors (as we had no example of this kind of propagators).
      (major, thanks to Vincent Barichard)
- Search engines
  - Additions
    - The search engines now collect statistics for the number of nodes
      visited and the maximum depth of the search tree. The information
      for number of clone and commit operations has been removed as it
      was too confusing.
      (minor)
    - Search engines have been completely reimplemented.
      (major)
- Finite domain integers
  - Additions
    - Added support for synchronized execution that executes a function
      or a static member function when a Boolean variable becomes
      assigned (called when).
      (minor)
    - Integer sets can now be initialized from integer argument arrays.
      (minor)
    - Domain constraints (dom) also accept integers now.
      (minor)
    - Added a Boolean clause constraint that supports conjunction and
      disjunction of both positive and negative variables.
      (minor)
  - Other changes
    - A TupleSet must be finalized before an extensional constraint can
      be posted using it.
      (minor)
    - Make the variable deltas generated for minus_r more meaningful if
      possible.
      (minor, thanks to David Rijsman)
    - TupleSet now accepts duplicate tuples.
      (minor)
    - Renamed size() to ranges() for IntSet (returning the number of
      ranges). Added a size() and width() function that return the size
      and width of the set respectively.
      (minor)
    - Tie-breaking and random selection for branch is now supported.
      (major)
    - The variable selection INT_VAR_DEGREE_MIN and INT_VAR_DEGREE_MAX
      do not have tiebreaking with smallest domain size built in.
      The old behavior can be reclaimed by explicit tiebreaking, for
      example replace INT_VAR_DEGREE_MAX by
      tiebreak(INT_VAR_DEGREE_MAX,INT_VAR_SIZE_MIN).
      (minor)
  - Bug fixes
    - Fixed bug in domain consistent min and max propagators.
      (minor)
    - Fixed off-by-one bug in extensional for DFAs.
      (major, thanks to Roland Yap Hock Chuan)
    - The binary min and max propagators did not do all pruning they
      should do.
      Given the constraint x = max(y,z) with the store {x->{1,2,3},
      y->{1,2}, z->{3}}, propagation did not yield any new information
      (now it gives the correct result {x->{3}, y->{1,2}, z->{3}}).
      (minor, thanks to Jonathan Cederberg)
  - Performance improvements
    - Integrated an efficient implementation of reified linear
      constraints over Boolean variables.
      (major)
    - Now n-ary Boolean disjunction and conjunction are constant time
      (rather than linear time, as before), even when a variable for
      the result is used.
      (minor)
    - The incremental extensional propagator for tuplesets uses less
      memory (around 25%) and reports its size correctly.
      (minor)
    - The element propagator for integer arrays now chooses
      datastructures according to and the elements of the array.
      This can save more than 80% memory on a 64 bit machine, and up to
      75% on a 32 bit machine. In common cases, one can expect a
      reduction by at least 50%.
      (minor)
    - The regular propagator now chooses datastructures according to
      the size of the DFA. This can save up to 80% memory on a 64 bit
      machine, and still up to 50% on a 32 bit machine.
      (minor)
    - Simpler and more efficient memory management for element
      propagators (integer arrays).
      (minor)
- Finite integer sets
  - Additions
    - More set branching strategies have been added (for instance random variable 
      and value selection), as well as set assignment.
      (minor)
    - Added reified propagators constraining an integer variable to be the minimum 
      or maximum element of a set variable.
      (minor, thanks to Denys Duchier)
  - Other changes
    - Element and convexity constraints on set variables have a more
      uniform interface, and the match constrained has been renamed to
      channel.
      (minor)
    - Reorganized the internal data structures of set variables so that each 
      variable takes up 8 bytes less memory on 64 bit machines.
      (minor)
    - The values for variable and value selection for branching have
      been made consistent and extended. 
      The following values have been renamed:
       - SET_VAR_MIN_CARD -> SET_VAR_SIZE_MIN
       - SET_VAR_MAX_CARD -> SET_VAR_SIZE_MAX
       - SET_VAR_MIN_UNKNOWN_ELEM -> SET_VAR_MIN_MIN
       - SET_VAR_MAX_UNKNOWN_ELEM -> SET_VAR_MAX_MAX
       - SET_VAL_MIN -> SET_VAL_MIN_INC
       - SET_VAL_MAX -> SET_VAL_MAX_INC
       .
      Tie-breaking and random selection is now supported.
      (major)
  - Bug fixes
    - Fixed bug in creation of set variables.
      (minor, thanks to Stefano Gualandi)
    - Fixed constructors for set variables. They now throw proper exceptions when 
      trying to create empty variable domains.
      (minor, thanks to Denys Duchier)
- Finite integer sets with complete representation
- Minimal modelling support
  - Additions
    - Added MinimizeSpace and MaximizeSpace classes for cost-based
      optimization (requires implementing a cost function returning an
      integer cost variable). Optimization can now be implemented by
      inheriting from these classes rather than from Space and by
      implementing a cost function.
      (minor)
  - Other changes
    - LinExpr, LinRel, BoolExpr are now part of the Gecode namespace
      rather than Gecode::MiniModel (to support operator resolution).
      (minor)
    - The Matrix class is now in the Gecode namespace (and not in
      Gecode::MiniModel).
      (minor)
  - Performance improvements
    - Posting constraints according to Boolean expressions now uses a
      negation normalform and by this avoids any propagator for
      negation and uses fewer propagators due to the new clause constraint.
      (minor)
- Range and value iterators
  - Bug fixes
    - Fixed init method of SingletonAppend range iterator.
      (minor, thanks to Stefano Gualandi)
  - Documentation fixes
    - Mention that arrays for Iter::Values::Arrays must be sorted.
      (minor, thanks to Anden Blah, Morten Boysen)
- Support algorithms and datastructures
  - Bug fixes
    - Sorting (quicksort and insertion) require strict orders and now
      work with arrays of more than 2^32 elements.
      (minor, thanks to Michal Dobrogost)
- Example scripts
  - Additions
    - New example: the steel mill slab design problem (Problem 38 in <a
      href="http://csplib.org">CSPLib</a>).
      The model used is from Gargani and Refalo, "An efficient model and
      strategy for the steel mill slab design problem.", CP 2007. The
      symmetry-breaking search is from Van Hentenryck and Michel, "The Steel
      Mill Slab Design Problem Revisited", CPAIOR 2008.
      (minor)
  - Bug fixes
    - A bug in the independent set example has been fixed (most edges
      were ignored).
      (minor, thanks to Stefano Gualandi)
    - Fixed a bug in the extensional propagation-version of the domino example.
      (minor)
  - Performance improvements
    - Improved branching for Nonogram examples.
      (minor, thanks to H�kan Kjellerstrand)
- Systematic tests
  - Additions
    - Tests for testing claims of bounds(Z) and bounds(D) consistency. These
      tests would have found the bug in the binary min and max propagators.
      An integer test can enable these new tests by setting the contest member
      to CTL_BOUNDS_Z or CTL_BOUNDS_D. For domain-consistency propagators
      the contest member is set automatically to CTL_DOMAIN. If no
      consistency-testing should be done, contest should be set to CTL_NONE.
      (minor)
- Gist
  - Additions
    - Added inspectors that react on every solution instead of a double
      click.
      (minor)
  - Other changes
    - Gist now takes an optional argument specifying options for the
      search, including the inspectors to be used. The Qt interface has
      been cleaned up, so that Gist is easier to extend.
      (minor)
- General
  - Additions
    - For the Microsoft compiler, auto-link information is added during
      compilation.
      That is, by including Gecode headers during
      compilation the right libraries will be found automatically
      during linking. To simplify development and deployment, the
      libraries (and DLLs) encode version, platform, and build type
      (release or debug) in their filename.
      (minor)
  - Other changes
    - All operators are now in their correct namespace.
      (major, thanks to Max)
    - Changed naming scheme for files. 
      All files with extension .cc have been renamed to .cpp, and .icc
      has become .hpp. This avoids conflicts as .icc is typically used
      for other file types. All include directives are now specified
      using <...> notation instead of "...", so that Gecode headers do
      not clutter the include namespace of a client program.
      (major)
    - Now everything is passed as reference (Space, Propagator,
      ModEventDelta, Advisor, Branching, and BranchingDesc). 
      The reason for this massive change is to be more C++ compliant
      and make the interfaces more consistent (at some places things
      were passed as references and at other places as pointers, for no
      obvious and explainable reason). Routines that create objects
      rather than pass them (such as copy, clone, or description) still
      return a pointer to an object (so that it can actually be
      deleted!).
      
      You will have to rewrite your models and other programs using
      Gecode. For models this is easy enough:
       - Replace "(Space* home" by "(Space& home".
       - Replace "home->" by "home.".
       - Replace "(this" by "(*this".
       .
      That should do the trick for 99% of the models.
      
      For the other changes, just lookout for the changes in types and
      that "this" becomes "*this" now.
      (major)
    - The memory management has been completely reworked. 
      It is now more robust, more portable (does not use alloca any
      longer), more efficient, fits C++ better and is much easier too
      understand. There are now three memory areas: a single heap,
      spaces, and regions. Heap and spaces are as before. A region (an
      object of class Region) is a simple and very efficient memory
      manager for temporary memory managed in a stack fashion. These
      three memory managers provide uniform operations for allocation
      (alloc), deallocation (free), and reallocation (realloc). These
      operations use constructors, destructors, and assignment
      operators as required by C++ and are implemented with efficient
      specializations for basic data types.
      (major)
  - Bug fixes
    - Output operators (<<) now respect formatting width and work with
      output streams using arbitrary character types.
      (minor, thanks to Chris Mears)

------------------------------------------------------------------------------

Changes in Version 2.2.0 (2008-08-25)

Scope: This release adds many domain consistent propagators for
 arithmetic constraints and fixes a number of bugs. Some of these
 bugs fixed are potentially serious, in particular as they occur
 very seldom. Please change to 2.2.0 as soon as possible (in
 particular if you are using the 64bit Microsoft Visual C++
 compiler). And, of course, the usual small fixes and changes.
 
- Kernel
  - Other changes
    - Cleaned up Reflection::Var type, overloading did not conform to the C++ 
      standard.
      (minor)
  - Bug fixes
    - Fixed a bug in the memory alignment on Windows 64bit (very hard to reproduce).
      	(major)
    - Fixed bug that could potentially have affected certain staged
      propagators.
      (minor)
    - Generated variable stubs were wrong (could only be observed for
      new variable types).
      (major, thanks to Filip Konvicka)
  - Documentation fixes
    - Fixed explanation of ES_FIX and ES_NOFIX for advisors
      (description was mixed up).
      (minor, thanks to David Rijsman)
- Finite domain integers
  - Additions
    - The attempt to access the value of an unassigned integer or
      Boolean variable (IntVar or BoolVar) throws an exception now.
      (minor, thanks to Raphael Reischuk)
    - Added bounds consistent division/modulo propagator.
      (minor)
    - The channel constraint now comes in a version that allows t
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017 FileWatcher.com