Qiskit Terra 0.17.0
Changelog
Deprecated
- Deprecate Bit.index and Bit.register (#6069)
- ScheduleBlock 3/4 - add ScheduleBlock (#5854)
- Deprecate probability distribution circuits (#6080)
- Deprecate circuit.combine and circuit.extend (#4208)
- Deprecate matmul and mul in qinfo (#5834)
- Improved Pauli operator class (#5261)
- Allow process fidelity to work with a non-unitary target channel (#5339)
- Optimize allocated qubits in arithmetic circuits (#5332)
- Deprecate Python 3.6 support (#5301)
- Migrate qiskit.util module to qiskit.utils (#5420)
- Deprecate schemas in qiskit-terra (#5262)
Added
- ScheduleBlock 3/4 - add ScheduleBlock (#5854)
- Boolean expression object (#5830)
- Overload & and ^ for ciruit.compose and circuit.tensor (#6065)
- Migrate basic aer provider to new versioned interface (#5128)
- add ECR gate and approximation_degree option (#5609)
- Add documentation guide on writing a provider (#5406)
- Enable parallel_map on windows (#3547)
- Add fake backends for new IBM Quantum devices (#6021)
- Add additional basis gates rz, sx, x to basicaer. (#6022)
- Implemented Random Shuffling in CSPLayout (#5994)
- new 16Q device map (#6013)
- Transfer the CNOTDihedral Operator class (#5442)
- Improved Clifford synthesis method (#5779)
- Add reverse_qargs to Operator (#5970)
- Add simplify of U3->U1/U2 in OneQubitEulerDecomposer (#5554)
- Add calibrations with the TemplateOptimization (#5752)
- Allow passmanager.append(flowcontroller) instead of passes (#5772)
- Clifford templates (#5769)
- Easier way to call a pass on a circuit (#5503)
- Enable user defined cost dict for templates (#5521)
- Issue 5549 template matching (#5550)
- More efficient C3X implementation (#5668)
- Add
PauliTwoDesignto the circuit library (#5552) - Add
reverse_qargstoStatevectorandDensityMatrix(#5464) - Amplitude Estimation algorithms (#5517)
- Improve decomposition of (multi-)controlled-z (#5572)
- Add PiecewiseChebyshev arithmetic circuit (#5364)
- Add readout_length to backend properties (#5516)
- Improved Pauli operator class (#5261)
- Allow process fidelity to work with a non-unitary target channel (#5339)
- Add metadata attribute to QuantumCircuit (#5270)
- routing_method='none' and Error pass (#5274)
- Allow specifying the last interval in PiecewisePolynomialPauliRotations (#5480)
- Add environment variable for number of procs in parallel_map (#5384)
- ParameterExpression.eq takes bounded expr == value (#5444)
- Add support for circuits and labels in Statevector.equiv (#5215)
- Add integer option to initialize to init using bitmap (#5418)
- Add support for Python 3.9 (#5189)
- Added meas_level and meas_return for circuit jobs (#5452)
- Gradient functionality for parameter expressions (#5181)
- Support complex parameters (#5192)
- Add R(v) gate; rotation wrt rotation vector (#5336)
- Add circuit.tensor (#5295)
- Add PiecewisePolynomialRotations and InverseChebychev to the circuit library (#5219)
- Add user config file options to control parallel execution (#5324)
- fixed issue 3908 by adding trigonometric functions to ParameterExpres… (#4854)
- allow Initialize from labels (#5229)
- Adding Pauli to the standard gate library (#5153)
Changed
- ScheduleBlock 3/4 - add ScheduleBlock (#5854)
- Set sympy.evaluate(False) on frequent code paths for phase tracking. (#6072)
- Migrate basic aer provider to new versioned interface (#5128)
- Added reverse_bits parameter to plot_bloch_multivector() (#5959) (#6014)
- Deprecate matmul and mul in qinfo (#5834)
- QFT little endian (#4849)
- Name-ordered circuit parameters (#5759)
- Make Register and Bit hashed attrs immutable (#5867)
- quantum_info.operator mixin interface refactor (#5617)
- Wrap qiskit.Aer and qiskit.IBMQ with lazy loading object (#5619)
- Change ParameterExpression eq to sympy equals() (#5760)
- Add a lazy loading wrapper class for qiskit_version (#5620)
- ScheduleBlock 1/4 - remove timeslot dependency from instruction (#5681)
- Create explicit C3XGate/C4XGate in MCXGrayCode (#5601)
- Log warning instead of raise exception in channel measures (#5594)
- better initial_layout validation (#5526)
- EquivalenceLibrary.draw to return SVG instead of PNG. (#5355)
- Improved Pauli operator class (#5261)
- Do not execute CSPLayout if layout_method is set in transpile (#5495)
- Add
__array__method toGateandquantum_infoclasses (#5402) - allow statevectors to be parameter in initialize (#5190)
- Move
Quaternionfrom operators to synthesis (#5449) - Add user config file options to control parallel execution (#5324)
- Register or QuantumCircuit raises when an ambiguous non-integer gets passed to (#4858)
Removed
- Remove deprecated interactive visualizations (#5991)
- Remove circuit methods deprecated in 0.14.0 (#5948)
- Wrap qiskit.Aer and qiskit.IBMQ with lazy loading object (#5619)
- Remove deprecated pulse code (#5564)
- passmanager(..., callback=...) parameter removed (#5522)
- Migrate ApproximateTokenSwapper to only use retworkx and make networkx optional (#5471)
- Remove deprecated DAGCircuit.qubits() and .clbits() methods. (#5433)
- Remove deprecated quantum_info methods (#5439)
Fixed
- no full scheduling of circuits with delay unless explicitly requested (#6084)
- Fix RecursionError in SummedOp.to_pauli_op() and enhance PauliOp.tensor(), PauliSumOp.tensor() (#6111)
- Properly clear parameter table on remove_final_measurement (#6109)
- Fix TaperedPauliSumOp.to_matrix_op() (#6102)
- Fix CalibrationBuilder (#6067)
- Fix condition in BasisTranslator and change node.condition to @Property (#6040)
- Enable consolidate blocks to to work with single gate blocks (#6024)
- Fixes QASM parser to handle U (#6077)
- Subcircuits with classical wires stay right of measures (#5958)
- Update interpretation of meas_map in Qiskit (#5971)
- fix plot_state_city if only real axis is specified (#6015)
- Remove delays from Acquire Channels (#6000)
- fix unique circuit names when binding parameters (#5851)
- Remove DagNode.hash() (#5979)
- make commutative_cancellation basis aware (#5672)
- fix for permutation circuit (#5813)
-
- Added left hand side calibrations carry over with + operator. (#5946)
- Fix to carry over calibrations with iadd and add (#5910)
- fix global phase in Instruction.inverse (#5925)
- Fix circular entanglement edge case in
NLocal(#5884) - fix qasm output with open controlled gates (#5688)
- Fixed inconsistency in gate names between text and matplotlib backends (#5360)
- Fix marginal_counts incorrect creg_sizes with Result object and add format_marginal kwarg (#5490)
- Fix parameter handling in global phase (#5807)
- clean classical bits after QuantumCircuit.remove_final_measurements (#5808)
- Global phase in TwoQubitBasisDecomposer (#5764)
- Fix incorrect durations in scheduled circuit (#5778)
- Fix handling of classical bits in timeline drawer and non-treament of delay as idle time (#5662)
- Fix incorrect qargs setting in sabre_swap (#5749)
- Raise if attempting to convert parameterized circuit to qasm. (#5705)
- add matrix rep for delay instruction (#5704)
- Update the definition of the Hellinger fidelity (#5595)
- Add unroll step to level2 passmanager optimization loop (#5671)
- Fix global phase tracking around DAGCircuit.substitute_node. (#5618)
- Fix U2Gate decomposition in QuantumCircuit.u2 deprecation message. (#5660)
- Fix global phase in OneQubitEulerDecomposer using PSX and ZSX basis and in Diagonal gate (#5474)
- Fix & refactor the linear combination of unitaries gradients (#5501)
- Output transpiled circuit in dt (#5563)
- Propagate Pauli phase when evaluating PauliOp (#5602)
- Unroll parametervectors in circuit.execute (#5593)
- Avoid collecting non atomic nodes in 1q runs (#5570)
- Fix global phase handling in circuit.repeat (#5588)
- Use actual gate name in backend monitor (#5546)
- Fix quantum Fisher information computation based on overlap (#5508)
- Add ZSX Euler basis to UnitarySynthesis pass. (#5583)
- Durations populated from calibrations (#5562)
- Test calling BlueprintCircuit.to_instruction directly after construction (#5544)
- Fix unbound template parameters in template substitution (#5534)
- Conditionals must display to the right of measures using the same register (#5397)
- Fixed handling of "decimals" parameter by updating format_statevector and format_unitary (#5347)
- Add missing layout data for ibmq_casablanca. (#5492)
- Fix compensate_phase of pulse.builder.frequency_offset (#5489)
- [Issue 5304]: Typecast to float only if bound to parameters (#5455)
- Convert delays to instructions when assembling (#5481)
- Bug fix to ensure that calibrations are carried over by circuit compose (#5396)
- Optimize allocated qubits in arithmetic circuits (#5332)
- Make optimize_1q_gates U and P aware (#5429)
- Honor initial_layout when coupling map is None (#5346)
- transpile singleton (#5298)
- conditional wires are draw as classical wires in text circuit drawer (#5206)
- Remove lone identity gates in Optimize 1q decomposition pass (#5292)
- fix hash bug (#5379)
- fix hasattr in get_options (#5370)
- Add ZSX basis to one qubit decomposition and optimization pass (#5314)
- Fix bug in quantum channel subtraction (#5343)
- Fix global phase tracking for Unroller, OneQubitEulerDecomposer, and ControlledGate (#5248)
- Fix qubits indexing in Statevector._evolve_instruction (#5286)
- Fix display of backend name in Result.repr (#5284)
- Fix bug: execute valid circuits built with delays (#5302)
- Fix issue with frequency change visualization. (#5253)
- classical_function decorator to handle parsing indented define. (#5288)
- Fix C4XGate QASM definition. (#5265)
- Restore using aqua from release for tutorials job (#5246)