0.12.0
Prelude
The entire C++ library has been rewritten for performance and consistency.
New Features
- New
dimod::abc::QuadraticModelBaseabstract base class.
- Better performance for linear models.
- Add
dimod.cyqmbase.cyQMBase_templateCython class to serve as an abstract base class for Cython quadratic models.
- Break
dimod/libcpp.pxdinto a full Cython subpackage to mirror the structure underdimod/include/. This allows for better organization, and less need to recompile all Cython files when changing parts of the C++ library. Packages that depend on dimod are still encouraged to use thefrom dimod.libcpp cimport ...syntax.
-
Build wheels for Python 3.11.
-
Add C++
dimod::ConstrainedQuadraticModelclass.
- Add C++
ConstrainedQuadraticModel.add_constraint()overload that allows a user to move a binary quadratic model or quadratic model as a constraint.
- Add C++
ConstrainedQuadraticModel.constraint_weak_ptr()method.
- Make
BinaryQuadraticModel.vartypecallable. This allows for more uniform syntax between binary quadratic models, quadratic models and constrained quadratic models.
- Replace current
ConstrainedQuadraticModelimplementation with one implemented in Cython.
- Add
ConstrainedQuadraticModel.clear()method.
Bug Fixes
- Fix a performance regression introduced in 0.10.0 when loading linear binary quadratic models from files.
- Fix the handling of self-loops in
dimod::Expression::add_quadratic()and similar methods.
- Fix C++
ConstrainedQuadraticModel.remove_variable()method. Previously it would segmentation fault.
Upgrade Notes
- Rewrite
dimod::QuadraticModelBaseand move it todimod::abc::QuadraticModelBaseinabc.h.
- Move
dimod::Vartype,dimod::vartype_info, anddimod::vartype_limits` tovartypes.h``.
- Remove the
dimod::Neighborhoodclass.
- Remove
iterators.h.
- Move
dimod::BinaryQuadraticModeltobinary_quadratic_model.h.
- Remove
dimod.binary.cybqm.cyBQMBaseclass.
- Remove
dimod.quadratic.cyqm.cyQMBaseclass.
- Build
manylinux2014wheels. Previously we builtmanylinux2010.
- Build
arm64andx86_64wheels for macos. Previously we builtx86_64anduniversal2.
Deprecation Notes
- Deprecate the
cascadekeyword argument inConstrainedQuadraticModel.fix_variable().
- Deprecate the
cascadekeyword argument inConstrainedQuadraticModel.fix_variables().