Skip to content

0.4.0

Latest
Compare
Choose a tag to compare
@arcondello arcondello released this 02 Oct 19:31
· 30 commits to main since this release
8b00337

New Features

  • Add capacitated vehicle routing problem with time windows generator.
    See #104.
  • Reduce the number of symbols in the model returned by
    job_shop_scheduling() generator.
  • Add Array::integral(), Array::max(), and Array::min()
    overloads for all existing C++ nodes.
  • Add C++ is_integer() function.
  • Support Python 3.13.
  • Model.add_constraints() now returns the symbol for the constraint.
  • Fully support scalar (0-dimensional) indices for advanced indexing
    operations, e.g. A[i, :, j, :] where i and j are nodes with
    scalar output. Previously, this would work only if the final output
    of the indexing operation was also scalar.

Upgrade Notes

  • Using advanced indexing nodes with indexing arrays that have a
    higher dimension than one (e.g. A[:, i, :, j] where i and j
    are 2d arrays) has been disabled. Previously, it was possible to
    construct models that used this functionality, but the behavior of
    the model during state initialization and propagation may not have
    been correct.

Bug Fixes

  • Fix combined indexing. Previously indexing an array symbol by a
    mixture of arrays, integers, and non-empty slices would always
    result in an error.
  • Update AdvancedIndexingNode to check the indices of its indexing
    arrays to prevent out-of-bounds access.
  • Fix the case of using scalar indices in an advanced indexing
    operation where the indices were not grouped, e.g. A[:, i, :, j],
    which was technically unsupported but no errors were raised. This
    could also lead to segfaults during state initialization or
    propagation.