Qiskit Terra 0.19.0
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()andfrom_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
CXCancellationoptimization 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.optimizebyOptimizer.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_parametersdocstring (#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
ScheduleBlockinexecute(#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
EvolvedOperatorAnsatzis 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_equaltonp.allclose(#6473) (#6644) - Fix
QuantumCircuit.assign_parametersdocstring (#6723) - Handle complex parameters and blueprint circuits in QPY (#6713)