Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.2
Changelog
Deprecated
- Deprecate BackendV1 and `qiskit.providers.models` (backport 12629) (12864)
- Deprecate fake backends based on BackendV1 (backport 12660) (12837)
- fixes 9355 deprecate visualize_transition (12287) (12822)
- Deprecate V1 Primitives and their utils (12575)
- Deprecate Qobj and assemble (12649)
- Deprecate accidentally public internal helper methods on QuantumCircuit (12785)
- Improve the performance of the `ProductFormula` synthesizers (12724)
- Add warning for bad `justify` input, in `circuit_drawer` (12458)
- Deprecate tuple-like access to `CircuitInstruction` (12640)
Added
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (12727) (12881)
- Avoid operator creation in transpiler (12826) (12875)
- Port `star_preroute` to rust (backport 12761) (12846)
- Add config option to leverage all cores for sabre (12780) (12841)
- Bitarray postselect (12693) (12836)
- Add `AnnotatedOperation.params` and fix some control issues (12752) (12828)
- Move `generate_preset_pass_manager` to a standalone file (12762)
- Update version of OpenQASM 3.0 standard library (12387)
- Port `synth_permutation_depth_lnn_kms` to Rust (12746)
- Rewrite OpenQASM 3 exporter symbol table (12776)
- Port `synth_clifford_bm` to Rust. (12714)
- Update MCX recursive synthesis method to reduce number of CX gates (12772)
- Barebone generic backend options (12747)
- Adding QFT gate to natively reason about Quantum Fourier Transforms (11463)
- Improve the performance of the `ProductFormula` synthesizers (12724)
- Improved MCXVChain with dirty auxiliary qubits (9687)
- Oxidize `synth_cnot_count_full_pmh` (12588)
- Add Uniform State Preparation (12112)
- Port `synth_clifford_greedy` to Rust (12601)
- Oxidize `synth_permutation_acg` (12543)
- improving `quantum_causal_cone` method in python (12668)
- binary matrices utils in rust (12456)
- Add infrastructure for gates, instruction, and operations in Rust (12459)
- Add option to user config to control `idle_wires` in circuit drawer (12462)
- [unitaryHACK] Controlling the Insertion of Multi-Qubit Gates in the Generation of Random Circuits 12059 (12483)
- Add __pos__ for Parameter (12496)
- Update `transpile()` and `generate_preset_pass_manager` to convert loose input of constraints to a `Target` with `Target.from_configuration()` (12185)
- Add `DenseLayout` trial to `SabreLayout` (12453)
- add insert_barrier argument to UnitaryOverlap (12321)
- Add new method for single bitstring target when measuring stabilizerstate probabilities_dict (12147)
- Replace initialization method by Isometry in StatePreparation (12178)
Changed
- Update metadata of Primitives V2 (12784) (12857)
- Change the default `routing_method` to `sabre` (12806) (12847)
- Use rustworkx 0.15.0 features in DAGCircuit.remove_op_node (12756)
- Add infrastructure for gates, instruction, and operations in Rust (12459)
Fixed
- Fix error message upon misalignment in `PadDynamicalDecoupling` (12952) (12954)
- Improve error message on bad OpenQASM 3 `basis_gates` argument (12945) (12946)
- Fix dag visualization with Var wires (12848) (12924)
- Remove init peephole optimization discrete basis check (12898) (12920)
- 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)
- Make `BitArray.{slice_bits,slice_shots,__getitem__}` raise `IndexError` when indices are not valid (12755) (12845)
- Add `AnnotatedOperation.params` and fix some control issues (12752) (12828)
- Fix `BitArray.from_counts`/`from_samples` to not fail for input with only `0` outcome and `num_bits=None` (12800) (12820)
- fix issue/12311 with fractional gate in basis (12511)
- Validate `order` kwarg in `BitArray.from_bool_array()` (12686)
- Rewrite OpenQASM 3 exporter symbol table (12776)
- Fixing and documenting how the `Estimator` calculates stds (12670)
- Add clifford gates to collect_cliffords (12750)
- Fix `C3SXGate` `to_matrix` method (12742)
- Oxidize `synth_cnot_count_full_pmh` (12588)
- Fix `replace_block_with_op` on operations with wrong number of qubits (12637)
- Enable the new efficient MCX decompose (12628)
- GenericBackendV2 should fail when the backend cannot allocate the basis gate because its size (12653)
- Fix some bugs in loading Solovay Kitaev decompositions (12579)
- Invalidate `parameters` cache on circuit copy (12619)
- Fix v2 pulse drawer (12608)
- Use hash of numeric value for bound parameter expressions (12488)
- Fix bugs with VF2Layout pass and Qiskit Aer 0.13 (11585)
- Fix `QuantumCircuit.depth` with zero-operands and `Expr` nodes (12429)
- Avoid exception in `Target.has_calibration` for instruction without properties (12526)
- Implement `__array__` for `qasm2._DefinedGate` (12119)
- Fix a bug in isometry.rs (12469)
- Avoid lossing precision when scaling frequencies (12392) (12416)
- Avoid lossing precision when scaling frequencies (12392)
- Fix unnecessary serialisation of `PassManager` in serial contexts (12410) (12413)
- Fix unnecessary serialisation of `PassManager` in serial contexts (12410)
- Handle huge integers in OpenQASM 2 expression evaluator (12140) (12400)
- Fix a corner case of `SparsePauliOp.apply_layout` (12375) (12402)
- Fix a corner case of `SparsePauliOp.apply_layout` (12375)
- Handle huge integers in OpenQASM 2 expression evaluator (12140)
- Fix {Pauli,SparsePauliOp}.apply_layout to raise an error with negative or duplicate indices (12385) (12386)
- Fix {Pauli,SparsePauliOp}.apply_layout to raise an error with negative or duplicate indices (12385)
- fix edge coloring bug in plot_coupling_map (12369) (12379)
- Fix missing layout in `Commuting2qGateRouter` (12137) (12383)
- Fix missing layout in `Commuting2qGateRouter` (12137)
- fix edge coloring bug in plot_coupling_map (12369)