Release notes
What’s new in myQLM 1.10.6
Released on October 2024
Main Package
Requires-Dist |
Version |
---|---|
myqlm |
1.10.6 |
Updated Dependant Packages
Requires-Dist |
Version |
---|---|
myqlm-comm |
1.6.1 |
myqlm-clinalg |
0.2.4 |
Other Updated Packages
Fixes
Fix CLinalg crash on state vector initialization on some Windows platforms.
Fix CLinalg crash on diagonal gate application on some Windows platforms.
What’s new in myQLM 1.10.5
Released on October 2024
Main Package
Requires-Dist |
Version |
---|---|
myqlm |
1.10.5 |
Updated Dependant Packages
Requires-Dist |
Version |
---|---|
myqlm-clinalg |
0.2.3 |
Other Updated Packages
Fixes
Fixed clinalg crash on Windows
What’s new in myQLM 1.10.4
Released on September 2024
Main Package
Requires-Dist |
Version |
---|---|
myqlm |
1.10.4 |
Updated Dependant Packages
Requires-Dist |
Version |
---|---|
myqlm-clinalg |
0.2.2 |
Other Updated Packages
Requires-Dist |
Version |
---|---|
myqlm-interop |
1.9.6 |
Fixes
Missing system DLLs in myqlm-clinalg [Windows only].
Add check for qiskit < 1.0 in myqlm-interop wheel.
Fix typos in documentation.
What’s new in myQLM 1.10.3
Released on July 2024
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.10.3 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.2.1 |
UPDATED |
myqlm-contrib |
1.9.5 |
UPDATED |
myqlm-fermion |
1.1.4 |
UPDATED |
myqlm-simulators |
1.9.5 |
UPDATED |
qat-anapli |
0.0.1 |
UPDATED |
qat-comm |
1.6.0 |
UPDATED |
qat-core |
1.10.0 |
UPDATED |
qat-devices |
0.3.0 |
UPDATED |
qat-fusion |
0.1.0 |
UPDATED |
qat-hardware |
1.4.0 |
UPDATED |
qat-lang |
3.1.0 |
UPDATED |
qat-quops |
1.3.4 |
UPDATED |
qat-variational |
1.5.0 |
UPDATED |
qlmaas |
1.10.2 |
UPDATED |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.5 |
UPDATED |
Solving combinatorial problem on Rydberg atom quantum devices
The qat.opt
module has been enhanced to address combinatorial problems on Rydberg atom quantum devices.
These devices are quantum processors that can execute jobs matching the following schedule:
where \(\Omega_v\) is the rabi frequency, \(\Delta_v\) the detuning and \(U_{vw}\) the elements of the coupling matrix between atoms.
myQLM provides:
import networkx as nx
from qat.opt import MaxCut
# This graph is not unit disc so it can not be embedded
# directly in a rydber atom device
graph = nx.circular_ladder_graph(5)
# Generate Rydberg Schedule
pbm = MaxCut(graph)
schedule = pbm.to_job(job_type="ryd")
Updated features
CLinalg
usesFusionPlugin
to optimize circuits before a CPU emulation of at least 20 qubits, leading to better performances. This can be disabled by using the parameterfusion=False
.
CLinalg
can now emulate up to 30 qubits, and use up to 150 threads.
CLinalg
now accepts aseed
parameter.
FusionPlugin
now ignores non-compatible circuits, instead of raising an exception.
FusionPlugin
is now compatible with non-inlined circuits (but will inline them).
FusionPlugin
has a new optionqbits_compilation_threshold
to specify a minimal number for compilation. Jobs having less qubits are not compiled.
Job
has a new optional attributemeta_data
of typedict[str, str]
.
HardwareSpecs
has a new optional attributemeta_data
of typedict[str, str]
.
PyLinalg
andCLinalg
can no longer perform perfect simulations (nbshots = 0
) with intermediate measures.Fix import of
qat.clinalg
on WindowsFix imports of
qat.qpus
andqat.plugins
.
Fixes
PyLinalg
andCLinalg
can now aggregate results having intermediate measurements.An exception was raised when submitting a
Batch
having no meta_data to a QPU. This is now fixed [BRQ-1654].The “eager” merge startegy of
FusionPlugin
has been fixed (if the gate qubits count is higher thant the qubits fusion limit).
Result
objects can store states composed of a larger number of qubits [BRQ-1571].
What’s new in myQLM 1.9.9
Released on February 2024
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.9 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.4 |
UPDATED |
myqlm-contrib |
1.9.3 |
UPDATED |
myqlm-fermion |
1.1.1 |
UPDATED |
myqlm-simulators |
1.9.4 |
UPDATED |
qat-comm |
1.4.7 |
UPDATED |
qat-core |
1.8.5 |
UPDATED |
qat-devices |
0.2.4 |
UPDATED |
qat-hardware |
1.3.4 |
UPDATED |
qat-lang |
3.0.4 |
UPDATED |
qat-quops |
1.3.3 |
UPDATED |
qat-variational |
1.4.4 |
UPDATED |
qlmaas |
1.10.1 |
UPDATED |
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.4 |
Requires-Dist |
Version |
---|---|
cirq |
1.1.0 |
projectq |
0.8.0 |
pyquil |
3.5.0 |
qiskit |
0.43.1 |
MyQLM was tested against the versions above. As long as there are no major changes in the API, MyQLM may work with higher versions.
MyQLM 1.9.7 and 1.9.8 have not been published.
MyQLM 1.9 supports Linux OSes based on GLIBC 2.34 (e.g., RHEL 9). This release focuses on extending support for older Linux OSes based on GLIBC 2.28 (e.g., RHEL 8)
A circuit build with a qrout decorator could not be copied. Moreover, a result corresponding to a job built with the qrout operator could be copied too (the qregs object keeps a reference to the initial routine), so it cannot be post-processed by some plugins.
What’s new in myQLM 1.9.6
Released on December 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.6 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.3 |
|
myqlm-contrib |
1.9.2 |
|
myqlm-fermion |
1.1.1 |
|
myqlm-simulators |
1.9.3 |
|
qat-comm |
1.4.5 |
|
qat-core |
1.8.4 |
UPDATED |
qat-devices |
0.2.3 |
|
qat-hardware |
1.3.3 |
|
qat-lang |
3.0.3 |
|
qat-quops |
1.3.2 |
|
qat-variational |
1.4.3 |
|
qlmaas |
1.9.3 |
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.3 |
Requires-Dist |
Version |
---|---|
cirq |
1.1.0 |
projectq |
0.8.0 |
pyquil |
3.5.0 |
qiskit |
0.43.1 |
MyQLM was tested against the versions above. As long as there are no major changes in the API, MyQLM may work with higher versions.
Method get_variables()
does not raise an exception if a list is in the expression.
A list used in an arithmetic expression must be composed exclusively of python number (not Variable
).
Arithmetic expression composed of invalid list are no longer constructible.
What’s new in myQLM 1.9.5
Released on November 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.5 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.3 |
UPDATED |
myqlm-contrib |
1.9.2 |
UPDATED |
myqlm-fermion |
1.1.1 |
UPDATED |
myqlm-simulators |
1.9.3 |
UPDATED |
qat-comm |
1.4.5 |
UPDATED |
qat-core |
1.8.3 |
UPDATED |
qat-devices |
0.2.3 |
UPDATED |
qat-hardware |
1.3.3 |
UPDATED |
qat-lang |
3.0.3 |
UPDATED |
qat-quops |
1.3.2 |
UPDATED |
qat-variational |
1.4.3 |
UPDATED |
qlmaas |
1.9.3 |
UPDATED |
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.3 |
UPDATED |
Requires-Dist |
Version |
---|---|
cirq |
1.1.0 |
projectq |
0.8.0 |
pyquil |
3.5.0 |
qiskit |
0.43.1 |
MyQLM was tested against the versions above. As long as there are no major changes in the API, MyQLM may work with higher versions.
Displaying quantum circuits is now working with “Google colab”
Add dependency of dill=0.3.5.1 in qlmaas for python < 3.11
Improve packaging of myQLM (touched all packages)
Fix myqlm links in pypi.org front page
Support qiskit 0.44.2 in myqlm interop
What’s new in myQLM 1.9.4
Released on September 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.4 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.2 |
UPDATED |
myqlm-contrib |
1.9.1 |
|
myqlm-fermion |
1.1.0 |
|
myqlm-simulators |
1.9.2 |
|
qat-comm |
1.4.4 |
UPDATED |
qat-core |
1.8.2 |
UPDATED |
qat-devices |
0.2.2 |
UPDATED |
qat-hardware |
1.3.2 |
UPDATED |
qat-lang |
3.0.2 |
UPDATED |
qat-quops |
1.3.1 |
UPDATED |
qat-variational |
1.4.2 |
UPDATED |
qlmaas |
1.9.2 |
UPDATED |
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.2 |
Requires-Dist |
Version |
---|---|
cirq |
1.1.0 |
projectq |
0.8.0 |
pyquil |
3.5.0 |
qiskit |
0.43.1 |
This release primary feature is the support for Conda on Linux, Windows and MacOS
[qat-clinalg] Add seed parameter and now raises an exception when submitting a circuit with intermediate measurements while asking for nbshots=0
[qat-core] Fix bug #25 reported on GitHub
Fix Segmentation fault on Windows / Python 3.11
Documentation has been improved.
qat.core.variables
and Parameter
are better documented
What’s new in myQLM 1.9.3
Released on August 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.3 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.1 |
UPDATED |
myqlm-contrib |
1.9.1 |
|
myqlm-fermion |
1.1.0 |
|
myqlm-simulators |
1.9.2 |
UPDATED |
qat-comm |
1.4.3 |
|
qat-core |
1.8.1 |
UPDATED |
qat-devices |
0.2.1 |
|
qat-hardware |
1.3.1 |
|
qat-lang |
3.0.1 |
UPDATED |
qat-quops |
1.3.0 |
|
qat-variational |
1.4.1 |
|
qlmaas |
1.9.1 |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.2 |
UPDATED |
[qat-clinalg] Fix import qat.clinalg on Windows
[qat-simulators, qat-interop] Fix qat.qpus and qat.plugins imports
[qat-core] Add jax[cpu] as a requirement for Windows
[qat-lang] Fix an exception that was raised in one of the docstring
What’s new in myQLM 1.9.2
Released on August 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.2 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.0 |
|
myqlm-contrib |
1.9.1 |
|
myqlm-fermion |
1.1.0 |
|
myqlm-simulators |
1.9.1 |
|
qat-comm |
1.4.3 |
|
qat-core |
1.8.0 |
|
qat-devices |
0.2.1 |
|
qat-hardware |
1.3.1 |
|
qat-lang |
3.0.0 |
|
qat-quops |
1.3.0 |
|
qat-variational |
1.4.1 |
UPDATED |
qlmaas |
1.9.1 |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.1 |
This version only fixes a versioning issue with qat-variational.
What’s new in myQLM 1.9.1
Released on July 2023
Main Package
Requires-Dist |
Version |
Status |
---|---|---|
myqlm |
1.9.1 |
UPDATED |
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-clinalg |
0.1.0 |
UPDATED |
myqlm-contrib |
1.9.1 |
UPDATED |
myqlm-fermion |
1.1.0 |
UPDATED |
myqlm-simulators |
1.9.1 |
UPDATED |
qat-comm |
1.4.3 |
UPDATED |
qat-core |
1.8.0 |
UPDATED |
qat-devices |
0.2.1 |
UPDATED |
qat-hardware |
1.3.1 |
UPDATED |
qat-lang |
3.0.0 |
UPDATED |
qat-quops |
1.3.0 |
UPDATED |
qat-variational |
1.4.0 |
UPDATED |
qlmaas |
1.9.1 |
UPDATED |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.9.1 |
UPDATED |
The documentation has been restructured to better highlight the main features of myQLM. This new documentation is designed to better explain the architecture of this software and better highlights tools available in this software
Defining quantum circuits / jobs using a Python function
Quantum circuits and quantum jobs can be defined using the Python function (using qfunc()
and qrout()
decorators). This new syntax can be used to define variational algorithm. For instance:
from qat.lang import qrout, RX, H, CNOT
@qrout
def circuit(theta):
" Dummy example "
RX(theta)(0)
H(1)
CNOT(1, 0)
circuit.display(batchmode=True)
┌─────────┐┌─┐
─┤RX[theta]├┤X├
└─────────┘└┬┘
│
┌─┐ │
─┤H├─────────●─
└─┘
Quantum jobs have new methods run()
(to execute a job on a QPU - if no QPU is specified,
get_default_qpu()
is used) and compile()
(to compile a job). QPUs and Plugins
are selected using the scope syntax of Python:
with ScipyMinimizePlugin(...):
my_job.run() # Execute "my_job" on "ScipyMinimizePlugin(...) | get_default_qpu()"
This feature is detailed in the ticket [BRQ-1487]
Updated features
Observable
has been internally redesigned to storeTerm
is a more efficient way. Manipulating anObservable
and performing Observables arithmetic is much faster than before. The API remains unchanged.The static constructors for Pauli operators in the Observable class have been slightly changed to automatically infer the total number of qubits
Observable
andTerm
can be caster into a matrix by using the new methodto_matrix()
, in a dense or sparse form. This feature is detailed in the ticket [BRQ-1482]Method
generate()
ofAbstractGenerator
can now return a tuple (job, meta_data), instead of returning a batch having meta-data
Result
object now has adisplay()
method to get a more convenient HTML view of the object. This feature is detailed in the ticket [BRQ-1485]The qlmaas client wheel is now a dependency of myqlm wheel (i.e. qlmaas client will be installed when myqlm is installed)
Added RemoteQPU in qat.qpus module [BRQ-1490]
Added RemotePlugin in qat.plugins module [BRQ-1492]
Fixes
Fix an error in the evaluation of the gradient in
AdaptVQEPlugin
Parameters containing symengine number types such as Rational or Half are now correctly translated to ArithExpression (issue #6)
Displaying a quantum circuit in a notebook on Windows was failing in some circumstances. This issue has been fixed
Change definition of heaviside to exclude end point.
What’s new in myQLM 1.7.3
Released January 23, 2023
This is a maintenance release of 1.7.1.
Main Fixes
- qat-core
When trying to display a simple circuit in a jupyter notebook in Windows, a permission error occurs on the generated pdf file
- myqlm-clinalg
RESET gate only working as intended in very specific cases, having an unexpected behaviour in most cases
Simulator running non-inlined circuits caused unexpected exceptions
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
qat-comm |
1.4.2 |
|
qat-core |
1.6.4 |
UPDATED |
qat-devices |
0.2.0 |
|
qat-lang |
2.2.1 |
|
qat-variational |
1.4.0 |
|
myqlm-clinalg |
0.0.5 |
UPDATED |
myqlm-contrib |
1.7.1 |
|
myqlm-fermion |
1.0.0 |
|
myqlm-simulators |
1.7.1 |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.7.1 |
Note: Versions must be greater or equal to the versions above
What’s new in myQLM 1.7.2
Released January 03, 2023
This is a maintenance release of 1.7.1.
Main Fixes
- qat-comm + qat-core
Fix segmentation fault in numpy
Support more numpy versions on myqlm
- qat-lang
ModuleNotFoundError: No module named ‘jaxlib’
myqlm-clinalg
Deprecation warnings
You may see these warnings when displaying a circuit:
DeprecationWarning: LAYOUT_BASIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Layout.BASIC instead.
DeprecationWarning: getsize is deprecated and will be removed in Pillow 10 (2023-07-01). Use getbbox or getlength instead.
...
# The .ipython directory below maybe different if IPYTHON_DIR is defined
$HOME/.ipython/profile_default/startup/nowarning.py
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
warnings.simplefilter(action='ignore', category=DeprecationWarning)
Restart Jupyter
Dependant Packages
Requires-Dist |
Version |
Status |
---|---|---|
qat-comm |
1.4.2 |
UPDATED |
qat-core |
1.6.1 |
UPDATED |
qat-devices |
0.2.0 |
|
qat-lang |
2.2.1 |
UPDATED |
qat-variational |
1.4.0 |
|
myqlm-clinalg |
0.0.4 |
|
myqlm-contrib |
1.7.1 |
|
myqlm-fermion |
1.0.0 |
|
myqlm-simulators |
1.7.1 |
Other Packages
Requires-Dist |
Version |
Status |
---|---|---|
myqlm-interop |
1.7.1 |
Note: Versions must be greater or equal to the versions above
What’s new in myQLM 1.7.1
Released October 31, 2022
A new simulated QPU in myQLM
myQLM provides a new QPU, CLinalg
, written in C++. This new linear-algebra simulatation has been designed as a faster alternative to PyLinalg
(written in Python) and its basic interface and features are very similar. The documentation for this simulator can be found here.
This new QPU provides also a low-level API to manipulate the statevector
Tools for fermionic computations (myQLM-fermion)
qat.fermion
, the module for digital quantum simulation of spin and fermionic systems is now open-source and part of myQLM. The full documentation is available here. The module includes, among other things:
objects to help you define fermionic and spin Hamiltonians,
spin and fermionic Hamiltonians algebraic operations, with automatic normal ordering of fermionic operators,
spin-to-fermion transformations, such as Jordan-Wigner, Bravyi-Kitaev or parity basis transformations,
variational quantum eigensolver (VQE) tools, including a module to construct a UCC ansatz,
tools aimed at atomic and molecule studies (active space selection, basis transformations,…etc),
a trotterization module,
a quantum phase estimation module,
an adaptative ansatz VQE plugin (ADAPT-VQE),
a natural gradient-based optimizer,
a sequential hybrid classical-quantum optimizer,
a zero noise extrapolator plugin for multiqubit noise mitigation.
Batch generators in myQLM
myQLM provides a new service called BatchGenerator that could be piped at the beginning of a computational stack composed of plugins and a QPU. A BatchGenerator should inherits from AbstractGenerator
and overload the generate()
method. This method will generate as many Batch
objects as needed and will send these objects to the QPU iteratively. Please refer to the batch generator section for more information.
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
myQLM-interop can submit jobs to an IBM Quantum Experience QPU using the Qiksit Runtime API. The new QPU wrapper of myQLM-interop,
QiskitRuntimeQPU
, supports jobs in SAMPLING and OBSERVABLE mode.
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
The implementation of U2 and U3 gates have changed in myQLM-interop (Qiskit binder). Translating a circuit composed of at least one U2 or U3 gate from Qiskit to myQLM is fixed
Dependant Packages
Requires-Dist |
Version |
---|---|
qat-comm |
1.4.0 |
qat-core |
1.6.0 |
qat-devices |
0.2.0 |
qat-lang |
2.2.0 |
qat-variational |
1.4.0 |
myqlm-clinalg |
0.0.1 |
myqlm-contrib |
1.7.1 |
myqlm-fermion |
1.0.0 |
myqlm-simulators |
1.7.1 |
Other Packages
Requires-Dist |
Version |
---|---|
myqlm-interop |
1.7.1 |
Note: Versions must be greater or equal to the versions above
What’s new in myQLM 1.6.1
Released April 25, 2022
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.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