Release notes
What’s new in myQLM 1.5.1
Released December 6, 2021
New features
PyLinalg
now supports efficient implementation of controlled gates. It now supports simulation of circuits generated with thesubmatrices_only
keyword argument set toTrue
(prog.to_circ(submatrices_only=True)
)
HardwareSpecs
objects now have an attributeprocessing_types
used to define the type of supported measurement (e.g., Observable or Sample). QuameleonPlugin has been updated to check this new attributeAdded a device ‘ZUCHONGZHI’ describing the Chinese quantum chip of the same name
Updated features
PyLinalg
should now throw a cleaner exception (QPUException
) when failing to retrieve the matrix of a gateThe
get_variables
methods of myQLM objects will now return a sorted list instead of a set
BatchResult
returned by aJunction
has the same meta_data as the inputBatch
Fixes
Fix
Junction
plugins when a Batch object having no meta data is submittedFix
len(Result)
when the result is stored as a mapAn exception is now raised when trying to differentiate non-observable job
What’s new in myQLM 1.4.0
Released June 30, 2021
myQLM Power Access
myQLM can be extended to access all QPUs and Plugins of a remote QLM, the Quantum Learning Machine from Atos and let you benefit the power of the Appliance. If the feature is activated on your QLM, the submission of a job would look like:
from qlmaas.qpus import LinAlg
from qlmaas.plugins import Nnizer
remote_stack = Nnizer() | LinAlg()
async_result = remote_stack.submit(job)
result = async_result.join()
New features
Support for Python 3.9 for Linux, Windows and macOS
Added support for brew Python distribution on macOS
Circuits can now be displayed in the stdout using their new
display()
method. They also have two new methodscount()
to count the number of occurrences of some gate andstatistics()
to gather some statistics about their number of gates.It is now possible to generate the partial derivatives -
differentiate()
and the gradient of a Job -gradient()
. These methods return jobs collections whose energies can be summed in order to evaluate the derivatives/gradient. They rely on shift-rule or Hadamard tests (see their documentation).The partial derivative works also for multivariable ArithExpressions -
differentiate()
. It can be applied to the usual arithmetic operations between functions, as well to functions to the power of other functions!Added a
dag()
method for circuit objectsAdded an implementation of Kerenidis-PrakashQRAM/State preparation -
KPTree
.Updated documentation of
Op
Link the documentation to their corresponding notebooks when possible
One can now create a job ready to run on the
SimulatedAnnealing
QPU via theto_job()
method of theIsing
andQUBO
classes.Added arithmetic operations for
Ising
andQUBO
problems - addition/substraction of an energy offset, J-coupling, magnetic field or even a whole Ising problem to another one. Multiplication and division by real numbers is also possible. Analogously for QUBO.The
Ising
class has been serialized and Ising problems can now also be dumped and loaded.
Known problems
Python 3.9 on macOS/brew distribution may not work (SIGSEGV) Please use the distribution from python.org