Qiskit Terra 0.23.0
Release notes: https://qiskit.org/documentation/release_notes.html#terra-0-23-0
Changelog
Deprecated
- Add deprecation warning on use of qiskit.IBMQ (#8080)
- Deprecate LinearFunctionsSynthesis transpiler pass (#9041)
- Refactor state latex drawer (#8874)
- Relax register-naming restrictions (#9100)
- Deprecate old path to QPY (#9225)
- Correct deprecation of old pulse visualization (#9146)
- Transfer clifford and cnot-dihedral synthesis functions from quantum_info to synthesis (#9141)
- Deprecate Python 3.7 support (#8942)
- Deprecate lists for argument input on transpile() (#8835)
- Fix pauli_basis deprecation (#8905)
Added
- Constructing Cliffords from quantum circuits with other Cliffords (#9169)
- Add importer for OpenQASM 3 (#9347)
- High-level-synthesis for permutations (#9157)
- Implements VarQTE algorithm with primitives. (#8746)
- Add final layout to output quantum circuit from transpiler (#8597)
- Primitives support the dynamic circuits with control flow (#9231)
- Add option to user config to control reverse_bits in circuit drawer (#9211)
- Efficient classical calculation of expectation gradients (#9287)
- Split
QFI
intoQFI
andQGT
(#9085) - Convert Equivalence Library to graph (#8790)
- Add FakeSherbrooke backend (#9339)
- Lazy pulse qobj loading for large backend (#8885)
- Add FakePrague Egret R1 to fake backends (#9369)
- Introducing ScalableSymbolicPulse to correctly compare pulses of amp,angle representation (#9314)
- support gate powering with ** (#9030)
- Add option to allow passing unknown parameters to ParameterExpression.bind (#9304)
- Speed up
Clifford.compose
(#7483) - Synthesis of a Clifford circuit into layers (#9220)
- add dtype parameter to PauliSumOp.from_list (#8896)
- Add efficient gate power methods (#9318)
- Translate parameterized gates only in gradient calculations (#9067)
- Refactor z2symmetries (#9227)
- Numerical Integration methods for real and imaginary time evolution. (#8399)
- Refactor gradients for extensibility (#9084)
- Add the Solovay-Kitaev algorithm to the transpiler passes (#5657)
- Various improvements to AdaptVQE (#9215)
- Oxidize SabreLayout pass (#9116)
- Add DAGCircuit output option to OneQubitEulerDecomposer (#9188)
- Adding linear synthesis algorithm for LNN (#9098)
- Adding CollectAndCollapse transpiler pass (#8907)
- Fully QPY compatible pulse builder for V2 and runtime backend (#8949)
- Improve performance of VF2 scoring and add support for scoring passes (#9026)
- Increase Accuracy of OpenQASM 2.0 Dump (#8250)
- Update Optimize1qGatesDecomposition to be Target aware (#8917)
- Adding permutation synthesis algorithm for LNN (#9082)
- Add gradient methods to FinDiffGradients (#9104)
- Calculate relative, not absolute, scores in SabreSwap (#9012)
- Add support for Python 3.11 (#9028)
- Improve LinearFunction synthesis (#8568)
- Add implicit iteration to CouplingMap (#9051)
- QFI with the primitives (#8688)
- add QuantumCircuit.from_instructions (#9006)
- Speed up
random_circuit
(#8983) - Add missing equivalences for XX{Plus,Minus}YYGate (#9017)
- Make UnrollCustomDefinitions pass target aware (#8784)
- Return
DAGOpNode
fromdagcircuit.replace_block_with_op
(#8799)
Changed
- Refactor state latex drawer (#8874)
- Convert Equivalence Library to graph (#8790)
- Relax register-naming restrictions (#9100)
- Introducing ScalableSymbolicPulse to correctly compare pulses of amp,angle representation (#9314)
- Oxidize SabreLayout pass (#9116)
- Converting the pulse library from complex amp to amp+angle (#9002)
- Adding CollectAndCollapse transpiler pass (#8907)
- Fully QPY compatible pulse builder for V2 and runtime backend (#8949)
- Switch from retworkx to rustworkx package (#9162)
- Improve LinearFunction synthesis (#8568)
- Use TOQM routing staged pass manager. (#9042)
- Speed up
random_circuit
(#8983) - Remove tweedledum as a core dependency (#8947)
- Add singledispatchmethod to dependency (#8944)
- Fix transpile() for control flow operations with a Target/BackendV2 (#8852) (#8889)
Removed
- Remove
label
argument from MCMTVChain and MCMT (#9324) - Remove
gate
argument from qiskit.transpiler.passes.Decompose (#9325) - Remove deprecated MSBasisDecomposer transpiler pass (#9342)
- Remove deprecated
measure
andreset
circuit operations (#9278) - Remove deprecated functions from
ParameterView
(#9184) - Remove deprecated redirects from visualization (#9131)
- Removed NLocal inital_state that is not a QuantumCircuit (#9081)
- Remove deprecated networkx dag converter functions (#9035)
- Remove deprecated methods from QuantumCircuit (#8980)
Fixed
- Fix add_calibration bug (#9223) (#9451)
- Fix
PauliOp.adjoint()
(#9434) (#9443) - Fix qpy for
MCX
gates (#9391) (#9412) - Fix
TensoredOp.to_matrix
with global coefficients (#9404) (#9408) - Fix the
AmplitudeEstimator
algorithms for primitive usage (#9394) (#9407) - Constructing Cliffords from quantum circuits with other Cliffords (#9169)
- Make BackendSampler set shots and stddev_upper_bound of returned QuasiDistribution (#9312)
- Barrier support for
visualize_transition
and refactor (#8834) - Fix PauliOp matmul with iI & add PauliOp test (#9321)
- Relax register-naming restrictions (#9100)
- Fix: AQC returns a wrong circuit when the unitary has a determinant −1 (#9331)
- Fix PVQD loss function (#9371)
- Fix
QuantumCircuit.compose
on unusual types and registers (#9206) - Update
qiskit.utils.wrap_method
for Python 3.11 (#9310) - Fix
ComposedOp.to_matrix
(#9316) - Fix
NumPyEigensolver
withSparsePauliOp
(#9101) - Fix PulseQobj converter name collision (#8839)
- Feature/trivial gate inversions (#9262)
- Fix primitives metadata (#9285)
- Refactor gradients for extensibility (#9084)
- Fix
LinCombSamplerGradient
to leverageAerSampler
(#9258) - Fix
betas
calculation onVQD
and async. cost evaluation (#9245) - Fix a transpile issue of BackendSampler (#9236)
- Performance improvement of
_DiagonalEstimator
(#9229) - Fix the
aggregation
argument ofSamplingVQE
(#9221) - Fix ordering of dims in QuantumState.probabilities_dict (#9214)
- Enable simplifying 1q runs and 2q blocks in transpile() without target (#9222)
- Fix shots argument of local_readout_mitigator (#9155)
- Infer
cregbundle
for all drawers (#9133) - Fully QPY compatible pulse builder for V2 and runtime backend (#8949)
- fix: overwrite AdaptVQE.supports_aux_operators (#9142)
- Fix serialization of primitives (#9076)
- fix #9102 (#9103)
- Reinstate
pulse.Instruction.draw
(#9144) - Fix random seed initialization between runs in SabreSwap (#9127)
- Use float-epsilon calculation in Sabre best scores (#9117)
- Fixed sign bug in docs in LinCombEstimatorGradient. (#9113)
- 🐛 fix deprecated
Loader.load_module()
(#9078) - Fix QPY handling of registers (#9095)
- Fix Backend primitive classes for BackendV1 with no max_experiments (#9069)
- Improve LinearFunction synthesis (#8568)
- Avoid deepcopy in pulse parser (#9063)
- Fix incorrect graph construction in VF2PostLayout (#9058)
- Make TwoQubitWeylDecomposition pickle-able (#7333)
- Fix default batching in variational algorithms (#9038)
- Fix handling of global ideal gates for target build_coupling_map() (#8977)
- Fix backend primitives on backends with job size limit (#8955)
- Fix zero-operand gates and instructions (#8272)
- Fix transpile() with a Target containing an ideal Measure (#8995)
- Fix
VQD
fork>2
(#8989) - Fix manifest entry for mpl styles (#9004)
- fix #8992 (#8998)
- Fix VF2Layout and VF2PostLayout handling of instructions without error (#8978)
- Cast ParameterExpression to float in RZXBuilder and RZXCalibrationBuilderNoEcho (#8965)
- Avoid skipping channels in pulse visualizer (#8974)
- Fix parallel dispatch with target argument in transpile() (#8952)
- Fix Statevector.evolve and DensityMatrix.evolve for mixed dimension subsystems (#8900)
- Fix classical-bit handling in control-flow StochasticSwap (#8906)
- Fix single-bit-condition equality in QuantumCircuit and DAGCircuit (#8930)
- Fix
BarrierBeforeFinalMeasurements
with loose bits (#8924) - Fix handling of globally defined operations in Target (#8925)
- Fix qpy custom ControlledGate with overloaded _define() (#8927)
- Fix loose-bit handling in QPY (#8928)
- Fix pauli_basis deprecation (#8905)
- Fix transpile() for control flow operations with a Target/BackendV2 (#8852) (#8889)
- Fix pauli.evolve dtype casting error (#8877) (#8884)
- Fix pauli.evolve dtype casting error (#8877)