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 under `dimod/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 the `from dimod.libcpp cimport ...` syntax.
<!-- -->
- Build wheels for Python 3.11.
Upgrade Notes
- Rewrite `dimod::QuadraticModelBase` and move it to `dimod::abc::QuadraticModelBase` in `abc.h`.
<!-- -->
- Move `dimod::Vartype`, `dimod::vartype_info`, and `` dimod::vartype_limits` to ``vartypes.h\`\`.
<!-- -->
- Remove the `dimod::Neighborhood` class.
<!-- -->
- Remove `iterators.h`.
<!-- -->
- Move `dimod::BinaryQuadraticModel` to `binary_quadratic_model.h`.
<!-- -->
- Remove `dimod.binary.cybqm.cyBQMBase` class.
<!-- -->
- Remove `dimod.quadratic.cyqm.cyQMBase` class.
<!-- -->
- Build `manylinux2014` wheels. Previously we built `manylinux2010`.
<!-- -->
- Build `arm64` and `x86_64` wheels for macos. Previously we built `x86_64` and `universal2`.