Skip to content

8.2.0

Latest
Compare
Choose a tag to compare
@randomir randomir released this 24 Feb 23:22
· 2 commits to master since this release
25e282d

Changelog

dwave-cloud-client 0.13.2 ➞ 0.13.3

New Features

  • Add PayloadCompressingSession, a requests.Session subclass that adds support for payload compression on the fly to dwave.cloud.api.client.DWaveAPIClient. See #654.

  • Support compression of QPU problem data on upload in SolverAPIClient and api.Problems via compress_qpu_problem_data config option.

  • More robust Client.close().

    Client use after close is now disabled. An attempt to submit a problem, poll for a status, or download an answer will now result in an UseAfterCloseError exception.

    Also, solvers and computations now only weakly reference the client, so they don't block client resources cleanup.

    See #217.

  • Disable client use while Client.close() is in progress by failing with UseAfterCloseError. Also, make sure the close operation is thread-safe. A follow-up to #680.

Upgrade Notes

  • Remove Client.session, an undocumented and unused client attribute. If still needed, can be replaced with Client.create_session().

dwave-optimization 0.4.2 ➞ 0.5.1

New Features

  • Implement C++ operator<=>(const Update&, const Update&) and operator==(const Update&, const Update&). This allows Update to be used with std::ranges::stable_sort().

  • Add a new Cython extension type, _Graph. The _Graph class is responsible for managing a C++ dwave::optimization::Graph. Also make Model a Python class that inherits from _Graph, rather than a Cython extension type.

  • Add C++ DivideNode and Python Divide symbol, and overriding __truediv__. Divide propagates the division of its predecessors element-wise. Note that predecessors of Divide must be either strictly positive or strictly negative.

  • Add C++ SquareRootNode and Python SquareRoot symbol. SquareRoot propagates the square-root(s) of its predecessor element-wise.

  • Add const and non-const versions of C++ array iterators.

  • Make C++ array iterators random access iterators. Previously they were bidirectional iterators.

  • Move C++ Graph constructor and assignment operator definitions into the dwave-optimization/graph.hpp.

  • Explicitly disallow copy construction and copy assignment for C++ Graph.

  • Add some convenience methods to C++ Array::View class. Specifically, implement Array::View::at(), Array::View::back() and Array::View::empty(). Also make Array::View semi-regular.

  • Add C++ RintNode and Python Rint symbol. Rint propagates the values of its predecessor rounded to the nearest integer element-wise.

  • Add Python stack symbol. See #191.

  • Add C++ PutNode.

  • Generalize C++ ConstantNode range constructors to work with all ranges rather than just with vectors.

  • Add Put symbol and put() function. See #202.

  • Add random overloads for C++ DynamicArrayTestingNode::grow() and DynamicArrayTestingNode::set().

  • Add C++ PartialProdNode.

  • Add PartialProd symbol.

  • Add axis keyword argument to ArraySymbol.prod() method.

  • Add integral, max and min to ConcatenateNode. See #192.

  • Support both lvalue and rvalue ranges in the constructor of the C++ ArrayOutputMixin class.

  • Rework C++ ReshapeNode constructors to be more general.

  • Support inferring the shape of one axis when reshaping array symbols by providing -1 for the dimension's shape.

  • Support reshaping non-contiguous array symbols.

  • Add C++ CopyNode. See #16.

  • Add Copy symbol. See #16.

Upgrade Notes

  • Remove C++ Update::equals(const Update&) method in favour of operator==(const Update&, const Update&).

  • It is no longer possible to from dwave.optimization.model cimport Model. Instead, importers should from dwave.optimization.model cimport _Graph. A _Graph has most of the functionality that a Model did, although most of the symbol construction methods have been kept on Model.

  • The dwave::optimization::ArrayIterator class has been moved. It can now be found as a nested class in the Array, i.e. dwave::optimization::Array::const_iterator.

Deprecation Notes

  • Remove ::default_move() method from the C++ Decision class and all subclasses.

  • Remove C++ DynamicArrayTestingNode::random_moves() method.

  • Rework C++ NumberNode::initialize_state() overloads for better consistency.

  • Remove RngAdaptor class.

Bug Fixes

  • Fix from dwave.optimization.symbols import *.

  • Fix typo in error message. See #193.

  • Previously, Constant symbols could be created from data that contained NaNs or infinite float values. Since these values, especially NaN, can cause issues during propagation when not expected, they could cause the model to exhibit incorrect behavior. As such, providing these values to initialize a Constant symbol is now disallowed.

  • Add missing C++ ReshapeNode::max(), ::min(), and ::integral() methods. Thereby allowing reshaped arrays to be used as indices.

dwave-system 1.28.0 ➞ 1.29.0

New Features

  • Add close() to all QPU and hybrid samplers. See #77, #554.

  • Add support for context manager protocol to all samplers. See #91, #556.

    The recommended way to use DWaveSampler is now from a runtime context:

    with DWaveSampler() as sampler:
        sampler.sample_ising(...)

    Alternatively, call the close() method to terminate the sampler resources:

    sampler = DWaveSampler()
    ...
    sampler.close()
    

minorminer 0.2.15 ➞ 0.2.16

New Features

  • Add support for generating multiple disjoint embeddings of a source graph onto D-Wave graph topologies.

  • Add efficient methods and heuristics for determining embedding feasibility.

Upgrade Notes

  • Provide manylinux_2_28 wheels instead of manylinux2014.

  • Matlab support was deprecated as of version 0.2.8 and removed in the current version.

Bug Fixes

  • Fixed bug in the layout module to correctly work for some edge cases.

  • Remove unnecessary future imports due to Python 2 not being supported.

Package versions

dimod==0.12.18
dwave-cloud-client==0.13.3
dwave-gate==0.3.3
dwave-hybrid==0.6.13
dwave-inspector==0.5.2
dwave-networkx==0.8.16
dwave-optimization==0.5.1
dwave-preprocessing==0.6.7
dwave-samplers==1.4.0
dwave-system==1.28.0
dwavebinarycsp==0.3.1
minorminer==0.2.17
penaltymodel==1.2.0