Changelog
Stay up to date with the latest Boulder Opal release notes
Boulder Opal 20.1.1
February 10, 2023
What's new
- We've deprecated the
plot_smooth_controls
andplot_cost_history
functions in the Q-CTRL Visualizer, and they will be removed in the future. Please useplot_controls
andplot_cost_histories
instead. - We've added a
population_size
parameter to the CMA-ES optimizer. You can use this to tweak the search behavior of the optimization. - We've added the following to the documentation:
- We’ve updated and simplified the Boulder Opal overview topic with the latest product capabilities.
- We've improved and simplified the examples in the How to represent quantum systems user guide.
- We've overhauled the look of the Reference documentation.
Boulder Opal 20.1.0
January 19, 2023
What's new
- The Q-CTRL Python package now supports Python 3.11. Note that we will soon remove support for Python 3.7 since it will reach its end-of-life status on June 26th, 2023.
- When using the closed-loop optimization function, you can now cancel the calculation with a
KeyboardInterrupt
. The optimization will stop and return the best results obtained thus far. You can throw aKeyboardInterrupt
by pressing control+C when running a Python script, or interrupting the kernel when running a Jupyter notebook. - We've added an application note on designing robust Rydberg blockade two-qubit gates in cold atoms.
Boulder Opal 20.0.2
January 3, 2023
What's new
- You can now pass list or tuple input for
sample_times
in graph nodes such astime_evolution_operators_pwc
,state_evolution_pwc
orsample_stf
, simplifying the syntax for these operations when only a single sample is required.
Bug fixes
- Fixed an error where
graph.state_evolution_pwc
would fail when using an intkrylov_subspace_dimension
in eager graph execution mode.
Boulder Opal 20.0.1
December 21, 2022
What's new
- Upgraded
gql
package version to 8.1.0.
Boulder Opal 20.0.0
December 20, 2022
Breaking changes
- We've removed the optional
initial_covariance
parameter from the CMA-ES closed-loop optimizer. - We've removed the
action-export
andaction-input-export
commands from the CLI tool.
What's new
- We've deprecated the
rng_seed
parameter of the closed-loop optimizer initializer types in favor of aseed
parameter. The new parameter has the same behavior as the deprecated one. The deprecated parameter will be removed in the future.
Boulder Opal 19.7.3
December 9, 2022
Bug fixes
- We've fixed some broken links in the reference documentation.
Boulder Opal 19.7.2
December 8, 2022
What's new
- We've renamed the "pulses" toolkit to "signals". To update your code, change calls to, for instance,
graph.pulses.gaussian_pulse_pwc
tograph.signals.gaussian_pulse_pwc
. You can see the updated reference documentation. - We've added a
segmentation
parameter to graph.signals.square_pulse_pwc, graph.signals.gaussian_pulse_pwc, graph.signals.linear_ramp_pwc, and graph.signals.cosine_pulse_pwc. It allows you to choose between a uniform segmentation (default) and a minimal segmentation (reserving most of the segments for the non-constant parts of the signal). For more information, see the reference page of the nodes or of the segmentation type. You can also see an example in this user guide. - You can now provide Tensor operators to operations creating
SparsePwc
nodes (graph.sparse_pwc_operator and graph.constant_sparse_pwc_operator). They will be internally converted into a sparse representation, and allows you to build the operators inside of the graph itself. You can see an example in this user guide. - We've added a new function to the Visualizer to plot Wigner functions. You can see it in action in this application note.
- We've added the following to the documentation:
- We've added a new user guide for the gradient-free optimizer, which is useful when the gradient is very costly to compute or inaccessible.
- We've added a new application note on how to generate noise-robust gates for Rigetti Quil-T with Boulder Opal.
- We've added examples of the new graph-based filter function and frequency-domain noise operator nodes. You can see some of them in this user guide and this application note.
- We've updated the documentation to use the new filter function and frequency-domain noise operator nodes. You can see examples in this user guide.
- We've improved the navigation of the user guides page with an updated organization for their categories.
Boulder Opal 19.7.1
November 22, 2022
Bug fix
- We've updated the
qctrl-toolkit
version to fix an import error.
Boulder Opal 19.7.0
November 18, 2022
What's new
- We've built a new graph-based gradient-free optimization function. It provides an alternative to gradient-based optimization when the gradient is inaccessible or very costly to compute.
- We've added three new graph operations:
- You can compute the Wigner function associated with a density matrix with
graph.wigner_transform
. - You can calculate filter functions and their associated frequency-domain noise operators in graphs with the operations
graph.filter_functions
andgraph.frequency_domain_noise_operator
.
- You can compute the Wigner function associated with a density matrix with
- The Q-CTRL Visualizer function plot_filter_functions now also accepts filter functions as exported from graph calculations.
Boulder Opal 19.6.2
October 27, 2022
What's new
- Upgraded
gql
package version to 3.4.0.