Skip to content

Latest commit

 

History

History
193 lines (128 loc) · 6.09 KB

File metadata and controls

193 lines (128 loc) · 6.09 KB

Changelog

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Types of changes:

  • Added for new features.
  • Changed for changes in existing functionality.
  • Fixed for any bug fixes.
  • Removed for now removed features.

[ M.m.P ] - [ YYYY-MM-DD ]

Added

  • Add MIPMapper documentation
  • Add Single Gate Multi Qubit (SGMQ) notation to the CircuitBuilder
  • The cycle time [seconds] can be set when instantiating the QuantifySchedulerExporter through the cycle_time parameter
  • CircuitBuilder accepts multiple (qu)bit registers through add_register method
  • Docstrings added to (user facing) public methods
  • Add interaction_graph as a property of the Circuit
  • Add mapping as an attribute of the Circuit, which contains an identity mapping, prior to any arbitrarily applied mapper pass.
  • The measure instruction accepts an axis parameter
  • MeasureDecomposer to decompose arbitrary measurements to a decomposition of single-qubit gates and a +Z measurement
  • CircuitAnalyzer analyzer pass for computing structural circuit metrics (size, interaction graph, gate dependency graph, density)
  • Metrics computed by the CircuitAnalyzer can be (de)selected through the metrics and exclude_metrics parameters, and a configurable per-metric time-out can be set through the timeout parameter
  • Can2CZDecomposer to decompose arbitrary two-qubit gates.
  • The following 2-qubit gates: CV, CY, DCNOT, ECR, ISWAP, InvSqrtSWAP, M, MS, SqrtISWAP, and SqrtSWAP
  • Add add_instruction method to the CircuitBuilder
  • libQASM parser accepts measure instruction aliases: measureX, measureY, and measureZ
  • The following 3-qubit gates: CCX (alias CCNOT) and CSWAP
  • ThreeQubitGateDecomposer to decompose the 3-qubit gates into CZ gates and single-qubit gates
  • The CqasmV1Exporter exports the Toffoli gate

[ 0.9.0 ] - [ 2025-12-19 ]

Added

  • QGymMapper mapper pass
  • U(theta, phi, lambda) gate to default single-qubit gates
  • Z90 and mZ90 pi-half rotation gates (equivalent to S and Sdag gates)
  • Operation duration in terms of execution cycles can be specified for the QuantifySchedulerExporter
  • measurement_to_bit_map property added to the Circuit class

Changed

  • Circuit.export expects an Exporter instance as input argument (instead of an ExportFormat)
  • Moved Bloch sphere rotation composition from the merger pass interface to Bloch sphere rotation semantic module
  • Refactor gate semantics as attributes of gates

Removed

  • The QuantifySchedulerExporter no longer returns a bit_register_mapping (use Circuit.measurement_to_bit_map property instead), it only returns a quantify-scheduler Schedule
  • The ExportFormat has been deprecated (exporters can be specified by providing an instance as input argument to Circuit.export)

[ 0.8.0 ] - [ 2025-11-03 ]

Added

  • Processing of control instructions (Barrier, Wait) added to quantify-scheduler exporter

Changed

  • Refactor of visitor functionality of IR components and implementations
  • Improved SWAP placement and refactor of common functionalities in existing router passes

[ 0.7.0 ] - [ 2025-10-13 ]

Added

  • Support for Python 3.13 added

Removed

  • Support for Python 3.9 dropped

[ 0.6.1 ] - [ 2025-10-06 ]

Added

  • instruction_count property to Circuit

Fixed

  • Autocompletion for Circuitbuilder gates
  • Re-mapper properly handles remapping of target qubits

[ 0.6.0 ] - [ 2025-08-28 ]

Added

  • MIPMapper mapper pass
  • OpenSquirrel's __version__ attribute exposed

Changed

  • RoutingValidator changed to InteractionValidator

Fixed

  • ShortestPathRouter and AStarRouter now correctly propagate SWAP gate insertion effects throughout the circuit
  • The values for parameters theta and phi stay within the domain (-pi, pi] throughout parse- and compile-time (note: gate modifiers have precedence over normalization)
  • Mapping of the target qubits of controlled gates

[ 0.5.0 ] - [ 2025-05-28 ]

Added

  • asm_filter method to the Circuit class to filter out assembly declarations by backend name

Fixed

  • RoutingValidator ignores assembly declarations

Changed

  • Default gate identification check refactored (now including check for phase)
  • McKayDecomposer checks X90 on BSR semantic instead of name

[ 0.4.0 ] - [ 2025-04-28 ]

Added

  • Assembly declaration
  • Rn unitary instruction
  • SWAP2CZDecomposer decomposer pass
  • CZDecomposer decomposer pass
  • ShortestPathRouter router pass
  • RandomMapper mapper pass
  • AStarRouter router pass

Changed

  • libQASM 1.1.0 integrated (updated from 0.6.9)
  • Refactor: removed generators
  • Changed the RoutingChecker pass to a RoutingValidator pass
  • Changed use of native to primitive, e.g. NativeGateValidator is now PrimitiveGateValidator
  • Compilation passes accept kwargs as input

[ 0.3.1 ] - [ 2025-01-31 ]

Fixed

  • Bug in the writing of SWAP instructions

[ 0.3.0 ] - [ 2025-01-30 ]

Added

  • NativeGateValidator validator pass

Changed

  • Relaxed NumPy version requirement to >=1.26 for all supported Python versions

Fixed

  • Fixed order of merging Bloch sphere rotations

[ 0.2.0 ] - [ 2025-01-21 ]

Added

  • init non-unitary instruction
  • SWAP two-qubit unitary instruction
  • barrier and wait control instructions
  • SingleQubitGatesMerger merger pass
  • SWAP2CNOTDecomposer decomposer pass
  • CNOT2CZDecomposer decomposer pass
  • RoutingChecker routing pass
  • Restore SGMQ notation for barrier groups in cQASMv1 Exporter

Changed

  • Importing modules, classes, and functionalities simplified
  • merge_single_qubit_gates method of Circuit class, changed to general merge method that accepts custom merger passes
  • libQASM 0.6.9 integrated (updated from 0.6.7)
  • Refactor: code base adheres to the PEP8 style guide
  • Refactor: instruction library simplified
  • Refactor: comment nodes removed from IR

Fixed

  • Bug in ABA-decomposer
  • Bug in McKay-decomposer (all single-qubit Clifford gates are verified)