Skip to content

Qiskit Terra 0.19.0

Choose a tag to compare

@qiskit-bot qiskit-bot released this 06 Dec 19:43
· 4376 commits to main since this release
0.19.0
d5094ee

Changelog

Full release notes: https://qiskit.org/documentation/release_notes.html#terra-0-19-0

Deprecated

  • Fix arguments for RZXCalibrationBuilder and EchoRZXWeylDecomposition (#7331)
  • Add full deprecation warning to util.py (#7212)
  • Fix resource resolution in InstructionSet.c_if (#7255)
  • Deprecate MCMT label (#7161)
  • Migrate measure mitigation from ignis for QuantumInstance (#6867)
  • Switch PauliTable to PauliList in SparsePauliOp (#6826)
  • Deprecate the CouplingMap.subgraph() method (#6823)
  • Replace DAGNode class with OpNode, InNode, and OutNode classes (#6567)

Added

  • Readout mitigator classes (#6485)
  • Add control-flow builder interface (#7282)
  • Add BackendV2 abstract class (#5885)
  • Two-step transpilation for variational algorithms (#7217)
  • Implement Qdrift as ProductFormula (#7281)
  • Add add_bits parameter to QuantumCircuit.measure_all (#7305)
  • Rework RemoveFinalMeasurements pass (bug fixes) (#7196)
  • Adapted grover.amplify to omit is_good_state check in certain cases (#7302)
  • Approximate Quantum Compiler (#6727)
  • Make numeric casts of ParameterExpression flexible (#6802)
  • Add Instruction subclasses for control flow. (#7123)
  • Optimal Synthesis into RXX(theta) (#6551)
  • Add SparsePauliOp.sum (#7202)
  • VF2 Layout : The layout allocation as a subgraph isomorphism problem (#6620)
  • Improve performance of ConsolidateBlocks pass (#7185)
  • PauliEvolution gate (#6975)
  • Speed-up SparsePauliOp._add (#7138)
  • Implement a from_backend method for PassManagerConfig (#7163)
  • Reformatted the getter and setters of the VQE class (#7099)
  • Add indexing and inner product to Statevector (#7095)
  • Add CollectMultiQBlocks pass to find multiqubit blocks in a circuit (#4747)
  • Only execute TimeUnitConversion as needed in preset passmanagers (#6803)
  • QASM3 exporter (#6565)
  • Support Dict[str, OperatorBase] for aux_operators (fix #6772) (#6870)
  • Add GatesInBasis analysis pass (#6832)
  • Use eigh, eigsh in NumPyEigensolver (#6987)
  • EchoRZXWeylDecomposition Transpiler Pass (#6784)
  • Migrate measure mitigation from ignis for QuantumInstance (#6867)
  • Add min_qubits kwarg to UnitarySynthesis pass (#6349)
  • Add unitary synthesis plugin interface (#6124)
  • Fixes issue #6872, #6821 by adding finite control loops with flags (#6909)
  • Add QuantumCircuit.find_bit to find index and Registers for a Bit. (#6621)
  • Add hexagonal lattice CouplingMap (#7062)
  • Add from_heavy_hex() and from_heavy_square() generator methods to CouplingMap (#6959)
  • Fixed issue 5920 (#6294)
  • Feature: optimize 1Q gates by commutation and resynthesis (#6992)
  • filter_function for circuit.depth() and circuit.size() (#6998)
  • Use retworkx for substitute_node_with_dag (#6302)
  • add termination callback to SPSA (#6839)
  • allow negative eigenvalues in hhl (#6971)
  • Add the __repr__ method for Instructions (#6932)
  • fixed issue 6544 by propagating limit_amplitude to ParametricPulse classes (#6618)
  • Add pulse gate pass (#6759)
  • Generalize CXCancellation optimization pass to generic gate-inverse pairs (#6855)
  • Add drawing of Statevector using ket notation (#6154)
  • Detach prefix util function (#6885)
  • New plot_coupling_map(), like plot_gate_map() but without a backend (#6751)
  • Grouping commuting Pauli strings in quantum_info (#6690)
  • Added support for multiple image formats in QuantumCircuit.draw() (#6487)
  • Support non-float global phase in QPY (#6824)
  • Add fake backends for new IBM Quantum systems (#6808)
  • Replace DAGNode class with OpNode, InNode, and OutNode classes (#6567)
  • Add gate error and balanced objective to BIP mapper (#6778)
  • Ensure QNSPSA allows for batching (#6776)
  • Add qubit_subset option to BIPMapping pass (#6756)
  • Text drawer extended for drawing circuits with single classical bit conditioning (#6261)
  • implement coeffs method for SummedOp (Issue #5931), matching coeffs m… (#6610)

Changed

  • Define all for qiskit (#7274)
  • Switch default routing/layout method to sabre for opt level 3 (#7205)
  • Remove overrides of standard warning behaviour (#7204)
  • Bump minimum matplotlib version to 3.3.0 (#7175)
  • Only execute TimeUnitConversion as needed in preset passmanagers (#6803)
  • Improve number of qubit scaling for random_circuit() (#7030)
  • Stop casting numpy floats on ParameterExpression bind (#7014)
  • Replace Optimizer.optimize by Optimizer.minimize (#6866)
  • Improving default BIP pass (#6948)
  • More performance improvements for Collect2qBlocks (#6680)
  • Allow QuantumCircuit construction with zero qubit or clbit count (#6800)
  • Add type hints to gates and QuantumCircuit (#6831)
  • Respect backend defaults for BackendV1 path in execute() (#6693)
  • Exclude bip-mapper extra from all (#6843)
  • QuantumCircuit.decompose() does not take a single gate, but a set of gates to decompose. (#6587)

Removed

  • Remove deprecated operators of BaseOperator (#7291)
  • Remove deprecated code from pulse module (#7267)
  • Remove deprecated functionality from extensions, qasm, and dagcircuit modules (#7208)
  • Reformatted the getter and setters of the VQE class (#7099)
  • Remove deprecated schemas and validation modules (#6558)
  • Fix QuantumCircuit.assign_parameters docstring (#6723)

Fixed

  • Unroll3qOrMore before layout allocation stage in the levels 0, 1, and 2 (#7251)
  • Fix single clbit display in condition for all 3 circuit drawers (#7285)
  • Rework RemoveFinalMeasurements pass (bug fixes) (#7196)
  • Fix Hoare optimizer failure for successive gates of three (#7278)
  • Fix compatibility with Matplotlib 3.5 (#7301)
  • Return fast from transpile with empty input (#7288)
  • Fix pulse parameter formatter bug with symengine (#7265)
  • Fix resource resolution in InstructionSet.c_if (#7255)
  • Fix tapering of zero/empty operators (#7262)
  • Fix ZeroDivisionError in qiskit_backend_overview (#7260)
  • Fix decomposition of C3SXGate (#7230)
  • Fix permute issue in PauliSumOp (#7240)
  • Fix NLocal.add_layer (#7226)
  • Fix QAOA bugs (#7225)
  • Fix TypeError in PauliExpectation.compute_variance (#7169)
  • Speed-up SparsePauliOp._add (#7138)
  • Use default drawer style from config if unset (#7188)
  • Reformatted the getter and setters of the VQE class (#7099)
  • Make qasm output valid gate names to fix #7052 (#7157)
  • HHL QuantumInstance getter/setter fix. (#7168)
  • Remove calibration circuits results in QuantumInstance execute (#7140)
  • Fix #7006 by tracking availability of clbits in scheduling (#7085)
  • Fix usage of deprecated sympy method expr_free_symbols() (#7117)
  • Fixing gates unrolling for gradients. (#6918)
  • Fix QAOA parameter handling (#6828)
  • Small improvement QFT code (#6887)
  • Fix 1Q gate errors in plot_error_map (#7037)
  • Handle ScheduleBlock in execute (#7019)
  • Allow binding complex values to parameters in Opflow coefficients (#6977)
  • Avoid configuring pulse defaults in circuit assembly unless needed (#7047)
  • Fix ConfigurableFakeBackend.name (#7022)
  • MPL drawer extended for drawing circuits with single classical bit conditioning (#6259)
  • Fix display of registerless bits in all drawers and change display of one-bit registers (#6942)
  • Fix decomposing empty gates (#6997)
  • Fix measure with condition display in mpl and latex drawers (#6822)
  • Fix PiecewiseChebyshev for constant functions (#6707)
  • Modify copy of instruction in .qasm() method (fix #6687) (#6952)
  • Fix instmap pickle bug in Python3.6 (#6950)
  • Correctly handle parametric pulse assemble() kwarg if empty list (#6922)
  • Fix registerless bit naming collisions in QASM (#6856)
  • Fix mpl circuit drawing duplication in ipykernel 6 (#6890)
  • Change float to complex for return from ParameterExpression gradient (#6847)
  • Fix 'ax' and 'figwidth' options to mpl drawer (#6675)
  • Build aarch64 wheels in github actions with QEMU emulation (#6844)
  • Fix QNSPSA settings (#6818)
  • Handle single bit conditions in QPY (#6775)
  • Fix JupyterLab compatibility with job watcher widget (#6598)
  • Fix subgraph handling of non-contiguous nodelist argument (#6738)
  • Ensure a non-parameterized global phase in EvolvedOperatorAnsatz is a float (#6792)
  • Fix CompleteMeasFitter not imported in QuantumInstance (#6782)
  • Add circuit calibrations to disassembler (#5661)
  • Fixes circuit_to_instruction() method for circuits containing single bit conditions (#6537)
  • Fix fake backend kwargs (#6743)
  • Change operator comparison from np.array_equal to np.allclose (#6473) (#6644)
  • Fix QuantumCircuit.assign_parameters docstring (#6723)
  • Handle complex parameters and blueprint circuits in QPY (#6713)