Release Notes#

0.12.16#

New Features#

  • Add dimod/typing.pdx. This allows users to cimport common C types into other namespaces.

  • Support NumPy 2.0. Also, no longer require NumPy at build-time.

  • Reduce the size of manylinux wheels.

Upgrade Notes#

  • Remove Cython fused types dimod.cyutilities.SignedInteger, dimod.cyutilities.UnsignedInteger, dimod.cyutilities.Integer, and dimod.cyutilities.ConstInteger, dimod.cyutilities.Numeric, and dimod.cyutilities.ConstNumeric. Use the types in dimod.typing instead.

  • Remove Cython fused types dimod.discrete.cydiscrete_quadratic_model.Unsigned, dimod.discrete.cydiscrete_quadratic_model.Integral32plus, dimod.discrete.cydiscrete_quadratic_model.Numeric, and dimod.discrete.cydiscrete_quadratic_model.Numeric32plus. Use the types in dimod.typing instead.

  • Don’t include debug info in built .so files.

0.12.15#

New Features#

  • Add C++ QuadraticModelBase::remove_interactions() method.

  • Add dimod.generators.random_binary_paint_shop_problem() binary paint shop problem generator.

  • Add an abstract method QuadraticViewsMixin.add_quadratic().

  • Add a method QuadraticViewsMixin.add_quadratic_from() to add quadratic interactions. This method is intended to be used as follows: ConstrainedQuadraticModel.objective.add_quadratic_from(), similarly to ConstrainedQuadraticModel.objective.add_linear_from().

  • Add check_overlaps keyword argument to ConstrainedQuadraticModel.add_discrete(), see #1364.

Upgrade Notes#

  • All sublcasses of QuadraticViewsMixin, including ObjectiveView, QuadraticModel and BinaryQuadraticModel, now require to have the method add_quadratic().

0.12.14#

New Features#

  • Add C++ dimod::abc::QuadraticModelBase::remove_variables() method and accompanying overloads.

  • Speed up C++ dimod::Expression::remove_variables() method.

0.12.13#

New Features#

  • Build wheels for Python 3.12.

  • Build C++ extensions with Cython 3.

0.12.12#

New Features#

  • Add mimo() function for generating a multi-input multiple-output (MIMO) channel-decoding problem.

  • Add coordinated_multipoint() function for generating a coordinated multi-point (CoMP) decoding problem.

0.12.11#

New Features#

  • Make SampleSet.relabel_variables() non-blocking in all cases. Previously it would block when inplace=False.

  • Implement SampleSet serialization schema version 3.2.0.

    Version 3.2.0 replaces float values that represent integers with int in the "data" field of any arrays returned by SampleSet.to_serializable(). In some pathological cases this can result in a much smaller representation when the data dictionaries are json-serialized by avoiding the redundant .0 appended to every value.

    This is a backwards-compatible change.

  • Add penalization_method parameter to BinaryQuadraticModel.add_linear_inequality_constraint(). It allows the use of unbalanced penalization https://arxiv.org/abs/2211.13914 instead of the slack variables method for the inequality constraints.

Bug Fixes#

  • Fix the behavior of SampleSet.relabel_variables() when inplace=True. Previously the method incorrectly returned a copy when the sample set was unresolved.