Skip to content

0 97 0

Released on 2025-11-03.

Upgrade Instructions

Enhancements

  • Qmod now supports automatic uncomputation of local variables and enforces rules that guarantee their correct uncomputation. Similar rules are enforced on variables initialized inside a within-apply statement.

    For more details, see Uncomputation.

    Currently, violations of uncomputation rules are issued as warnings for backward compatibility. These will become compilation errors no earlier than 2025-12-03.

  • Add the assign_amplitude_table and assign_amplitude_poly_sin open-library functions, to replace the *= operator and the assign_amplitude function.

  • Add unscheduled_suzuki_trotter, a variant of multi_suzuki_trotter that doesn't re-order the Pauli terms.
  • Improve synthesis of controlled phase with theta=pi.
  • This release includes initial support of classical local variables, assignment of mid-circuit measurements, and runtime if statements. Currently, only variables of type QBit can be measured, and only the classical bool type is supported for local variable declaration and assignment. This enables simple algorithms such as the quantum teleportation protocol. These constructs have the corresponding dedicated graphics in the quantum program visualization. See more details under Classical variables) and Mid-circuit measurement.

Interface Changes

  • The *= operator and the assign_amplitude function are deprecated and will no longer be supported starting on 2025-12-03 at the earliest. Use assign_amplitude_table instead.
  • Function qdrift now receives a sparse Hamiltonian (SparsePauliOp) instead of a list of non-sparse Pauli terms (CArray[PauliTerm]). Non-sparse pauli terms in qdrift will no longer be supported starting on 2025-12-03 at the earliest.

Bug Fixes

  • Fix multi_suzuki_trotter synthesis with symbolic evolution coefficients raising an internal error.
  • Fix a bug where an internal error is raised when synthesizing with a maximum width constraint a model that contains control on a function, or a statement block, that allocates and frees qubits.

Security

  • Internal dependencies have been upgraded to address security vulnerabilities.