Cuda-quantum

Latest version: v0.7.0

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

Scan your dependencies

0.6.0

<!-- Release notes generated using configuration in .github/release.yml at e0fb95f99b955acca530fcedeb3acd109d9d0183 -->

The 0.6.0 release contains improved support for various HPC scenarios. We have added a [plugin infrastructure](https://nvidia.github.io/cuda-quantum/0.6.0/install.html#distributed-computing-with-mpi) for connecting CUDA Quantum with an existing MPI installation, and we've added a [new platform target](https://nvidia.github.io/cuda-quantum/0.6.0/using/cudaq/platform.html#remote-mqpu-platform) that distributes workloads across multiple virtual QPUs, each simulated by one or more GPUs.

Starting with 0.6.0, we are now also distributing [pre-built binaries](https://nvidia.github.io/cuda-quantum/0.6.0/install.html#pre-built-binaries) for using CUDA Quantum with C++. The binaries are built against the [GNU C library](https://www.gnu.org/software/libc/) version 2.28. We've added a detailed [Building from Source](https://nvidia.github.io/cuda-quantum/0.6.0/data_center_install.html) guide to build these binaries for older `glibc` versions.

What's Changed
Features and Enhancements 🎉
* C++17 support by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/973
* MPI support as plugins by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/966
* Support for recursive vector arguments and other data types by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1051
* Allow user to directly specify mapping topology file by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/1084
* Pre-built binaries, installer, and building from source guide by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/1010
* Introducing `remote-mqpu` REST Server-Client platform by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/1012
Bug Fixes 🐛
* Make C++ ASTBridge specification adherent for operation broadcasting by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/876
* Fix missing ctrl-swap support by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/918
* Fix WireType compliance issues with qubit-mapping pass by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/932
* Reduce GPU memory usage when using reset(q) in user programs by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/942
* Fix for misleading CUDA not found message by khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/986
* Fixes for `tensornet` backend not picking up MPI by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/974
* Fix bug in sampling a kernel with mz-reset-mz pattern (overwriting sample_result register) by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/997
* Fix ghost qubit bug 981 by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/998
* Hide error message while checking for GPUs in Python workflow by khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/995
* Fix density matrix qubit ordering bug by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/1033
* Fix library mode qubit ordering bug. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/1044
* Patch density matrix bug in release mode by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/1053
* Fix issue 1064: bug in bridge when lambda argument contains a loop. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1069
* Improve thread-safety of CUDAQ static variables by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/1078
* Chemistry related bug fixes by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/1099
* Fix bug 1108 - race condition in sample_async by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/1114
Documentation Updates ✏️
* Fixing typos and copy editing for docs by mmvandieren in https://github.com/NVIDIA/cuda-quantum/pull/896
* Add documentation and test for mixed language project by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1085
* MPI plugin docs by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/1095
* Adding a section on updating CUDA Quantum to docs by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/1112
Other Changes
* Add new pass, linear-ctrl-form by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/853
* Add a MeasureType to Quake by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/869
* Deprecate builder ctrl gates that are not specification compliant by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/935
* Add ability to create shared library to the driver by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/985
* Improved support for kernel return values by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1009
* Deprecating qreg and qspan by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/983
* Support for return vectors of type std::vector<NT> where NT is a numerical type by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1014
* Ability to pass custom passes from `nvq++` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/1034
* Add support for vectors of vectors to the bridge. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1036
* Support controlled-SWAP's in kernel builder by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/924
* Partial support for passing/return POD struct values. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1054
* Process initializer lists for struct types in the bridge. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/1068
* Enable use of single-term spin_op with kernel_builder::exp_pauli by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/1071

New Contributors
* mmvandieren made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/896
* jjacobelli made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/832
* Yaraslaut made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/1038

**Full Changelog**: https://github.com/NVIDIA/cuda-quantum/compare/0.5.0...0.6.0

Release created by workflow [7702894514](https://github.com/NVIDIA/cuda-quantum/actions/runs/7702894514).<br/>GitHub commit [e0fb95f99b955acca530fcedeb3acd109d9d0183](https://github.com/NVIDIA/cuda-quantum/tree/e0fb95f99b955acca530fcedeb3acd109d9d0183)

0.5.0

With 0.5.0 we have added support for quantum kernel execution on OQC and IQM backends. For more information, see our [docs](https://nvidia.github.io/cuda-quantum/latest/using/hardware.html). CUDA Quantum now allows to executing adaptive quantum kernels on quantum hardware backends that support it. The 0.5.0 release furthermore improves the tensor network simulation tools and adds a [matrix product state simulator](https://nvidia.github.io/cuda-quantum/latest/using/simulators.html#matrix-product-state).

Additionally, we are now publishing images for experimental features, which currently includes improved Python language support. Please take a look at our [installation guide](https://nvidia.github.io/cuda-quantum/latest/install.html) for more information about how to obtain them.

What's Changed

Features and Enhancements 🎉

* Support for submission to OQC backends by jfriel-oqc in <https://github.com/NVIDIA/cuda-quantum/pull/435>
* Support for submission to IQM backends by kukushechkin in <https://github.com/NVIDIA/cuda-quantum/pull/468>
* Add more support for std::vector and (C style) arrays. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/714>
* Optimized support for applying exponentials of Paulis by amccaskey in <https://github.com/NVIDIA/cuda-quantum/pull/660>
* Additional kernels for chemistry applications by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/731>
* Support for adaptive quantum kernels on (certain) quantum hardware backends by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/741>
* Adding photonics execution manager by Omar-ORCA in <https://github.com/NVIDIA/cuda-quantum/pull/515>
* Delay measurements if necessary when targeting quantum hardware backends by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/761>
* Enable while loop normalization and unrolling by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/830>
* Support ranged for-loops when targeting quantum hardware backends by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/833>
* Enable deployments for experimental branches by bettinaheim in <https://github.com/NVIDIA/cuda-quantum/pull/880>
* Open-source tensornet simulator and add tensornet-mps simulator backend by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/863>

Bug Fixes 🐛

* Support Volta+ arch in custatevec backend by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/696>
* Fix bug with unwind lowering. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/744>
* Fix incorrect handling of measurements in value semantics representation by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/752>
* Fix 781: Handle loops that include mid-circuit measurements by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/787>
* Legalization error in basis conversion. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/794>
* Better error messages for unsupported statements in kernels by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/808>
* Fix logical `&&` operator in `__qpu__` kernels by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/811>
* Fix bug in loop normalization. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/807>
* Fix ternary operator in `__qpu__` kernels by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/815>
* Added missing GIL-safe implementation for `pySampleAsync` by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/828>
* Support 2-d broadcast for observe by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/829>
* Fix GKE bug for quantum kernels that take with std::vector arguments by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/841>
* Enable diagnostics for invalid kernel argument types. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/844>
* Fix compiler crash when casting from floating to boolean by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/852>
* Fix kernel builder c_if qubit extraction bug by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/857>
* Fix an issue due to an ABI differences between ARM and x86 architectures by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/878>

Breaking Changes 🛠

* Modifying default target to be GPU, if present by khalatepradnya in <https://github.com/NVIDIA/cuda-quantum/pull/842>
* Fix broadcasting behavior and log a warning for behavior change by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/898>
* Update cuQuantum version to 23.10 by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/863>

Documentation Updates ✏️

* Add documentation for OQC backends by owen-oqc in <https://github.com/NVIDIA/cuda-quantum/pull/816>
* Add documentation for IQM backends by kukushechkin in <https://github.com/NVIDIA/cuda-quantum/pull/562>
* Add C++ noise modeling examples to our docs by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/818>
* Add state class to documentation by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/790>
* Update install guide and fixing tutorials by bettinaheim in <https://github.com/NVIDIA/cuda-quantum/pull/860>
* Adding documentation about default target and the environment variable to override it by khalatepradnya in <https://github.com/NVIDIA/cuda-quantum/pull/899>
* Documentation for `tensornet` and `tensornet-mps` backends by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/871>
* Add documentation and tweaks for using CUDA Quantum in DGX Cloud by bettinaheim in <https://github.com/NVIDIA/cuda-quantum/pull/905>

Other Changes

* Support vector front/back by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/702>
* Implement `get_state_async` for mqpu platform by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/766>
* Limited support for executing loops with break statements on quantum hardware backends by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/768>
* Implement the combine rotation peephole optimization. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/772>
* Add support for cudaq::range(N). by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/736>
* Support for additional controlled gates in python by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/784>
* Deprecate exp_val_z/expectation_z in favor of `expectation` by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/791>
* Better support for `QuakeValue` in Python by 1tnguyen in <https://github.com/NVIDIA/cuda-quantum/pull/809>
* Implement a loop peeling pass. by schweitzpgi in <https://github.com/NVIDIA/cuda-quantum/pull/824>
* Create qubit-mapping pass by boschmitt in <https://github.com/NVIDIA/cuda-quantum/pull/610>
* Incorporate new qubit-mapping pass for IQM backends by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/837>
* Incorporate new qubit-mapping pass for OQC backends by bmhowe23 in <https://github.com/NVIDIA/cuda-quantum/pull/838>
* Add `error_mitigation` and `sharpen` configurations to IonQ backend by splch in <https://github.com/NVIDIA/cuda-quantum/pull/470>
* Allow for multiple controls and targets in rotation gates by anthony-santana in <https://github.com/NVIDIA/cuda-quantum/pull/835>
* Removing password prompt and other ergonomic changes for Docker images by bettinaheim in <https://github.com/NVIDIA/cuda-quantum/pull/820>
* Allow the environment variable to override the default target by khalatepradnya in <https://github.com/NVIDIA/cuda-quantum/pull/877>
* Publish cuda-quantum images only to NGC, removing pushes to GHCR by bettinaheim in <https://github.com/NVIDIA/cuda-quantum/pull/900>

New Contributors

* owen-oqc made their first contribution in <https://github.com/NVIDIA/cuda-quantum/pull/780>
* Omar-ORCA made their first contribution in <https://github.com/NVIDIA/cuda-quantum/pull/515>
* khalatepradnya made their first contribution in <https://github.com/NVIDIA/cuda-quantum/pull/842>

**Full Changelog**: <https://github.com/NVIDIA/cuda-quantum/compare/0.4.1...0.5.0>
Release created by workflow [6915068190](https://github.com/NVIDIA/cuda-quantum/actions/runs/6915068190).

0.4.1

The 0.4.1 release adds support for ARM processors in the form of multi-platform Docker images and aarch64 Python wheels. Additionally, all GPU-based backends are now included in the Python wheels as well as in the Docker image.

<!-- Release notes generated using configuration in .github/release.yml at 2694e6828368154e0b1ac916f9ecaa4d2f3ec7ee -->

What's Changed
Features and Enhancements 🎉
* Expose adjoint T and S gates to python builder API by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/402
* Added kernel_builder functions for the hardware efficient ansatz 361 by johanneskuhlmann in https://github.com/NVIDIA/cuda-quantum/pull/451
* Adding nvidia backends to python wheels by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/480
* Multi-platform Docker images and aarch64 wheels by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/548
* Implement CUDA Quantum Kernel from State Vector. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/568
* Enable std::vector<T> construction within kernels by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/593
Bug Fixes 🐛
* Support Volta+ arch in custatevec backend by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/696
* Accurately detect mx/my mid-circuit measurements by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/415
* Bug fix to support multiple single qubit allocations on quantum backends by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/474
* Fix missing support for R1 decomposition by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/471
* Fix 475: bug with measurement operations in value semantics by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/491
* Fix 303 - release build segfault by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/502
* Fixes bug with null_wire. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/504
* Fix bug in bit flip noise channel by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/528
* [Support] Closes 532: change backtrace error message by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/534
* Fix 523 and std::unique bug in CircuitSimulator by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/526
* Fix compiler crash when processing empty region by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/552
* Bug fixes for `nvq++` arguments by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/549
* Add spin_op::from_word(...) by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/555
* Add multi-control decomposition to IONQ pipeline by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/566
* Support QASM emission for CallOps by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/563
* Convert IonQ outputs to bit strings and correct order by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/575
* Canonicalizations for ConcatOp and ExtractRefOp by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/574
* [custatevec] `getStateData` to return data consistent with qpp and `cudaq::from_state` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/582
* Allow more descriptive output names by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/580
* Fix for issue 603: QASM emission by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/604
* Fix bug when using gcc-11 header files. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/613
* Fix issues with get_state() in Python by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/616
* [Opt] Fix use after free (erase) in mem2reg by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/628
* Fix for issue 641: QASM export by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/649
* Only enable optimization in non-empty kernels by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/656
* Add the ability to pass additional command line options by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/647
Documentation Updates ✏️
* Clarifying documentation for GPU-based simulators by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/738
* Document CUDA library dependencies for Python wheels by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/716
* Updating docs on built-in operations by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/719
* Document GPU and CPU requirements by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/707
* Adding mqpu documentation by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/708
* Fixed code snippets using wrong kernel_builder APIs by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/479
* Cleanup the MLIR Pass advanced document, add a FileCheck test by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/547
* Refactor python documentation and update examples by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/581
* Adding tutorials folder with example notebooks by zohimchandani in https://github.com/NVIDIA/cuda-quantum/pull/560
Other Changes
* Update unwind-lowering pass to be more general by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/389
* Improve synthesis. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/401
* updating cuquantum and cutensor versions by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/422
* Add environment variable allowing one to print the IR before remote submission by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/427
* Issue 274: Migrate the fixup-linkage script to C++ by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/497
* Add cudaq::set_random_seed() by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/477
* Python sample() and observe() implement broadcasting by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/495
* Add option to set the noise model when using the IonQ-hosted simulator by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/536
* Add all_gather function for MPI by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/516
* Enable one to progressively build a Kernel with the kernel_builder by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/558
* Implement spin_op::to_sparse_matrix(). by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/567
* Rewrite the AST Bridge. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/587
* Adjustments to support libc++ in the AST Bridge by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/594
* Improve reproducibility of results by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/617
* More precise representation of the dataflow in Quake value semantics by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/625
* Add get_random_seed() to make broadcast tests repeatable by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/648
* Modify Quake::ApplyOp to allow an indirect form of call in order to by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/663
* Improve measurement support for submissions to IonQ by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/661
* Add ctrl-t and ctrl-s decomposition via r1 conversion by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/672
* Introduce sample_options and observe_options for addl flexibility by bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/664
* Fix 633: Bump the LLVM version to 16.0.6. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/676

New Contributors
* orclassiq made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/394
* johanneskuhlmann made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/451
* jrhemstad made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/447
* kukushechkin made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/468
* ajschmidt8 made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/585
* jfriel-oqc made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/435
* zohimchandani made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/560

**Full Changelog**: https://github.com/NVIDIA/cuda-quantum/compare/0.4.0...0.4.1
Release created by workflow [6408359768](https://github.com/NVIDIA/cuda-quantum/actions/runs/6408359768).

0.4.0

CUDA Quantum is now available [on PyPI](https://pypi.org/project/cuda-quantum/)!
For the initial PyPI release, the NVIDIA multi-gpu and tensornet backends are not yet included. Check out our Docker images [on NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda-quantum) to obtain the fully featured version, or build it from source using the release assets.
With 0.4.0 we have added support for quantum kernel execution on Quantinuum and IonQ backends. For more information, see our [docs](https://nvidia.github.io/cuda-quantum/latest/using/hardware.html).
As always, we welcome questions and feedback in the form of [issues](https://github.com/NVIDIA/cuda-quantum/issues/new/choose) and [discussions](https://github.com/NVIDIA/cuda-quantum/discussions) on this repository.

<!-- Release notes generated using configuration in .github/release.yml at b2abbaa6b021ffa5c9619dcf0530c1284b9c2208 -->

What's Changed
Features and Enhancements 🎉
* Implement cudaq::control() taking a free function as argument by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/35
* Add reset to kernel_builder in C++ and python. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/18
* Add for_loop to cudaq::kernel_builder and cudaq.Kernel by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/19
* Optimization: do not add control qubits to compute/uncompute steps of compute_action idiom. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/63
* Expose for_each_term and for_each_pauli to python by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/56
* Implement spin_op::to_matrix() by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/31
* Add support for negate operator (operator!) to cudaq::control. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/81
* Improve the ExecutionManager Extension Point by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/33
* Performance enhancements: observe_n and sample_n broadcast functions by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/74
* spin_op performance enhancement by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/115
* Implement chemistry domain sub-package. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/112
* [optimizer] Decomposition pass by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/143
* Increase performance of quantum allocation and deallocation in simulation by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/167
* Basis translation pass by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/144
* Implement runtime quantum operation tracing by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/92
* [optimizer] Multicontrol decomposition by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/194
* Add Server Helper for Quantinuum backends by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/176
* Expose SWAP gate to c++ and python builder by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/200
* [opt] Add memtoreg and regtomem passes. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/233
* Added forward difference gradient evaluation. by poojarao8 in https://github.com/NVIDIA/cuda-quantum/pull/107
* Local emulation of remote qpu execution by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/262
* Implement MPI support in CUDA Quantum by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/237
* [pass] Add a loop normalization pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/313
* Linux support for pip installation by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/304
Bug Fixes 🐛
* Add overload to handle the case when the user writes: by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/32
* Do not allow operator! on target qubits. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/6
* Temporary fix for AST visitor reentrancy bugs. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/22
* Fix bug 69, no expval attached to `observe_result` when shots aren't provided by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/70
* Fix `QuakeValue` Lifetime Bug and `kernel_builder::to_quake` Handling by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/67
* Adding r-val overload (QuakeValue &&) for kernel_builder adjoint modifier by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/99
* [CircuitCheck] Handle qvec as controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/128
* [common-ops] Fixes some matrices (row-major vs col-major) issues by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/133
* [quake] Fixes some matrices (row-major vs col-major) issues by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/140
* Fix 129, Make kernel_builder::qalloc(1) explicitly return a qvec. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/136
* `QuakeBridgeVisitor` to handle `cphase` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/132
* cudaq-ensmallen not export BLAS symbols by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/185
* Fixed a subtle bug in `QppCircuitSimulator::observe` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/189
* Bind r1 gate to python by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/198
* Fixed `QppCircuitSimulator` shots `ExecutionResult.expectationValue` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/208
* Fixing segfault crashes when using measure/reset ops. by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/217
* Fix 250: linkage of top-level (global) function. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/267
* Reset and parametric gates in `kernel_builder` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/269
* Fix 251: Base profile should handle single qubit allocations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/273
* Fix 281: let canonicalization pattern work with IndexType. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/282
* Fix 286: Add canonicalization to hoist invariants cc.loop arguments. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/289
* Fix 296: issue processing if-statements in JIT compilation by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/298
* [pass] Fix 291: don't erase non-controlled ops by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/292
* Fix 325: Bridge had some bugs with callable instances. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/326
* Fix issue with qreg of dynamic size and disappearing instructions by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/358
* Fix 344 - add support for std::uint8_t kernel argument by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/356
* Fix kernel_builder nested function call bug, 332 by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/334
* Fix 338: Work on implementation of cudaq::adjoint. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/374
Breaking Changes 🛠
* Remove qpud by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/91
* Delete qtx-translate and references to same. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/102
* Remove outdated functions from cudaq.py by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/105
* [CircuitCheck] Remove QTX support by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/118
* [quake] Universally replace the QRef type name with Ref. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/160
* [quake] Universal conversion of QVec to Veq. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/163
* Removes the QTX dialect by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/157
* NVQ++ Targets by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/147
* Update python command line flags by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/187
* [nfc] Remove the raise to affine (stub) pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/235
Documentation Updates ✏️
* Refer to GitHub for building from source instructions, by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/40
* Documentation update for control qubit negation by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/86
* Fixes to common operations definitions by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/120
* Update circuit simulator documentation to reflect the latest refactoring by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/90
* Update the documentation to reflect the new unified dialect by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/153
* Make the CC ops documentation more uniform. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/150
* [docs] Small fixes to quake dialect example by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/165
Other Changes
* Revert change to disable jump branching. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/5
* Replace the old deallocation pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/30
* Make use of the various math dialect power operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/71
* [nvq++] Add RPATH flags only to the final binary by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/52
* CircuitSimulator Refactor by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/12
* Add a wire type to the quake dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/101
* Add new ops to quake. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/109
* Link to correct version of custatvec libs by hamidelmaazouz in https://github.com/NVIDIA/cuda-quantum/pull/88
* [CircuitCheck] Run canonicalizer before checking by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/122
* Convert the quake dialect ops to support both memory and register forms. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/124
* Change qextract to extract_ref everywhere. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/138
* Add types for structs and arrays to CC by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/146
* [quake] OperatorInterface method to get negated controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/154
* [CircuitCheck] Handle negated controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/159
* Fold constant into extract_ref op by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/164
* [CircuitCheck] Handle raw index in ExtractRefOp by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/168
* [cc] Start adding some LLVM-like operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/192
* [CircuitCheck] Handle local qubits by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/190
* [quake, cc] Improved alloca ops by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/193
* Fixes for macOS by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/213
* [bridge, runtime] Replace use of LLVM-IR dialect in the bridge and python interface with CC dialect operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/201
* [cc] Add a folder to compute_ptr op. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/220
* [cg] Move GenKernelExecution to CC dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/225
* Remove the use of the MLIR Memref dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/226
* Load available simulators and platforms lazily in Python by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/239
* [opt] Expand loop unrolling to autodetect counted loops. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/265
* [pass] Decompose aggregate quantum allocations into multiple individual qubit allocations by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/280
* [opt] Flag to raise an error if cannot unroll a loop by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/295
* Preserve the line information in the source code for JIT compilation. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/299
* Fix 324: Update the old aggressive early inlining pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/331
* Callable Kernel Arguments Passed QuakeSynthesizer. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/355

New Contributors
* 1tnguyen made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/73
* hamidelmaazouz made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/88
* poojarao8 made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/107
* tlubowe made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/59
* Gistbatch made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/110
* splch made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/134

**Full Changelog**: https://github.com/NVIDIA/cuda-quantum/compare/0.3.0...841d7332db45d716aa18d5d33eaeb116b748068efb506bdfa0e7ed018bc9b553

0.4.0alpha

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
Features and Enhancements 🎉
* Implement cudaq::control() taking a free function as argument by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/35
* Add reset to kernel_builder in C++ and python. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/18
* Add for_loop to cudaq::kernel_builder and cudaq.Kernel by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/19
* Optimization: do not add control qubits to compute/uncompute steps of compute_action idiom. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/63
* Expose for_each_term and for_each_pauli to python by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/56
* Implement spin_op::to_matrix() by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/31
* Add support for negate operator (operator!) to cudaq::control. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/81
* Improve the ExecutionManager Extension Point by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/33
* Performance enhancements: observe_n and sample_n broadcast functions by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/74
* spin_op performance enhancement by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/115
* Implement chemistry domain sub-package. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/112
* [optimizer] Decomposition pass by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/143
* Increase performance of quantum allocation and deallocation in simulation by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/167
* Basis translation pass by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/144
* Implement runtime quantum operation tracing by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/92
* [optimizer] Multicontrol decomposition by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/194
* Add Server Helper for Quantinuum backends by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/176
* Add qvector, qarray, and qview by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/152
* Expose SWAP gate to c++ and python builder by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/200
* [opt] Add memtoreg and regtomem passes. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/233
* Added forward difference gradient evaluation. by poojarao8 in https://github.com/NVIDIA/cuda-quantum/pull/107
* Local emulation of remote qpu execution by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/262
* Implement MPI support in CUDA Quantum by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/237
Bug Fixes 🐛
* Add overload to handle the case when the user writes: by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/32
* Do not allow operator! on target qubits. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/6
* Temporary fix for AST visitor reentrancy bugs. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/22
* Fix bug 69, no expval attached to `observe_result` when shots aren't provided by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/70
* Fix `QuakeValue` Lifetime Bug and `kernel_builder::to_quake` Handling by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/67
* Adding r-val overload (QuakeValue &&) for kernel_builder adjoint modifier by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/99
* [CircuitCheck] Handle qvec as controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/128
* [common-ops] Fixes some matrices (row-major vs col-major) issues by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/133
* [quake] Fixes some matrices (row-major vs col-major) issues by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/140
* Fix 129, Make kernel_builder::qalloc(1) explicitly return a qvec. by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/136
* `QuakeBridgeVisitor` to handle `cphase` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/132
* cudaq-ensmallen not export BLAS symbols by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/185
* Fixed a subtle bug in `QppCircuitSimulator::observe` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/189
* Bind r1 gate to python by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/198
* Fixed `QppCircuitSimulator` shots `ExecutionResult.expectationValue` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/208
* Fixing segfault crashes when using measure/reset ops. by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/217
* Fix 250: linkage of top-level (global) function. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/267
* Reset and parametric gates in `kernel_builder` by 1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/269
* Fix 251: Base profile should handle single qubit allocations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/273
* Fix 281: let canonicalization pattern work with IndexType. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/282
* Fix 286: Add canonicalization to hoist invariants cc.loop arguments. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/289
* Fix 296: issue processing if-statements in JIT compilation by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/298
* [pass] Fix 291: don't erase non-controlled ops by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/292
Breaking Changes 🛠
* Remove qpud by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/91
* Delete qtx-translate and references to same. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/102
* Remove outdated functions from cudaq.py by anthony-santana in https://github.com/NVIDIA/cuda-quantum/pull/105
* [CircuitCheck] Remove QTX support by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/118
* [quake] Universally replace the QRef type name with Ref. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/160
* [quake] Universal conversion of QVec to Veq. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/163
* Removes the QTX dialect by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/157
* NVQ++ Targets by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/147
* Update python command line flags by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/187
* [nfc] Remove the raise to affine (stub) pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/235
Documentation Updates ✏️
* Refer to GitHub for building from source instructions, by bettinaheim in https://github.com/NVIDIA/cuda-quantum/pull/40
* Documentation update for control qubit negation by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/86
* Fixes to common operations definitions by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/120
* Update circuit simulator documentation to reflect the latest refactoring by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/90
* Update the documentation to reflect the new unified dialect by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/153
* Make the CC ops documentation more uniform. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/150
* [docs] Small fixes to quake dialect example by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/165
Other Changes
* Revert change to disable jump branching. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/5
* Replace the old deallocation pass. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/30
* Make use of the various math dialect power operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/71
* [nvq++] Add RPATH flags only to the final binary by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/52
* CircuitSimulator Refactor by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/12
* Add a wire type to the quake dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/101
* Add new ops to quake. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/109
* Link to correct version of custatvec libs by hamidelmaazouz in https://github.com/NVIDIA/cuda-quantum/pull/88
* [CircuitCheck] Run canonicalizer before checking by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/122
* Convert the quake dialect ops to support both memory and register forms. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/124
* Change qextract to extract_ref everywhere. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/138
* Add types for structs and arrays to CC by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/146
* [quake] OperatorInterface method to get negated controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/154
* [CircuitCheck] Handle negated controls by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/159
* Fold constant into extract_ref op by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/164
* [CircuitCheck] Handle raw index in ExtractRefOp by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/168
* [cc] Start adding some LLVM-like operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/192
* [CircuitCheck] Handle local qubits by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/190
* [quake, cc] Improved alloca ops by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/193
* Fixes for macOS by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/213
* [bridge, runtime] Replace use of LLVM-IR dialect in the bridge and python interface with CC dialect operations. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/201
* [cc] Add a folder to compute_ptr op. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/220
* [cg] Move GenKernelExecution to CC dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/225
* Remove the use of the MLIR Memref dialect. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/226
* Load available simulators and platforms lazily in Python by amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/239
* [opt] Expand loop unrolling to autodetect counted loops. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/265
* [pass] Decompose aggregate quantum allocations into multiple individual qubit allocations by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/280
* [opt] Flag to raise an error if cannot unroll a loop by boschmitt in https://github.com/NVIDIA/cuda-quantum/pull/295
* Preserve the line information in the source code for JIT compilation. by schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/299

New Contributors
* schweitzpgi made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/8
* boschmitt made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/46
* amccaskey made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/21
* anthony-santana made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/105
* 1tnguyen made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/73
* hamidelmaazouz made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/88
* poojarao8 made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/107
* tlubowe made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/59
* Gistbatch made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/110

**Full Changelog**: https://github.com/NVIDIA/cuda-quantum/compare/0.3.0...0.4.0-alpha

0.3.0

Initial public release of CUDA Quantum.

This GitHub release contains a limited set of backends. The complete Docker image with all documented backends can be found on NGC. More information about released packages and other versions can be found in our [documentation](https://nvidia.github.io/cuda-quantum/latest/releases.html).

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.