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)