Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/2.0
Changelog
Deprecated
- Extend deprecation of QuantumCircuit.duration and DAGCircuit.duration (#13960)
- Address BackendV1 deprecation warning oversights (#13868)
- The unused parameter
dag
inDAGNode
constructor is deprecated (#13862) - Deprecate convert_to_target (#12915)
- Deprecate
qiskit.circuit.classicalfunction
(#13786) - Deprecate use of
BackendProperties
(BackendV1) in transpilation pipeline (#13719) - Deprecate NormalizeRXAngle and rzx_templates (#13883)
- raise DeprecationWarning for a targetless timeline drawer (#13601)
- Deprecate
atomic_evolution
(#13603) - Deprecation of MCMT in favor of MCMTGate (backport #13584) (#13810)
- Deprecate subclassing of
Register
andBit
(#13841) - Deprecate BackendV2Converter (#12840)
- Deprecation of MCMT in favor of MCMTGate (#13584)
- Ensure
translation
stage always outputs ISA circuits (#13792) - Deprecate
BasicSimulator.run_experiment
(#13750) - Deprecate DAGNode.sort_key attribute (#13744)
- Deprecate
show_idle
andshow_barrier
in favor ofidle_wires
andplot_barriers
(#13602)
Added
- The parameter
idle_wires
default flipped to False in all circuit drawers (#13865) - [Stretch] Add
stretch
variable support toQuantumCircuit
. (#13852) - Delegate
BasePass.__call__
toPassManager.run
(#13820) - Add representation of
box
(#13869) - Use average gate fidelity in the commutation checker (#13874)
- [Stretch] Add
+
,-
,*
,/
operators for classical expressions. (#13850) SparseObservable
evolution (#13836)- Port HighLevelSynthesis pass to rust (#13813)
- Light Cone Transpiler Pass (#12814)
- Add
SparseObservable.compose
(#13766) - [Stretch] Support
Float
type in classical expressions. (#13832) - C API for
SparseObservable
(#13694) - [Stretch] Support
const
classical expressions. (#13811) - Refactor parallelism utilities for public API (#12412)
- Single-register arithmetic gates (#13371)
- Add
ContractIdleWiresInControlFlow
optimisation pass (#13779) - Promote linux aarch64 to tier 1 support (#13737)
- Remove dependance of
BooleanExpression
ontweedledum
(#13769) - Add
default
routing stage plugin (#13802) - Add method to compute estimated duration of scheduled circuit (backport #13783) (#13881)
- Add method to compute estimated duration of scheduled circuit (#13783)
- Add dt to GenericBackendV2 (#13830)
- Better decomposition for multi-controlled 1-qubit gates (#13801)
- Add 2q fractional gates to the
UnitarySynthesis
transpiler pass (#13568) - Add
default
translation stage plugin (#13794) - Support
SparseObservable
toSparsePauliOp
conversions (#13758) - Add
QuantumCircuit.noop
for instructionless qubit use (#13774) - Add new
get_control_flow_name_mapping
function (#13472) - Add option
max_block_width
toCollectLinearFunctions
andCollectClifford
passes (#13661) - feat: add method to convert
BitArray
into boolean array (#13653) - Add option
collect_from_back
toCollectMultiQBlocks
(#13612) StabilizerState.expectation_value
can also acceptSparsePauliOp
(#13539)- Quantum Multiplexer Simplification (#13099)
Changed
- The parameter
idle_wires
default flipped to False in all circuit drawers (#13865) - Delegate
BasePass.__call__
toPassManager.run
(#13820) - Use average gate fidelity in the commutation checker (#13874)
- Handle an optional symengine and sympy in qpy (#13917)
- Port HighLevelSynthesis pass to rust (#13813)
- New
atomic_evolution
signature inProductFormula
subclasses (#13918) - Simplify return type of
DAGCircuit::control_flow_op_nodes
(#13892) - Remove condition/c_if, duration, and unit from instructions (#13506)
- Add
default
routing stage plugin (#13802) - Remove accidentally-public methods from
QuantumCircuit
(#13893) - Ignoring unsupported gates for Solovay-Kitaev transpiler pass (#13690)
- Change the register name for
measure_active
tomeas
(#13866) - Warn on use of
property_set
kwarg toBasePassManger.run
(#13821) - Ensure
translation
stage always outputs ISA circuits (#13792) - Add
default
translation stage plugin (#13794) - Add unitary gate representation to rust (#13759)
- Have
BlueprintCircuit.copy_empty_like
return an emptyQuantumCircuit
(#13782) - Bump MSRV to 1.79 (#13709)
Removed
- Update transpiler pipeline to (only) use target internally (#12850)
- Remove pulse module files, pulse visualization and final cleanup (#13872)
- Remove deprecated
BackendV1
elements, including base class,providers.models
andqobj
modules (#13793) - Remove v1 primitive implementations (#13877)
- Remove calibrations APIs and related functionality (#13861)
- Remove fake backends based on
BackendV1
and related tools (#13805) - Remove Provider ABC (deprecated in 1.1) (#13435)
- Remove the
classical_function
module and alltweedledum
-related code (#13815) - Remove pulse support in QPY in 2.0 (#13814)
- Remove deprecated stochastic swap transpiler pass (#13791)
- The unused parameter dag in DAGNode constructor is removed (#13863)
- Remove condition/c_if, duration, and unit from instructions (#13506)
- Remove deprecated legacy scheduling passes (#13876)
- Remove use of
BackendProperties
(BackendV1) in transpiler pipeline (#13722) - Remove pulse from GenericBackendV2 (#13829)
- Remove pulse-related passes (#13798)
- Remove
assemble
andassembler
module (#13748) - Remove use of deprecated objects in
BasicSimulator
(#13743) - Remove sort_key attribute from DAGNode (#13736)
- Drop support for 32bit x86 linux and windows (#13650)
- Remove
CXCancellation
(deprecated in 1.1) (#13426) - Remove
deprecate_function
anddeprecate_arguments
decorators (deprecated in 0.24) (#13448)
Fixed
- Fix qpy for
MCMTGate
(#14096) (#14118) - Consistent sparse list format in sparse operators (#14067) (#14110)
- Fix ignored errors/durations in
generate_preset_pass_manager
ifdt
is set (#14065) (#14098) - Fix global phase update in
BasisTranslator
Pass (backport #14078) (#14092) - Fixes to various graphs in the docs (#14055) (#14076)
- Fix deepcopy/pickle of
DAGCircuit
variable IO nodes (backport #14041) (#14044) - Introduce custom sympy srepr parser [stable/2.0] (#14023)
- Introduce custom sympy srepr parser [stable/1.4] (#14022)
- Preserve bit locations through pickle (backport #13980) (#14011)
- Fix string and standard gate mismatch in commutation checker (backport #13991) (#14004)
- Preserve bit locations through pickle (#13981)
- fix missing inverse definitions in
generate_basis_approximations
(#13517) (#13964) - fix missing inverse definitions in
generate_basis_approximations
(#13517) - Delegate
BasePass.__call__
toPassManager.run
(#13820) - Use average gate fidelity in the commutation checker (#13874)
- Add 2q fractional gates to the
ConsolidateBlocks
transpiler pass (#13884) - Fix qpy serialization of substitution of type
ParameterExpression
(backport #13890) (#13943) - Fix qpy serialization of substitution of type
ParameterExpression
(#13890) - Circuits with control flow now raise a proper error when
circuit_to_instruction
is called (#13921) - Propagate
DAGCircuit.name
inApplyLayout
(#13910) (#13920) - Propagate
DAGCircuit.name
inApplyLayout
(#13910) - Fixing definition method for
PyGate
andPyInstruction
(#13777) - Applying a slight perturbation for ill-conditioned matrices (#13882) (#13889)
- Applying a slight perturbation for ill-conditioned matrices (#13882)
- Fix incorrect stop time bug #8729 (#11097) (#13843)
- Fix incorrect stop time bug #8729 (#11097)
- Fix tracking of routing permutation in Sabre with disjoint backends (#13833) (#13835)
- Fix tracking of routing permutation in Sabre with disjoint backends (#13833)
- Consider
unit
inDelay
comparisons (#13816) (#13827) - Consider
unit
inDelay
comparisons (#13816) - Do not contract control-flow operations during
SabreSwap
(#13790) - Correctly updating global phase when removing gates that are identity up to a global phase (backport #13785) (#13825)
- Correctly updating global phase when removing gates that are identity up to a global phase (#13785)
- Fix
CommutationChecker
for 2q Pauli rotations (#13762) (#13804) - Fix
CommutationChecker
for 2q Pauli rotations (#13762) - Fix barrier label position when bits are reversed (#13780) (#13789)
- Fix barrier label position when bits are reversed (#13780)
- Fix
random_clifford
(#13606) (#13710) - Fix 4-pi periodicity of controlled rotations in the
CommutationChecker
(#13670) (#13676) - More conservative caching in the
CommutationChecker
(#13600) (#13677) - Fix 4-pi periodicity of controlled rotations in the
CommutationChecker
(#13670) - Fix an error in qasm3 exporter when operating on unitary gates (#13633) (#13663)
- Fix an error in qasm3 exporter when operating on unitary gates (#13633)
- Fix
PauliEvolutionGate
(using product formulas) for all-identity Pauli terms (#13634) (#13658) - Fix
PauliEvolutionGate
(using product formulas) for all-identity Pauli terms (#13634) - Fix
UnitarySynthesis
pass bug when target contains global gates (#13651) (#13656) - Fix
Target.instruction_supported
whentarget.num_qubits == None
(#13655) (#13657) - Fix
Target.instruction_supported
whentarget.num_qubits == None
(#13655) - Fix
UnitarySynthesis
pass bug when target contains global gates (#13651) - fix the 0 complex part (#13643) (#13646)
- fix the 0 complex part (#13643)
- Fix phase of
pauli_list.insert(..., qubit=True)
for length-1pauli_list
(#13624) (#13637) - Fix phase of
pauli_list.insert(..., qubit=True)
for length-1pauli_list
(#13624) - Allow mcrx, mcry and mcrz gate methods to accept angles of ParameterValueType (#13507)
- More conservative caching in the
CommutationChecker
(#13600) - Fix
UnitarySynthesis
for 3+ qubits when compiled for a backend (#13591) (#13619) - Only apply MCMT plugin on
MCMTGate
(#13596) (#13618) - Fix
UnitarySynthesis
for 3+ qubits when compiled for a backend (#13591) - Only apply MCMT plugin on
MCMTGate
(#13596) - Fix
random_clifford
(#13606) - Fix
SparsePauliOp
initialization with denseY
labels (#13580) (#13611) - Fix
SparsePauliOp
initialization with denseY
labels (#13580) - Fix behavior of n_local calling circuits for num_qubits=1 (#13523) (#13575)
- Fix behavior of n_local calling circuits for num_qubits=1 (#13523)
- Check for gate parameter (#12439)
- Discard cache for standard gates in
assign_parameters
(#13557) (#13559) - Discard cache for standard gates in
assign_parameters
(#13557) - Fix
.decompose
on control flow (#13545) (#13549) - Fix
.decompose
on control flow (#13545) - Fix registering
global_phase
parameters when creatingCircuitData
(#13538) (#13541) - Fix registering
global_phase
parameters when creatingCircuitData
(#13538) - Do not unroll gates in basis in
add_control
(#13475) (#13528) - Do not unroll gates in basis in
add_control
(#13475) - Fix
InverseCancellation
to run in classical blocks (#13454) (#13496) - Fix
InverseCancellation
to run in classical blocks (#13454) - Fix parameter handling for
NLocal(..., flatten=True)
and standard gates (#13482) (#13495) - Fix parameter handling for
NLocal(..., flatten=True)
and standard gates (#13482) - 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)
- HLS fix to not synthesize instructions already supported (#13417)
- Fix process-based non-determinism in
SparsePauliOp.to_matrix
(#13439) - Fix the calculation for identity operator's expectation value (#13345)