Releases: QuTech-Delft/OpenSquirrel
Releases · QuTech-Delft/OpenSquirrel
Feature release 0.9.0
Added
QGymMappermapper passU(theta, phi, lambda) gate to default single-qubit gatesZ90andmZ90pi-half rotation gates (equivalent toSandSdaggates)- Operation duration in terms of execution cycles can be specified for the
QuantifySchedulerExporter measurement_to_bit_mapproperty added to the Circuit class
Changed
Circuit.exportexpects anExporterinstance as input argument (instead of anExportFormat)- 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
QuantifySchedulerExporterno longer returns abit_register_mapping
(useCircuit.measurement_to_bit_mapproperty instead), it only returns a quantify-schedulerSchedule - The
ExportFormathas been deprecated
(exporters can be specified by providing an instance as input argument toCircuit.export)
Feature release 0.8.0
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
Feature release 0.7.0
Added
- Support for Python 3.13 added.
Removed
- Support for Python 3.9 dropped.
Bug fix release 0.6.1
Added
instruction_countproperty toCircuit
Fixed
- Autocompletion for
CircuitBuildergates - Re-mapper properly handles remapping of target qubits
Feature release 0.6.0
Added
MIPMappermapper pass- OpenSquirrel's
__version__attribute exposed
Changed
RoutingValidatorchanged toInteractionValidator
Fixed
ShortestPathRouterandAStarRouternow correctly propagate SWAP gate insertion effects throughout the circuit- The values for parameters
thetaandphistay 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
Feature release 0.5.0
Added
asm_filtermethod to theCircuitclass to filter-out assembly declarations by backend name
Changed
- Default gate identification check refactored (now including check for phase)
McKayDecomposerchecksX90on BSR semantic instead of name
Fixed
RoutingValidatorignores assembly declarations
Feature release 0.4.0
Added
- Assembly declaration
Rnunitary instructionSWAP2CZDecomposerdecomposer passCZDecomposerdecomposer passShortestPathRouterrouter passRandomMappermapper passAStarRouterrouter pass
Changed
- libQASM 1.1.0 integrated (updated from 0.6.9)
- Refactor: removed generators
- Changed the
RoutingCheckerpass to aRoutingValidatorpass - Changed use of
nativetoprimitive, e.g.NativeGateValidatoris nowPrimitiveGateValidator - Compilation passes accept
kwargsas input
Bug fix release 0.3.1
Fixed
- Bug in the writing of SWAP instructions
Feature release 0.3.0
Added
NativeGateValidatorvalidator pass
Changed
- Relaxed NumPy version requirement to
>=1.26for all supported Python versions
Fixed
- Fixed order of merging Bloch sphere rotations
Feature release 0.2.0
Added
initnon-unitary instructionSWAPtwo-qubit unitary instructionbarrierandwaitcontrol instructionsSingleQubitGatesMergermerger passSWAP2CNOTDecomposerdecomposer passCNOT2CZDecomposerdecomposer passRoutingCheckerrouting pass- Restore barrier groups in cQASMv1 Exporter
Changed
- Importing modules, classes, and functionalities simplified
merge_single_qubit_gatesmethod ofCircuitclass,
changed to generalmergemethod 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)