Skip to content

Latest commit

 

History

History
130 lines (89 loc) · 15.8 KB

RELEASE.md

File metadata and controls

130 lines (89 loc) · 15.8 KB

sqkquantum Release Notes

sqkquantum 0.10.0 Release Notes

Major Features and Improvements

Algorithm

  • [BETA] virtual_distillation: Added error mitigation algorithm based on virtual distillation, which reduces quantum noise by creating virtual copies of quantum states and performing measurements on an entangled system.
  • [BETA] QuantumNeuron: Added quantum neuron implementation based on Repeat-Until-Success (RUS) strategy, which simulates classical neuron behavior through quantum circuits by applying non-linear function rotations.
  • [STABLE] qjpeg: Added quantum image compression algorithm based on quantum Fourier transform, which can compress quantum images by reducing the number of qubits while preserving key information in the frequency domain.
  • [STABLE] cnry_decompose: Added decomposition for CnRY gate.
  • [STABLE] cnrz_decompose: Added decomposition for CnRZ gate.
  • [STABLE] BSB: Added GPU acceleration support for Ballistic Simulated Bifurcation algorithm with the three precision options: 'cpu-float32', 'gpu-float16', 'gpu-int8'.
  • [STABLE] DSB: Added GPU acceleration support for Discrete Simulated Bifurcation algorithm with the three precision options: 'cpu-float32', 'gpu-float16', 'gpu-int8'.
  • [STABLE] qudit_symmetric_encoding: Added qudit encoding functionality that maps d-level quantum states to qubit states through symmetric encoding, enabling efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers.
  • [STABLE] qudit_symmetric_decoding: This feature introduces the ability to decode qubit symmetric states or matrices into qudit states or matrices, thereby enhancing the support for multi-level quantum systems. The decoding process involves transforming symmetric qubit states into corresponding qudit states, which facilitates efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers.
  • [STABLE] qutrit_symmetric_ansatz: Introduced a qutrit symmetric ansatz that constructs a qubit ansatz preserving the symmetry of encoding for arbitrary qutrit gates. This feature allows for efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers by leveraging symmetry-preserving transformations. The ansatz supports decomposition into "zyz" or "u3" basis and can optionally include a global phase.

Measure

Operator

  • [STABLE] mat_to_op: Added function to convert matrix to QubitOperator, supporting both little-endian and big-endian qubit ordering for seamless integration with different quantum computing frameworks.

Circuit

  • [STABLE] Added Circuit.from_qcis() and Circuit.to_qcis() functions for QCIS format conversion
  • [STABLE] Added __eq__ and __ne__ methods for circuit comparison
  • [STABLE] Circuit.depth(): Added function to calculate quantum circuit depth with options to include single-qubit gates and align gates to barriers.

IO

  • [STABLE] QCIS: Added quantum circuit and QCIS format conversion class

Breaking Changes

  • [IMPORTANT] The byte order of keys and samples in MeasureResult has been unified to little-endian. If your code uses these attributes, please carefully check and use the newly added reverse_endian method to adjust if needed.

Bug Fixes

  • PR2497: Fixed potential parameter name duplication in Amplitude Encoder.
  • PR2410: Fixed is_measure_end error that returned True even without measurement operations.
  • PR2410: Fixed incorrect calculation results after reversing qubit order in two-qubit gates.
  • PR2377: Fixed recursive error in DAGCircuit when processing deep circuits, now supporting arbitrary depth circuits.
  • PR2345: Fixed calculation error in mqmatrix's get_expectation_with_grad method when processing batch Hamiltonians and added test cases.
  • PR2345: Fixed error when using reverse_qubits with gates not added in specified order.
  • PR2345: Fixed error in FermionOperator.hermitian() example code.
  • PR2319: Fixed measurement error in Stabilizer simulator.
  • PR2319: Fixed seed not properly applied in Stabilizer simulator.
  • PR2319: Added verification for bit string correctness in Stabilizer simulator output.
  • PR2315: Made MQSim and Hamiltonian serializable, supporting Python multiprocessing.
  • PR2309: Fixed missing imaginary terms and coefficients in some QAOA ansatzes.
  • PR2309: Fixed non-working QAOAAnsatz example.
  • PR2309: Modified parameter names in ansatz circuits to match formulas.
  • PR2296: Fixed index error in kron_factor_4x4_to_2x2s() return values, ensuring correctness of two-qubit gate decomposition function kak_decompose.
  • PR2285: Removed unnecessary output during gradient computation.

Other Updates

  • Optimized first-time quantum circuit execution speed for improved performance.
  • Improved precision of params_zyz() function, enhancing ZYZ decomposition accuracy.
  • Removed warning for uninstalled mqvector_gpu, now only prompting when used.
  • Removed warning for uninstalled SQKQuantum, now only prompting when used.
  • Added warning when Hamiltonian contains imaginary parts, alerting users to potential calculation anomalies.
  • Enhanced clarity of warning messages when SQKQuantum is not installed.
  • Changed pip source to sqk mirror.

sqkquantum 0.9.11 Release Notes

Major Feature and Improvements

Gates

  • [STABLE] Arbitrary axis rotation: New single-qubit gates for arbitrary axis rotation on the Bloch sphereRn
  • [STABLE] matrix: The quantum gate supports retrieving its complete matrix representation by using the interface and specifying the parameter full=True. This matrix representation is influenced by the target qubit and the control qubit, if applicable.
  • [STABLE] Terminal relaxation channel: Add ThermalRelaxationChannel.
  • [Alpha] Quantum measurement: The measurement gate now supports qubit reset functionality, allowing the measured quantum state to be reset to the |0⟩ state or the |1⟩ state. The execution speed of the measurement gate has been optimized for improved performance.
  • [STABLE] RotPauliString: Add arbitrary pauli string rotation gate.
  • [STABLE] GroupedPauli: Add Pauli combination gate. This gate allows for faster execution compared to individually applying single Pauli gates.
  • [STABLE] GroupedPauliChannel: Add Pauli combination channel. This channel allows for faster execution compared to applying Pauli channels individually.
  • [STABLE] SX: Add sqrt X gate.
  • [STABLE] Givens: Add Givens rotation gate.

Circuit

  • [STABLE] summary: The summary information of the quantum circuit displayed through this interface will be presented in a table format, making it more visually appealing and straightforward.
  • [STABLE] svg: Scaling the svg of quantum circuit by setting scale of this API.
  • [STABLE] openqasm: Directly convert quantum circuit to openqasm or convert openqasm to a sqkquantum circuit.

ParameterResolver

  • [STABLE] PRGenerator: new is able to set temporary prefix of suffix.

Ansatz

Device

Simulator

  • [STABLE] sampling: Improve the sampling speed for quantum circuit without noise and all measurement only at end.

utils

Algorithm

  • [Alpha] MQSABRE: A new qubit mapping algorithm that enable to set fidelity of quantum gate.

Bug Fix

  • PR1971: Fix sign bug in amplitude_encoder.
  • PR2094: Fix the issue of randomness in the get_expectation_with_grad method when using the parameter shift rule.
  • PR2164: Fixed an issue with passing parameters in the build script on Windows systems.
  • PR2171: Fixed a potential null pointer issue with the density matrix simulator when copying quantum states.
  • PR2175: Fixed an issue with negative probabilities for Pauli channels.
  • PR2176: Fixed an issue with the parameter shift rule when dealing with controlled quantum gates.
  • PR2210: Fixed an issue with the parameter shift rule when dealing with multi-parameter gates with some of them are constant.