0.12.0
Prelude
The entire C++ library has been rewritten for performance and consistency.
New Features
- New
dimod::abc::QuadraticModelBase
abstract base class.
- Better performance for linear models.
- Add
dimod.cyqmbase.cyQMBase_template
Cython class to serve as an abstract base class for Cython quadratic models.
- Break
dimod/libcpp.pxd
into 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::ConstrainedQuadraticModel
class.
- 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.vartype
callable. This allows for more uniform syntax between binary quadratic models, quadratic models and constrained quadratic models.
- Replace current
ConstrainedQuadraticModel
implementation 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::QuadraticModelBase
and move it todimod::abc::QuadraticModelBase
inabc.h
.
- Move
dimod::Vartype
,dimod::vartype_info
, anddimod::vartype_limits` to
vartypes.h``.
- Remove the
dimod::Neighborhood
class.
- Remove
iterators.h
.
- Move
dimod::BinaryQuadraticModel
tobinary_quadratic_model.h
.
- Remove
dimod.binary.cybqm.cyBQMBase
class.
- Remove
dimod.quadratic.cyqm.cyQMBase
class.
- Build
manylinux2014
wheels. Previously we builtmanylinux2010
.
- Build
arm64
andx86_64
wheels for macos. Previously we builtx86_64
anduniversal2
.
Deprecation Notes
- Deprecate the
cascade
keyword argument inConstrainedQuadraticModel.fix_variable()
.
- Deprecate the
cascade
keyword argument inConstrainedQuadraticModel.fix_variables()
.