Upgrade Instructions
- Python SDK
- The IDE upgrades automatically.
Bug Fixes
- Fixed a bug related to nested control operations.
- Fixed a bug related to boolean arithmetic expressions with invert.
- Fixed a bug related to arithmetic expressions inside within-apply.
IDE
- Add back improved circuit nodes search.
- Fix bug in Quantum Program page .qprog file extensions uploads.
- New Quantum Program export option: Quantum programs can now be exported as .qprog files.
- Poll all active jobs in the job list, not just the selected job.
- Add support for Alice & Bob hardware configurations in the IDE.
Enhancements
- Add support for arithmetic boolean expressions as conditionals for control statements; see here.
- Add quantum structs.
- The element type of quantum arrays can be any quantum type. N-dimensional quantum arrays are supported.
- Operand parameter names are optional in both Native
(
qfunc (indicator: qbit)->qfunc (qbit)) and Python (QCallable[QBit]->QCallable[Annotated[QBit, "indicator"]]) Qmod. - Improve error messages.
- Provide better circuits for certain boolean arithmetic expressions.
- Improved qubit reuse and runtime performance for model without constraints.
- Add
solovay_kitaev_max_iterationsfield to the synthesis preferences, allowing for tuning the accuracy of the Solovay-Kitaev algorithm. - Built-in classical functions to decompose/compose a matrix into/from a Hamiltonian. Example of usage:
- SDK
- parsed_states, parsed_counts, parsed_state_vector will contain the parsed execution details as lists if a quantum array was used in the model.
- SDK
Library and Documentation
- A new tutorial on Hamiltonian simulation for block-encoded Hamiltonians, using QSVT and Qubitization, was added to the library.
- A new tutorial on solving the discrete Poisson’s equation using the HHL algorithm, combined with quantum sine and cosine transforms, was added to the library; see here.
- New state preparation functions -
prepare_unifrom_trimmed_state,prepare_unifrom_interval_state, see here. - Enhanced the Discrete logarithm example to the case where the order is not power of 2, see here.
- Updated the Quantum Types documentation page.
Interface Changes
- Some builtin operations parameters have been renamed:
control(ctrl=..., operand=...)=>control(ctrl=..., stmt_block=...)within_apply(compute=..., action=...)=>within_apply(within=..., apply=...)power(power=..., operand=...)=>power(exponent=..., stmt_block=...)invert(operand=)=>invert(stmt_block=...)
Deprecations
- SDK: The
@structdecorator has been removed. Define classical structs using@dataclass. - The field
varianceinEstimationResultis deprecated, and will be populated with the value-1until removed. - The field
timeout_secinExecutionPreferences, and the fieldjob_timeoutinAwsBackendPreferences, have been removed. - classical arguments in the native language are now inside the parentheses
section (
(...)) alongside quantum variables and not inside the angle brackets (<...>), the angle brackets section is now considered deprecated. For example, you should migrate:qfunc <a: real> main{...}->qfunc main(a: real) {...}for info refer to the language reference about functions. A Warning was added to the IDE in the case it is used.