Qiskit Terra 0.20.0
Release Notes: https://qiskit.org/documentation/release_notes.html#terra-0-20-0
Changelog
Deprecated
- Need to remove max_credits (#7409)
- Deprecate SuzukiTrotter odd order (#7426)
- Reinstate and deprecate loose measure and reset functions (#7376)
Added
- Add qubit_properties to Target class (#7736)
- Make plot_gate_map generic for any backend (#7814)
- Make VF2Layout pass Target aware (#7735)
- Add BackendV2 mocked backend (#7643)
- Make GatesInBasis transpiler pass Target aware (#7548)
- Gradient Framework Update - Lin. Comb. for Imag Parts (#7632)
- Allow
ParameterExpression
values inTemplateOptimization
pass (#6899) - Separate State Preparation from Initialize (#7666)
- Reference implementation of Estimator and Sampler Primitives (#7780)
- DAGCircuit._copy_circuit_metadata is widely used and it should be public (#7803)
- Add XXMinusYYGate (#7799)
- Rework
BasisTranslator
for faster basis search. (#7211) - Replace AlignMeasures with ConstrainedReschedule for pulse alignment (#7762)
- Add an option to choose a framework to pauli.evolve(clifford) (#7683)
- Dynamical Decoupling pass with pulse alignment (#7760)
- Make marginal_counts act on Result memory (#7711)
- Make UnitarySynthesis transpiler pass Target aware (#7775)
- Add check for the
size
during transpiler optimization (#7542) - Make DenseLayout transpiler pass target aware (#7776)
- Moved and refactored
vqe._eval_aux_ops
method. (#7758) - Make ConsolidateBlocks transpiler pass target aware (#7778)
- dict-based
SparsePauliOp.simplify
(#7656) - Allow initializing
SparsePauliOp
s from index lists (#7401) - Allow callables as optimizers in VQE and QAOA (#7191)
- Add support for custom metadata serializers to QPY load() and dump() (#7550)
- Reimplement DenseLayout as a Parallel Algorithm in Rust (#7740)
- Replace pauli expectation value cython with multithreaded rust implementation (#7702)
- Implement multithreaded stochastic swap in rust (#7658)
- Parameters in InstructionDurations. (#7321)
- Define LinearFunction class and collect blocks of gates that make a LinearFunction (#7361)
- Use pulse configuration in fake Bogota, Rome, Manila and Santiago (#7688)
- Move QPY serializer to own module (#7582)
- Add fake backends for new IBM Quantum systems (#7392)
- Expose cutoff tolerances in
Z2Symmetries
(#7598) - Add Operator.from_circuit constructor method (#7616)
- Optimise
import qiskit
with lazy imports (#7525) - Expose
parameter_prefix
inZ(Z)FeatureMap
(#7590) - Merge paramterized u1, u2 and p gate in Optimize1qGates (#7579)
- Add
__repr__
to DAG nodes (#7559) - Add cross-build wheel jobs for ppc64le and s390x (#7549)
- Add support for Python 3.10 (#7102)
- Nesting FlowControllers to allow nested conditionals in pass manager (#6962)
- Add XYGate (#7164) (#7229)
- Add the dark version of the IQX color scheme (#7186)
Changed
- Add dummy extra for
CSPLayout
(#7842) - Make marginal_counts act on Result memory (#7711)
- Give
PauliEvolutionGate
s the same name-attribute for all instances (#7638) - Improve sum op equals (#7681)
- Split scheduling pass into scheduling and padding (#7709)
- Relocate mock backends from qiskit.test.mock to qiskit.mock (#7437)
- Implement multithreaded stochastic swap in rust (#7658)
- Add
__slots__
forBit
subclasses (#7708) - Use VF2Layout in all preset passmanagers (#7213)
- Rework
QuantumCircuit._append
and bit resolver (#7618) - Fix ASAP/ALAP scheduling pass (#7655)
- Bump minimum supported symengine version for built-in pickle support (#7682)
- Use
contract_nodes
from retworkx inDAGCircuit
. (#7665) - Use manylinux2014 on all Linux builds (#7566)
- Drop support for 32bit py310 wheel builds (#7553)
Removed
- Clean up old deprecation warnings in circuits module (#7011)
- Replace pauli expectation value cython with multithreaded rust implementation (#7702)
- Remove deprecated methods in
qiskit.algorithms
(#7257) - Remove deprecated pass_manager arg to transpile() (#7679)
- Remove probability_distributions module (#7562)
- Remove ParametrizedSchedule (#6949)
- Drop support for Python 3.6 (#7295)
Fixed
- Add equivalences from CX to CPhase+U and CRZ+U (#7013)
- Add simple symbol table to QASM 3 exporter (#7744)
- dict-based
SparsePauliOp.simplify
(#7656) - Add transpile() support for extracting instruction schedule map from BackendV2 (#7765)
- Fix HHL().construct_circuit() properly encoding the eigenvalues of certain matrixes (#7402)
- AmplitudeEstimator/Amplifier minor refactoring and docs. (#7752)
- Fix display of sidetext gates with conditions (#7673)
- Fix endianness in result.mitigator (#7689)
- Fix
partial_trace
when not removing subsystems (#7613) - Changes to readout mitigator tests (#7482)
- Fix phase management in
StabilizerState.expectation_value
(#7460) - Fix reverse_bits with registerless bits in all 3 circuit drawers (#7319)
- Fix gates with conditions alignment when folding in mpl drawer (#7545)
- Do not emit
IGate
fromPauliGate
andopflow.I
(#7569) - Fix QPY support for control flow instructions (#7584)
- Fix QuantumInstance compatibility with BackendV2 (#7563)
- Efficiently check
PauliSumOp
s for diagonality inCVaRMeasurement
(#7574) - Fix
PauliSumOp.permute
to not change the original object (#7339) - Fix qubit order for 2-qubit
LieTrotter
evolution synthesis (#7551) - Fix the inverse method of PauliEvolutionGate (#7524)
- Warn not error on overflow in QFT (#7541)
- Fix error in Target non-global operation method with ideal gates (#7554)
- Add durations of pulse gates from DAG calibrations (#7463)
- Check the existence of AncillaQubits before adding (#7450)
- Fix QI modifying input transpiled circuit on execute (#7484)
- Reject other QASM versions in QASM 2 parser (#7456)
- Improve error message in
DAGCircuit.draw
for invalid filenames (#7447) - Prevent duplicate bits in registers (#7510)
- Fix display of negative fractions in arrays (#7518)
- Fix display of register names with multiple underscores in mpl and latex drawers (#7459)
- Fix parameter order in VQE, if the ansatz is resized (#7479)
- Fix Bloch sphere with Matplotlib 3.3 and 3.4 (#7517)
- Give FakeOpenPulse2Q qubit T2 times and readout errors (#7425)
- Fix QPY serialization of no-op instructions (#7431)
- Fix registerless bit conditions in circuit_to_instruction (#7395)
- Fix register conditions in control-flow builders (#7389)
- Fix ParameterVector handling in QPY serialization (#7381)
- Fix InverseCancellation pass to handle gates of different names. (#7383)
- Add QPY serialization for PauliEvolutionGate (#7374)
- Reinstate and deprecate loose measure and reset functions (#7376)
- Fix copying control-flow bodies in builder interface (#7368)
- Fix circuit instruction conversion with loose bits (#7365)