Skip to content

Qiskit 2.3.0

Latest

Choose a tag to compare

@qiskit-bot qiskit-bot released this 08 Jan 18:23
· 71 commits to main since this release
2.3.0
1619be0

Changelog

Deprecated

  • Deprecate unsafe legacy format in Solovay Kitaev (#15360)
  • Deprecate annotated=None in control methods (#15356)

Added

  • Add ways to retrieve operations from the QkTarget (#15283)
  • Add Statevector.from_circuit to mirror Operator.from_circuit (#14981)
  • Add PauliLindbladMap.parity_sample method (#15335)
  • Support simple IfElseOp conditionals in OpenQASM 2 export (#14556)
  • Add qk_dag_compose to the C API (#15329)
  • Add ways to iterate over the Target in C. (#15208)
  • Added Reverse topology iterator in DAG (#15060)
  • Using Ross-Selinger in Qiskit (#15270)
  • Allow user-specified unitary synthesis methods for Clifford+T transpilation (#14952)
  • Add the argument fallback_on_default to UnitarySynthesis (#15287)
  • Add qk_transpile_stage_routing() to the C API (#15358)
  • Add substitute_node_with_dag to c api (#15374)
  • Add qk_transpile_stage_optimization() to the C API (#15295)
  • Enable commutation checks among Pauli-based gates (#15359)
  • Add qk_transpile_stage_translation() to the C API (#15293)
  • Add method wrappers for circuit and DAG converters (#15043)
  • Add DAG copy-empty-like to the C API (#15320)
  • Add qk_transpile_stage_layout() to the C API (#15241)
  • Add SolovayKitaev as part of the default unitary synthesis plugin (#15285)
  • Unified commutative optimization (#15047)
  • Add instruction_supported to QkTarget. (#14566)
  • Converting RX/RY/RZ rotations to {Clifford,T,Tdg} (#15321)
  • Add QkDag instruction appliers and getter to C API (#15313)
  • Add qk_dag_successors and qk_dag_predecessors to the C API (#15346)
  • Expose both forms of VF2 layout passes in the C API (#14864)
  • Add qk_circuit_to_dag and qk_dag_to_circuit to the C API (#15247)
  • Adding qk_dag_topological_op_nodes to C API (#15297)
  • Add qk_transpile_stage_init() to the C API (#15207)
  • Port VF2PostLayout to Rust (#14863)
  • Add UnitaryGate handling to QkDag C API (#15363)
  • Add no-overhead ParameterExpression.num_parameters attribute (#15354)
  • Split VF2 call_limit to before and after first layout (#14862)
  • Extend LitinskiTransformation pass to handle measurements (#15217)
  • Create PauliProductMeasurement instruction (#15126)
  • Add DAG typed node support to C API. (#15206)
  • Optimize the OptimizeCliffordT transpiler pass. (#14996)
  • Expose Neighbors in the C API (#15236)
  • Encapsulate VF2 configuration and return types (#14861)
  • Add Clifford prepend gates internal methods to improve Clifford.dot (#15166)
  • Add QkDag with registers to the C API. (#15200)
  • Improve performance of quantum_info predicates (#15118)
  • Add quantum volume generator function to C API (#15037)
  • Add QkParam to the C API (#14837)
  • Rust Implementation for using SparseObservable in sampled_expectation_value (#14516)
  • Unbias directionality in VF2 priority queue (#14859)
  • Handle VF2 coupling-map shuffling in Rust (#14860)
  • Use QSD from rust in default unitary synthesis plugin (#15003)
  • Make VF2 fully generic over index types and semantics (#14858)
  • Use on-the-fly scoring in VF2Layout (#14857)
  • Rust Shannon Decomposition (#14797)

Changed

  • Move preferred location of WrapAngles default registry (#15101)
  • Drop support for Python 3.9 (#15371)
  • adding name to qktarget (#15334)
  • Cleanup of circuit library control methods (#15209)
  • Swap to setuptools>=77.0 licence specification (#15128)
  • Drop macOS x86_64 to tier 2 (#15041)
  • Lower limits on VF2PostLayout in exact mode (#15068)

Fixed

  • Represent non-fixed params as NaN for QkTargetOp (#15463) (#15525)
  • Fix param extraction for arrays with a single element (backport #15436) (#15522)
  • QPY serialization of SparseObservable (#15263)
  • Fix timeline drawer for gates without unitary in target (#15421)
  • Stop using a parallel sort in disjoint utils (#15410)
  • Bug fix for Clifford+T transpilation: passing incorrect argument to generate_unroll_3q (#15401)
  • fix: preserve identity 'I' characters in PauliEvolutionGate labels (#15173)
  • Fix operator @ quantumstate multiplication (#14963)
  • Fix text drawer layering for classical wires (#15262)
  • Pauli.evolve() recognize common rotations by (n*pi/2) as Clifford gates (#15289)
  • Unitary synthesis bug fix (#15286)
  • Change the rust structure of expr.Value (#15272)
  • Fix reuse of ConsolidateBlocks instances (#15258)
  • Fix qpy.dump failure with gzip write streams in QPY v16 (backward seek unsupported) (#15158)
  • Raise exception not panic on bad ConsolidateBlocks input (#15110)
  • Fix schedule analysis passes with empty circuits (#15147)
  • Fix qubit mapping in ConsolidateBlocks control-flow blocks (#15083)
  • Fixing inverse methods for MCPhase and MCU1 gates (#15181)
  • Fix textdrawer for controlflow with different regs (#15155)
  • Deepcopy BoxOp bodies when copying circuits (#14918)
  • Fix incorrect mapping of ControlFlow block qargs in BasisTranslator (#15143)
  • Check target gates are parameterized in optimize1qgatesdecomposition (#15131)
  • Avoid panics in Optimize1qGatesDecomposition (#15117)
  • Fix passmanager to preserve falsy pass outputs instead of reverting to input (#14943)
  • Fix pickling of SabreSwap (#15074)
  • Fix edge-order non-determinism when adding DAG nodes (#15040)
  • Fix SparsePauliOp.is_unitary() to respect input tolerance values (#14676)
  • Preserve registers in output TranspileLayout (#15024) (#15025)
  • Preserve registers in output TranspileLayout (#15024)
  • Fix variable remapping of Delay expressions in QuantumCircuit.compose (#15020) (#15023)
  • Fix variable remapping of Delay expressions in QuantumCircuit.compose (#15020)
  • fix: Statevector.to_dict(decimals= 3) does not round results and ignores the decimals keyword (#12113)
  • Fix VF2PostLayout with uncoupled qubits in strict_direction=True (#14998) (#15001)
  • Fix VF2PostLayout with uncoupled qubits in strict_direction=True (#14998)