Bloqade-analog

Latest version: v0.16.3

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

0.15.0

In this release we have added a new compiler for bloqade waveforms to turn them from our bloqade waveform language to python functions. To enable this when running the bloqade python emulator specify the `waveform_runtime=...` with either:

* `"interpret"` which corresponds to the original behavior
* `"python"` which generates python function representing the waveform
* `"numba"` Further compiles the python function with numba.

There is a slight performance gain when using the `"python"` option, and this really will only help for very complicated waveforms.

Note that this is pretty experimental; we have tested a decent number of waveforms, but there still might be some issues. It is easy to check by simply switching the `waveform_runtime` option

Other features

1. Added some changes to the visualization of the lattice in the `Report` object
2. Added visualization for programs with `parallelize`
3. Added support for emulating the full Bloqade IR. This means you can append sequences together and execute them, more to come here.

0.14.0

New features:
* Added method to filter tasks in batch based on parameters in your parameter scan
* Added the ability to pass Vector-like parameters as run time assigned variables via `args`

Bug fixes:
* Fixed issue related to `.show()` method of `Report` object.
* Fixed issue with various Tutorial and Readme examples with regard to a previous change in the Bravais Lattice API

0.13.0

Engine Optimization
* Refactor AST visitor implementation which has improved performance and extensibility
* Adding caching of object `duration`

Bug fixes
* Issues with BravaisLattices with the new optional positional argument 795
* Issues related to recent change with `Report.counts` 796

0.12.0

API updates:
1. 785 Adding a method that will only fetch results that are not completed.

Bug fixes:
1. Fixing deployment issues with the documentation

0.11.0

State Vector emulation interface: `run_callback.` 758

In this release, we are pleased to present a new feature for Bloqade emulation of the `bloqade. python()` backend, called [`run_callback`](https://bloqade.quera.com/latest/reference/bloqade/ir/routine/bloqade/#bloqade.ir.routine.bloqade.BloqadePythonRoutine.run_callback). This callback function gives you access to the state-vector data via the [`StateVector`](https://bloqade.quera.com/latest/reference/bloqade/emulate/ir/state_vector/#bloqade.emulate.ir.state_vector.StateVector) object. This callback must have at least three arguments. The first three are the state vector, the second is the parameters of the particular task given as a named tuple, and the third argument is the Hamiltonian object used to generate the evolution for that specific task. The callback is called after running the emulation for each task given by the program's assignments.

The `StateVector` object contains a method called [`local_trace`](https://bloqade.quera.com/latest/reference/bloqade/emulate/ir/state_vector/#bloqade.emulate.ir.state_vector.StateVector.local_trace), which calculates the trace of an operator over the one- and two-site densities matrices. The Hamiltonian object has some method for calculating mean and variance of the energy given a particular `StateVector` and can even be involved at different times.

A caveat to remember: if you select `multiprocessing=True` when calling `run_callback` if your callback function updates any objects from within the callback function, e.g., has "side effects," you might get a race condition, or the function may not update the values as expected. This is because each call is run on another Python process that will not be able to update global variables and will contain copies of objects from the main process.

Other changes

1. 772 Removing implementation of QuEra backend to a private package, Access to QuEra's internal API will only be given on an individual basis.
2. 776 Adding the option to filter or not filter out shots that were not perfectly filled.
3. 771 Improving test coverage for `bloqade.tasks` module.
4. 769 A bug where the level coupling was not used to hash the operators in the `CompileCache` for the Bloqade emulator, which meant that if the hyperfine and rydberg both had the same spatial modulation, the second operator would not be stored.

0.10.0

New Features:
1. Specify the number of unit cells along both Bravais Lattice vectors for Bravais Lattice objects, e.g. `Square(2, 3, lattice_spacing=...)` will now make a rectangular lattice.
2. Function to extract the device capabilities for Aquila: `bloqade.get_capabilities`.
3. Updates to documentation:
a. Added some links to the Builder workflow diagram
b. Extensive documentation on the device capabilities object.

Issues Fixed:
1. Fixed bug in deserialization of QuEra tasks 755
2. Made Waveform plots now have a fixed aspect ratio.
3. Bug fix in subspace calculation for certain kinds of geometries.

Page 4 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.