Qiskit Terra 0.24.0
Release notes: https://qiskit.org/documentation/release_notes.html#terra-0-24-0
Changelog
Deprecated
- Deprecate QuantumInstance and Opflow (#9176)
- Deprecate PauliTable and StabilizerTable (#9547)
- Deprecate the BIPMapping transpiler pass in favor of external plugin (#9924)
Added
- Operator apply permutation (#9403)
- Add support to
switch
intranspile
(#9928) - plugin convenience function for getting the entry point object (#9275)
- Improve error messages on failed control-flow transpilation (#9049)
- add function to swap connected nodes in DAGCircuit (#9160)
- Adding global_phase gate in qiskit-terra (#9251)
- Add experimental OpenQASM 3 support for switch (#9916)
- Add partial transpose function in quantum_info (#9566)
- Add full path transpile() support for disjoint backends (#9840)
- providers/options: implement Mapping (#9704)
- Allow list of optimizers+initial points in
VQD
(#9151) AdaptVQE
threshold improvements (#9921)- Add
max_trials
parameter toVF2PostLayout
. (#9963) - new unroll for-loops transpilation pass (#9670)
- Add support for disjoint coupling maps to SabreLayout (#9802)
- Add constructor to build target from legacy transpiler model (#9255)
- Add Rust-based OpenQASM 2 converter (#9784)
- Add Clifford.from_matrix (#9475)
- Add support for pulse reference to QPY (#9890)
- Ensure we run VF2PostLayout when needed in optimization level 1 (#9941)
- Make all Layout and Routing passes target aware (#9263)
- Fix
AmplitudeEstimation
is silently ignoringis_good_state
in the estimation problem (#9906) - Add flag to filter faulty qubits and gates to BackendV2Converter (#9911)
- Add equivlences of ECR, SX and SXdg gates to the equivalence library (#9913)
- Adding HLS plugins for linear functions and cliffords (#9399)
- Add representation of "switch" (#9833)
- Synthesis of a stabilizer state for LNN connectivity (#9734)
- Add commutator functions to quantum_info (#9546)
- Add option to skip deepcopy on circuit_to_dag (#9848)
- Add MinimumPoint transpiler pass (#9612)
- Add public layout attribute to QuantumCircuit (#9486)
- Update pulse gate transpiler pass to use target. (#9587)
- Rearrange the gradient result based on the order of the input parameters (#9503)
- Add
@deprecate_func
and@deprecate_arg
decorators (#9676) - Add support to CouplingMap for disjoint qubits (#9710)
- Add option to skip deepcopy on dag_to_circuit (#9825)
- Improve
Parameter
handling inSparsePauliOp
(#9796) - new parameters in
plot_bloch_multivector
:figsize
,font_size
, andtitle_font_size
(#7264) - Alternative construction mechanism for HLS config (#9413)
- Add
add_deprecation_to_docstring
for docsite deprecation support (#9685) - Oxidize the internals of Optimize1qGatesDecomposition (#9578)
- Synthesis of CZ and Clifford circuits for linear nearest neighbor connectivity (#9450)
- Added pulses to the
SymbolicPulse
library (#9625) - Remove Sabre's manual insertion-order iteration and unnecessary sorts (#9560)
- Support for time-dependent Hamiltonians and observable evaluation in
TrotterQRTE
(#9565) - Add flipping of
swap
toGateDirection
pass (#9561) - Add an equiv method to the StabilizerState class (#9543)
- two-qubit unitary synthesis adapted to errors and over-complete gatesets (#9175)
- Local fidelity (#9504)
- ensure equivalences work to RZX (#9507)
- Adds support to PassManager drawer to display stages (#9128)
- Add target support to basis, optimization, scheduling, and util passes (#9343)
Changed
- fixed issue 9453 by removing "_v2" from name in BackendV2 class (#9465)
- Update pulse gate transpiler pass to use target. (#9587)
- Implementing CouplingMap.eq (#9766)
- Remove Sabre's manual insertion-order iteration and unnecessary sorts (#9560)
- two-qubit unitary synthesis adapted to errors and over-complete gatesets (#9175)
- PhaseOracle and BooleanExpression allow setting the expression variable order (#6658)
- Bump MSRV to 1.61 and all rust dependencies to latest releases (#9393)
Removed
- Remove argument max_credits from execute and assemble (#9322)
- Remove faulty qubits and gates sections from transpile() (#9900)
- Remove deprecated methods and args in Primitives (#9480)
- Remove factorizers and linear solvers from
algorithms
(#9832) - Remove TextDrawing arguments layout, global_phase, qregs, and cregs (#9323)
- Remove DagDepNode.condition (deprecated in #6110) (#9406)
Fixed
- Set
max_trials
forVF2Layout
in preset pass managers. (#10054) (#10061) - Remove recursion from ConstrainedReschedule pass (#10051) (#10057)
- Fix for unintended rounding in 'state_to_latex' latex output (#9300) (#10048)
- Fix delay padding to respect target's constraints (#10007) (#10038)
- FIx 0q operation handling in
Statevector
(#10031) (#10039) - Bug fix macros.measure with backendv2 (#9987)
- Fix circuit drawer for instructions with circuit parameters (#9942)
- Refactor OpenQASM 2 exporter (#9953)
- Prepare qiskit/transpiler/graysynth.py for deprecation in next release (#9795)
- Fix handling of numpy integers in marginal_distribution() (#9976)
- Correctly error on incorrect clbits in
QuantumCircuit.append
(#9386) - Bug fix in template optimization, and minor cleanup (#9541)
- Ensure we run VF2PostLayout when needed in optimization level 1 (#9941)
- Fix
AmplitudeEstimation
is silently ignoringis_good_state
in the estimation problem (#9906) - Fixed IQAE bug mentioned in issue 9280 (#9887)
- Fix
QuantumCircuitData
handling ofOperation
(#9881) - Fixed handling of a list of coupling_maps passed to transpile() (#9886)
- Fix
UnrollCustomDefinitions
handling of empty definitions (#9899) - Fix a bug in QuantumCircuit.draw related to vertical_compression (#9855)
- Fix string formatting (#9540)
- Fix mypy errors (circuit) (#8267)
- Fix non-complex dtypes in OneQubitEulerDecomposer methods (#9828)
- transpile: narrow the return type depending on the circuits argument (#9799)
- fix qasm with reset (#9819)
- Clip probabilities in
QuantumState
(#9762) - Remove implicit broadcasting from
Pauli
/label construction ofPauliList
(#9779) - Fix basis_gates and coupling_map backend override in transpile() (#9789)
- Fix explicitly calibrated gates in
GateDirection
(#9786) - Fix
Parameter.is_real()
(#9664) - Qiskit gates not
qelib1.inc
are now defined when dumped (#9777) - Fix zero-qubit
Pauli
label strings (#9726) - Fix bitstring padding in the
BackendSampler
(#9744) - Add inverse method to ECRGate (#9733)
- Fix handling of BackendV1 simulators in PassManagerConfig.from_backend (#9719)
- Fix qpy import of circuit with StatePreparation (#9665)
- Fix wrong argument supplied to _identity_op() (#9201)
- Stop raising AttributeError when accessing missing calibration (#9681)
- Fix escaping of identifiers in OQ3 output (#9660)
- Fix typing error in
random_circuit
conditionals (#9651) - Fix bug in backend primitives with
bound_pass_manager
(#9629) - Fix inverse of
SdgGate
in Solovay Kitaev (#9635) - Add the gates ECR, iSwap, CY, SX, SXdg, DCX to the Clifford class (#9623)
- Fix handling of simulator backends in BackendV2Converter (#9630)
- Add TranspileErrors to routing passes for coupling_map=None (#7141)
- Fix
VQD
withSPSA
optimizer (#9538) - Update Target to use CalibrationEntry to create inst map (#9597)
- Retain all deprecated
Bit
properties in QPY roundtrip (#9525) - Fix sparse matrix conversion for
SciPy<Real/Imaginary>Evolver
(#9598) - Fix
NumPy(Minimum)Eigensolver
for sparse matrices (#9575) - Make
BarrierBeforeFinalMeasurements
deterministic (#9568) - Fix C3SXGate roundtrip in OpenQASM 2 (#9183)
- Remove deprecated arguments (#9542)
- Fix typo in Target (#9473)
- Bug fix on QNSPSA (#9483)
- Bug fix property and methods of BackendV2Converter (#9502)
- Fix bad deprecation of Register.name_format (#9494)
- Manage edge case of pickling instmap. (#9487)
- Fix performance of
ReverseEstimatorGradient
for partial gradients (#9491) - Fix add_calibration bug (#9223) (#9451)
- Fix add_calibration bug (#9223)
- Fix
PauliOp.adjoint()
(#9434) (#9443) - Fix
PauliOp.adjoint()
(#9434) - Fix qpy for
MCX
gates (#9391) (#9412) - Fix qpy for
MCX
gates (#9391) - Fix
TensoredOp.to_matrix
with global coefficients (#9404) (#9408) - Fix the
AmplitudeEstimator
algorithms for primitive usage (#9394) (#9407) - Fix
TensoredOp.to_matrix
with global coefficients (#9404) - Fix the
AmplitudeEstimator
algorithms for primitive usage (#9394)