Skip to content

Releases: Qiskit/qiskit

Qiskit 1.3.1

12 Dec 19:58
1.3.1
b7b26e0
Compare
Choose a tag to compare

Changelog

Fixed

  • Discard cache for standard gates in assign_parameters (#13557) (#13559)
  • Fix .decompose on control flow (#13545) (#13549)
  • Fix registering global_phase parameters when creating CircuitData (#13538) (#13541)
  • Do not unroll gates in basis in add_control (#13475) (#13528)

Qiskit 1.3.0

28 Nov 15:30
1.3.0
896d1c8
Compare
Choose a tag to compare

Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.3

Changelog

Deprecated

  • Deprecate loose custom basis gates in preset pm pipieline (#13394)
  • Add missing pulse-related deprecation (#13392)
  • Deprecate the condition attribute and related functionality (#13223)
  • Deprecate qiskit.result.mitigation (#13351)
  • Deprecate BasicSimulator.configuration (#13367)
  • Deprecate instruction_durations, timing_constraints and backend_properties (#13338)
  • Add EchoRZXWeylDecomposition to Pulse deprecation (#13366)
  • Deprecate Pulse package and dependencies (#13164)
  • Improve deprecation of unit and duration (#13247)
  • Deprecate the unit and duration attributes (#13224)
  • deprecate BackendV1 in PassManagerConfig.from_backend (#12931)
  • Deprecates StochasticSwap and suggests the use of SabreSwap (#12983)
  • Deprecate BackendV1 and qiskit.providers.models (backport #12629) (#12864)
  • Deprecate BackendV1 and qiskit.providers.models (#12629)
  • Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
  • Deprecate fake backends based on BackendV1 (#12660)
  • fixes #9355 deprecate visualize_transition (#12287) (#12822)
  • fixes #9355 deprecate visualize_transition (#12287)

Added

  • Reorder Pauli terms before Trotterization (#12925)
  • Evolved operator functions (#13361)
  • Add Rustiq-based synthesis for PauliEvolutionGate (#13301)
  • Oxidize NLocal & family (#13310)
  • Add pauli_twirl_2q_gates function (#13331)
  • Add identity removal pass to presets (#13363)
  • Binary arithmetic gates (#13354)
  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Oxidize the ConsolidateBlocks pass (#13368)
  • Add more default trials to sabre layout (#13360)
  • Add grover_operator function (#13365)
  • Add iterator-access methods to SparseObservable (#13370)
  • Add meas_level, meas_return, and noise_model options to BackendSamplerV2 (#13357)
  • Prepare PauliEvolutionGate for Rustiq & port it to Rust (#13295)
  • More quantum circuit library refactoring (#13353)
  • Optimise SparsePauliOp.from_operator (#11557)
  • Boolean circuits as gates (#13333)
  • Improve qubit tracking in HighLevelSynthesis (#13240)
  • Parameterize Commutation Checker (#13302)
  • IQP as circuit library function (and in Rust) (#13241)
  • Implement SparseObservable.apply_layout (#13372)
  • Improve speed of Pauli.to_label (#13379)
  • Implement arithmetic on SparseObservable (#13298)
  • Add RemoveIdentityEquivalent transpiler pass (#12384)
  • Add official support for Python 3.13 (#13309)
  • Add base representation of SparseObservable (#12671)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Implement __eq__ for remaining standard-library gates except mcx (#13327)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Improve deprecation of unit and duration (#13247)
  • MCMTGate & plugins (#13150)
  • Port ElidePermutations transpiler pass to Rust (#13094)
  • Add Rust quantum volume function (#13238)
  • Add some more gates to CollectCliffords pass (#13214)
  • Make qasm3.CustomGate accessible from Python space (#13187)
  • Oxidize PauliFeatureMap (#13045)
  • Add equivalence-library rules between rzz and cp (#13019)
  • Port RemoveDiagonalGatesBeforeMeasure to rust (#13065)
  • Oxidize Commutation Analysis (#12995)
  • Oxidize commutation checker (#12870)
  • Oxidize random clifford (#12695)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Port the count_ops method in QuantumCircuit to Rust (#13050)
  • Fully port Optimize1qGatesDecomposition to Rust (#12959)
  • Promote CONTROL_FLOW_OP_NAMES to public API (#13057)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Adding MCX synthesis plugins (#12961)
  • Port synth_cz_depth_line_mr to Rust (#12949)
  • Auxiliary qubit tracking in HighLevelSynthesis (#12911)
  • Move mcx synthesis methods with ancillas to the synthesis library (#12904)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
  • Avoid operator creation in transpiler (#12826) (#12875)
  • Avoid operator creation in transpiler (#12826)
  • Port star_preroute to rust (backport #12761) (#12846)
  • Add config option to leverage all cores for sabre (#12780) (#12841)
  • Port star_preroute to rust (#12761)
  • Add config option to leverage all cores for sabre (#12780)
  • Bitarray postselect (#12693) (#12836)
  • Bitarray postselect (#12693)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add a default optimization level to generate_preset_pass_manager (#12150)
  • Add AnnotatedOperation.params and fix some control issues (#12752)

Changed

  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Raise minimum python version to 3.9 (#12910)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Update metadata of Primitives V2 (#12784) (#12857)
  • Update metadata of Primitives V2 (#12784)
  • Change the default routing_method to sabre (#12806) (#12847)
  • Change the default routing_method to sabre (#12806)

Fixed

  • Fix InverseCancellation to run in classical blocks (#13454) (#13496)
  • Fix parameter handling for NLocal(..., flatten=True) and standard gates (#13482) (#13495)
  • HLS fix to not synthesize instructions already supported (#13417) (#13441)
  • Fix process-based non-determinism in SparsePauliOp.to_matrix (#13439) (#13440)
  • Fix the calculation for identity operator's expectation value (#13345) (#13436)
  • Add argument assume_unitary to Operator.power. (#13319)
  • Fix performance regression in looped QuantumCircuit.assign_parameters (#13337)
  • Fix type of basis_gates in BasicSimulator configuration (#13385)
  • Fix compatibility issues with SciPy 1.14 (#13358)
  • Fix OpenQASM 2 gate definitions following a shadowed built-in gate (#13340)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Fix bug in QPY symengine payload version handling (#13259)
  • Workaround symengine serialization payload incompatibility (#13251)
  • Don't run ElidePermutation if routing is disabled (#13184)
  • Bug fix in ElidePermutations (#13186)
  • Make dense layout algorithm deterministic when run in parallel (#13133)
  • Fix qft-plugins for custom 'qft' gates (#13181)
  • Re-allow non-standard includes in OpenQASM 3 exporter (#13148)
  • improved fast-path detection in HLS (#13070)
  • Fix an edge case in Sabre's release valve (#13114)
  • Fix the matrix representation of CUGate in Rust (#13121)
  • Fix creation of registers in synthesis methods (#13086)
  • Restrict Split2QUnitaries to run on UnitaryGate (#13095)
  • Bug fix in HoareOptimizer (#13083)
  • Fix extraction of controlled parametric gates (#13067)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Fix use of node.op in Split2QUnitaries (#13015)
  • Fix UnitaryGate.repeat() method (#12986)
  • Move the circuit library's entanglement logic to Rust (#12950)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Fix Rust-space TwoQubitBasisDecomposer for non-standard KAK gate (#13014)
  • Extended the from_backend method of InstructionDurations to support both BackendV1 and BackendV2 (#12941)
  • Fix Initialize.gates_to_uncompute method (#12976)
  • Parsing of seed_transpiler in generate_preset_pass_manager (#12980)
  • fix stateprep's normalize (#12988)
  • adding copy argument to array (#12979)
  • Fix setter so that SparsePauliOp.paulis.phase stays zero (#12884)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952) (#12954)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945) (#12946)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945)
  • Expose seed in Estimator and StatevectorEstimator (#12862)
  • Fix dag visualization with Var wires (#12848) (#12924)
  • Remove init peephole optimization discrete basis check (#12898) (#12920)
  • Fix dag visualization with Var wires (#12848)
  • Remove init peephole optimization discrete basis check (#12898)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842) (#12851)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755) (#12845)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add AnnotatedOperation.params and fix some control issues (#12752)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800) (#12820)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800)

Qiskit 1.3.0rc2

20 Nov 20:39
1.3.0rc2
be44c82
Compare
Choose a tag to compare
Qiskit 1.3.0rc2 Pre-release
Pre-release

Changelog

Fixed

  • HLS fix to not synthesize instructions already supported (#13417) (#13441)
  • Fix process-based non-determinism in SparsePauliOp.to_matrix (#13439) (#13440)
  • Fix the calculation for identity operator's expectation value (#13345) (#13436)
  • Fix basis_count checking in ConsolidateBlocks (#13463) (#13465)
  • Fix post-oxidization change in ConsolidateBlocks behavior (#13450) (#13453)
  • Avoid overhead for synthesized nodes lookup (#13424) (#13425)

Qiskit 1.3.0rc1

07 Nov 22:34
1.3.0rc1
775039d
Compare
Choose a tag to compare
Qiskit 1.3.0rc1 Pre-release
Pre-release

Changelog

Deprecated

  • Deprecate loose custom basis gates in preset pm pipieline (#13394)
  • Add missing pulse-related deprecation (#13392)
  • Deprecate the condition attribute and related functionality (#13223)
  • Deprecate qiskit.result.mitigation (#13351)
  • Deprecate BasicSimulator.configuration (#13367)
  • Deprecate instruction_durations, timing_constraints and backend_properties (#13338)
  • Add EchoRZXWeylDecomposition to Pulse deprecation (#13366)
  • Deprecate Pulse package and dependencies (#13164)
  • Improve deprecation of unit and duration (#13247)
  • Deprecate the unit and duration attributes (#13224)
  • deprecate BackendV1 in PassManagerConfig.from_backend (#12931)
  • Deprecates StochasticSwap and suggests the use of SabreSwap (#12983)
  • Deprecate BackendV1 and qiskit.providers.models (backport #12629) (#12864)
  • Deprecate BackendV1 and qiskit.providers.models (#12629)
  • Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
  • Deprecate fake backends based on BackendV1 (#12660)
  • fixes #9355 deprecate visualize_transition (#12287) (#12822)
  • fixes #9355 deprecate visualize_transition (#12287)

Added

  • Reorder Pauli terms before Trotterization (#12925)
  • Evolved operator functions (#13361)
  • Add Rustiq-based synthesis for PauliEvolutionGate (#13301)
  • Oxidize NLocal & family (#13310)
  • Add pauli_twirl_2q_gates function (#13331)
  • Add identity removal pass to presets (#13363)
  • Binary arithmetic gates (#13354)
  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Oxidize the ConsolidateBlocks pass (#13368)
  • Add more default trials to sabre layout (#13360)
  • Add grover_operator function (#13365)
  • Add iterator-access methods to SparseObservable (#13370)
  • Add meas_level, meas_return, and noise_model options to BackendSamplerV2 (#13357)
  • Prepare PauliEvolutionGate for Rustiq & port it to Rust (#13295)
  • More quantum circuit library refactoring (#13353)
  • Optimise SparsePauliOp.from_operator (#11557)
  • Boolean circuits as gates (#13333)
  • Improve qubit tracking in HighLevelSynthesis (#13240)
  • Parameterize Commutation Checker (#13302)
  • IQP as circuit library function (and in Rust) (#13241)
  • Implement SparseObservable.apply_layout (#13372)
  • Improve speed of Pauli.to_label (#13379)
  • Implement arithmetic on SparseObservable (#13298)
  • Add RemoveIdentityEquivalent transpiler pass (#12384)
  • Add official support for Python 3.13 (#13309)
  • Add base representation of SparseObservable (#12671)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Implement __eq__ for remaining standard-library gates except mcx (#13327)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Improve deprecation of unit and duration (#13247)
  • MCMTGate & plugins (#13150)
  • Port ElidePermutations transpiler pass to Rust (#13094)
  • Add Rust quantum volume function (#13238)
  • Add some more gates to CollectCliffords pass (#13214)
  • Make qasm3.CustomGate accessible from Python space (#13187)
  • Oxidize PauliFeatureMap (#13045)
  • Add equivalence-library rules between rzz and cp (#13019)
  • Port RemoveDiagonalGatesBeforeMeasure to rust (#13065)
  • Oxidize Commutation Analysis (#12995)
  • Oxidize commutation checker (#12870)
  • Oxidize random clifford (#12695)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Port the count_ops method in QuantumCircuit to Rust (#13050)
  • Fully port Optimize1qGatesDecomposition to Rust (#12959)
  • Promote CONTROL_FLOW_OP_NAMES to public API (#13057)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Adding MCX synthesis plugins (#12961)
  • Port synth_cz_depth_line_mr to Rust (#12949)
  • Auxiliary qubit tracking in HighLevelSynthesis (#12911)
  • Move mcx synthesis methods with ancillas to the synthesis library (#12904)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
  • Avoid operator creation in transpiler (#12826) (#12875)
  • Avoid operator creation in transpiler (#12826)
  • Port star_preroute to rust (backport #12761) (#12846)
  • Add config option to leverage all cores for sabre (#12780) (#12841)
  • Port star_preroute to rust (#12761)
  • Add config option to leverage all cores for sabre (#12780)
  • Bitarray postselect (#12693) (#12836)
  • Bitarray postselect (#12693)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add a default optimization level to generate_preset_pass_manager (#12150)
  • Add AnnotatedOperation.params and fix some control issues (#12752)

Changed

  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Raise minimum python version to 3.9 (#12910)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Update metadata of Primitives V2 (#12784) (#12857)
  • Update metadata of Primitives V2 (#12784)
  • Change the default routing_method to sabre (#12806) (#12847)
  • Change the default routing_method to sabre (#12806)

Fixed

  • Add argument assume_unitary to Operator.power. (#13319)
  • Fix performance regression in looped QuantumCircuit.assign_parameters (#13337)
  • Fix type of basis_gates in BasicSimulator configuration (#13385)
  • Fix compatibility issues with SciPy 1.14 (#13358)
  • Fix OpenQASM 2 gate definitions following a shadowed built-in gate (#13340)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Fix bug in QPY symengine payload version handling (#13259)
  • Workaround symengine serialization payload incompatibility (#13251)
  • Don't run ElidePermutation if routing is disabled (#13184)
  • Bug fix in ElidePermutations (#13186)
  • Make dense layout algorithm deterministic when run in parallel (#13133)
  • Fix qft-plugins for custom 'qft' gates (#13181)
  • Re-allow non-standard includes in OpenQASM 3 exporter (#13148)
  • improved fast-path detection in HLS (#13070)
  • Fix an edge case in Sabre's release valve (#13114)
  • Fix the matrix representation of CUGate in Rust (#13121)
  • Fix creation of registers in synthesis methods (#13086)
  • Restrict Split2QUnitaries to run on UnitaryGate (#13095)
  • Bug fix in HoareOptimizer (#13083)
  • Fix extraction of controlled parametric gates (#13067)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Fix use of node.op in Split2QUnitaries (#13015)
  • Fix UnitaryGate.repeat() method (#12986)
  • Move the circuit library's entanglement logic to Rust (#12950)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Fix Rust-space TwoQubitBasisDecomposer for non-standard KAK gate (#13014)
  • Extended the from_backend method of InstructionDurations to support both BackendV1 and BackendV2 (#12941)
  • Fix Initialize.gates_to_uncompute method (#12976)
  • Parsing of seed_transpiler in generate_preset_pass_manager (#12980)
  • fix stateprep's normalize (#12988)
  • adding copy argument to array (#12979)
  • Fix setter so that SparsePauliOp.paulis.phase stays zero (#12884)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952) (#12954)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945) (#12946)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945)
  • Expose seed in Estimator and StatevectorEstimator (#12862)
  • Fix dag visualization with Var wires (#12848) (#12924)
  • Remove init peephole optimization discrete basis check (#12898) (#12920)
  • Fix dag visualization with Var wires (#12848)
  • Remove init peephole optimization discrete basis check (#12898)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842) (#12851)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755) (#12845)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add AnnotatedOperation.params and fix some control issues (#12752)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800) (#12820)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800)

Qiskit 1.2.4

03 Oct 18:55
1.2.4
2ce1b09
Compare
Choose a tag to compare

Changelog

Fixed

  • Fix bug in QPY symengine payload version handling (backport #13259) (#13260)

Qiskit 1.2.3

02 Oct 16:52
1.2.3
e198fd0
Compare
Choose a tag to compare

Warning

This release was yanked from PyPI due to a bug in its only changed behaviour. The release is kept here for posterity, but there is little reason to use this.

Changelog

Fixed

  • Workaround symengine serialization payload incompatibility (backport #13251) (#13255)

Qiskit 0.46.3

23 Sep 09:58
0.46.3
345cebb
Compare
Choose a tag to compare

Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/0.46#0463

This is the final release in the 0.x release series marking the end-of-life of the release series.

Changelog

Fixed

  • Fix C3SXGate to_matrix method (backport #12742) (#12744)
  • Fix replace_block_with_op on operations with wrong number of qubits (#12637) (#12699)
  • GenericBackendV2 should fail when the backend cannot allocate the basis gate because its size (backport #12653) (#12666)
  • Fix some bugs in loading Solovay Kitaev decompositions (#12579) (#12665)
  • Invalidate parameters cache on circuit copy (backport #12619) (#12620)

Qiskit 1.2.2

20 Sep 13:16
1.2.2
078d5a0
Compare
Choose a tag to compare

Changelog

Fixed

  • Don't run ElidePermutation if routing is disabled (#13184) (#13194)
  • Bug fix in ElidePermutations (#13186) (#13191)
  • Make dense layout algorithm deterministic when run in parallel (#13133) (#13190)
  • Fix qft-plugins for custom 'qft' gates (#13181) (#13189)
  • Re-allow non-standard includes in OpenQASM 3 exporter (#13148) (#13185)
  • Fix the text drawer with partially idle wires (#13149)

Qiskit 1.2.1

12 Sep 11:14
1.2.1
cb486e6
Compare
Choose a tag to compare

Changelog

Fixed

  • Fix an edge case in Sabre's release valve (#13114) (#13130)
  • Fix creation of registers in synthesis methods (backport #13086) (#13123)
  • Fix the matrix representation of CUGate in Rust (#13121) (#13124)
  • Restrict Split2QUnitaries to run on UnitaryGate (#13095) (#13097)
  • Bug fix in HoareOptimizer (#13083) (#13087)
  • Fix extraction of controlled parametric gates (#13067) (#13080)
  • Fix use of node.op in Split2QUnitaries (backport #13015) (#13062)
  • Fix Rust-space TwoQubitBasisDecomposer for non-standard KAK gate (#13014) (#13026)
  • Extended the from_backend method of InstructionDurations to support both BackendV1 and BackendV2 (#12941) (#13009)
  • Fix Initialize.gates_to_uncompute method (#12976) (#13000)
  • Parsing of seed_transpiler in generate_preset_pass_manager (backport #12980) (#12996)
  • Fix normalize in StatePreparation (#12988) (#12992)
  • Add the copy argument to __array__ (#12979) (#12987)

Qiskit 1.3.0b1

11 Sep 21:07
1.3.0b1
7e0e0e7
Compare
Choose a tag to compare
Qiskit 1.3.0b1 Pre-release
Pre-release

Changelog

Deprecated

  • Deprecates StochasticSwap and suggests the use of SabreSwap (#12983)
  • Deprecate BackendV1 and qiskit.providers.models (backport #12629) (#12864)
  • Deprecate BackendV1 and qiskit.providers.models (#12629)
  • Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
  • Deprecate fake backends based on BackendV1 (#12660)
  • fixes #9355 deprecate visualize_transition (#12287) (#12822)
  • fixes #9355 deprecate visualize_transition (#12287)

Added

  • Add equivalence-library rules between rzz and cp (#13019)
  • Port the count_ops method in QuantumCircuit to Rust (#13050)
  • Fully port Optimize1qGatesDecomposition to Rust (#12959)
  • Promote CONTROL_FLOW_OP_NAMES to public API (#13057)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Move mcx synthesis methods with ancillas to the synthesis library (#12904)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
  • Avoid operator creation in transpiler (#12826) (#12875)
  • Avoid operator creation in transpiler (#12826)
  • Port star_preroute to rust (backport #12761) (#12846)
  • Add config option to leverage all cores for sabre (#12780) (#12841)
  • Port star_preroute to rust (#12761)
  • Add config option to leverage all cores for sabre (#12780)
  • Bitarray postselect (#12693) (#12836)
  • Bitarray postselect (#12693)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add a default optimization level to generate_preset_pass_manager (#12150)
  • Add AnnotatedOperation.params and fix some control issues (#12752)

Changed

  • Raise minimum python version to 3.9 (#12910)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Update metadata of Primitives V2 (#12784) (#12857)
  • Update metadata of Primitives V2 (#12784)
  • Change the default routing_method to sabre (#12806) (#12847)
  • Change the default routing_method to sabre (#12806)

Fixed

  • Fix an edge case in Sabre's release valve (#13114)
  • Fix the matrix representation of CUGate in Rust (#13121)
  • Fix creation of registers in synthesis methods (#13086)
  • Restrict Split2QUnitaries to run on UnitaryGate (#13095)
  • Bug fix in HoareOptimizer (#13083)
  • Fix extraction of controlled parametric gates (#13067)
  • Fix use of node.op in Split2QUnitaries (#13015)
  • Fix UnitaryGate.repeat() method (#12986)
  • Move the circuit library's entanglement logic to Rust (#12950)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Fix Rust-space TwoQubitBasisDecomposer for non-standard KAK gate (#13014)
  • Extended the from_backend method of InstructionDurations to support both BackendV1 and BackendV2 (#12941)
  • Fix Initialize.gates_to_uncompute method (#12976)
  • fix stateprep's normalize (#12988)
  • adding copy argument to array (#12979)
  • Fix setter so that SparsePauliOp.paulis.phase stays zero (#12884)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952) (#12954)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945) (#12946)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945)
  • Expose seed in Estimator and StatevectorEstimator (#12862)
  • Fix dag visualization with Var wires (#12848) (#12924)
  • Remove init peephole optimization discrete basis check (#12898) (#12920)
  • Fix dag visualization with Var wires (#12848)
  • Remove init peephole optimization discrete basis check (#12898)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842) (#12851)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755) (#12845)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add AnnotatedOperation.params and fix some control issues (#12752)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800) (#12820)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800)