Skip to content

Qiskit Terra 0.17.0

Choose a tag to compare

@qiskit-bot qiskit-bot released this 01 Apr 15:39
· 4902 commits to main since this release
0.17.0
ce15f8a

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 PauliTwoDesign to the circuit library (#5552)
  • Add reverse_qargs to Statevector and DensityMatrix (#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 to Gate and quantum_info classes (#5402)
  • allow statevectors to be parameter in initialize (#5190)
  • Move Quaternion from 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)