Skip to content

Qiskit Terra 0.9.0

Compare
Choose a tag to compare
@mtreinish mtreinish released this 22 Aug 15:02
0.9.0

Changelog

Deprecated

  • The gates U and CX are being deprecated in favor of u3 and
    cx. (#2380)
  • The gate u0 is being deprecated in favor of using multiple id gates
    to insert delays (#2664)
  • The decorator requires_qe_access is being deprecated in favor of
    online_test.
  • The as_dict method of Qobj is deprecated in favor of to_dict. (#2556)

Added

  • A new pulse instruction, Delay. A Delay occupies a pulse channel for a
    duration of time, blocking other instructions from being inserted in this time. (#2869)
  • Ability to check for equality of pulse Schedule and Instruction. (#2873)
  • Added tests for gate_map and reference images for testing plot_gate_map
  • New CountOpsLongest analysis pass to retrieve the number of operations
    on the longest path of the DAGCircuit. (#2734)
  • Added sech and sech_deriv pulses in qiskit.pulse.pulse_lib.
  • The option vertical_compression was added to the text drawer and
    to the QuantumCircuit.draw method. The option allows to control
    how much room the text circuit drawing takes.
  • The option idle_wires was added to the drawers to control
    if wires without any operation should be included in the drawing. (#2692)
  • Introduced a visualization for the Pass Manager. (#2445)
  • New pulse schedule method Schedule.filter to filter by instruction
    channel, time, and type. (#2597)
  • Decomposition of arbitrary isometries (#2600)
  • Decomposition of diagonal gates (#2600)
  • Decomposition of multiplexed rotation gates (#2600)
  • Decomposition of multiplexed single-qubit unitaries (Option: decompose
    up to a diagonal gate) (#2600)
  • ZYZ decomposition for single-qubit unitaries (#2600)
  • Gray-Synth and Patel–Markov–Hayes algorithms for synthesis of
    CNOT-Phase and CNOT-only (linear) circuits (#2457)
  • Added n-qubit unitaries to BasicAer simulator basis gates (#2342)
  • Added a random_circuit function under qiskit.circuit.random
    (#2553)
  • Added equiv method to Operator and Statevector classes for
    testing if two objects are equivalent up to global phase (#2910)
  • Added output_name as a transpiler parameter to set the name of
    output circuits (#2745)
  • Simple expressions of Parameters can now be created via the four basic math
    operations (+,-,*,/). (#2537)
  • A ParmeterVector class has been added to ease the construction of circuits
    requiring a large number of parameters. (#2379)
  • dag.draw() method to visualize DAGCircuit objects (#3016)

Changed

  • Intervals are now defined by start and stop, rather than begin and end.
  • TimeslotCollections now are sorted by default and have more efficient merges.
  • Pulse samples are now clipped if their norm is between 1 and 1+epsilon.
    Otherwise an error is raised.
  • Schedule.instructions now returns with time-ordering.
  • More informative errors are now raised if qubit_lo_freq and
    meas_lo_freq are not supplied to assemble_schedules. (#2833)
  • pulse.samplers module has now been moved to pulse.pulse_lib.samplers. (#2881)
  • The number of memory slots required will now be inferred from the supplied
    schedules if memory_slots is not supplied.
  • All circuit drawers now express most commonly used fractions
    of PI (#2808).
  • Set default repetition time to be the first available.
  • Pulse commands may now start with capitalized letters.
  • The pylatexenc and pillow requirements are now optional. These
    are only used by the latex and latex_source circuit
    visualization backends. To continue using them ensure these are
    installed. (#2451)
  • When adding a register to a circuit, an error will now be raised if
    a register of the same name is already present. Previously, an error
    would only be raised if the same register was added twice.
  • Qubits and classical bits are not represented as a tuples anymore,
    but as instances of Qubit and Clbit respectively. (#2414)
  • The ApplyLayout pass is incorporated in all preset pass managers to
    delineate a virtual circuit from a physical circuit (#2672)
  • Mapping passes (CXDirection, Swap passes, CheckMap, CheckCnotDirection)
    now operate on a register-less circuit corresponding to
    an already embedded physical circuit. (#2672)
  • Replaces LegacySwap by faster, more stable StochasticSwap pass (#2672)
  • Uses level 1 by default as transpiler optimization level (#2672)
  • Change Snapshot signature to match simulator.snapshot (#2592)
  • DAGCircuit.width() formerly returned number of qubits, now returns total
    number of qubits + classical bits (#2564)
  • Functions assuming the former semantics of DAGCircuit.width() now call
    DAGCircuit.num_qubits() (#2564)
  • DAGCircuit.num_cbits() renamed to DAGCircuit.num_clbits() (#2564)
  • Changed definition of Cu3Gate to to equivalent to the canonical
    definition of a controlled U3Gate (#2755)
  • coupling_map now required to validate a backend.configuration() (#2836)
  • The method QuantumCircuit.count_ops now returns an OrderedDict instead of a dict.
  • If layout information is available in
    the circuit, it will be included to the circuit drawing. This can be removed
    using the option with_layout=False in the method
    QuantumCircuit.draw. (#2739)
  • Q-sphere visualization is enhanced and corrected (#2932)
  • Shorter CH gate definition involving only 1 CX (#2837)
  • Now PassManager.draw() (without any argument) will return an in-memory PIL image.

Removed

  • The ability to set the Timeslots for a pulse Instruction at initialization.
  • The previously deprecated functions
    qiskit.visualization.plot_state and
    qiskit.visualization.iplot_state have been removed. Instead use
    the specific functions for each plot type (#2325).
  • International documentation of outdated readme etc (#2302)
  • Removed deprecated options in execute, transpile, and assemble.
    Removed deprecated compiler.
  • Removed deprecated qcvv in tools. Removed deprecated converters
    qobj_to_circuits and circuits_to_qobj (#2301)
  • The previously deprecated qiskit._util module has been removed.
    Use qiskit.util instead. (#2329)
  • The logging tools in qiskit.tools.logging are removed. (#2387)
  • The qiskit.qiskiterror module has been removed. Please use
    qiskit.exceptions instead. (#2399)
  • Removed previously deprecated DAGCircuit methods (#2542)
  • Removed CompositeGate class, in favor of adding Instruction
    objects directly (#2543)
  • Removed ignore_requires and ignore_preserves options from
    PassManager (#2565).

Fixed

  • Fixes a bug where the CmdDef was getting built without buffers on channels.
  • Fixed bug in Pulse for multiple parameters being added (#2742)
  • Fixed bug in Pulse for CmdDef arguments (#2741)
  • Fixed bug in Operator and SuperOp for initializing from circuit
    containing gates without an explicit matrix definition (#2723)
  • Possible to decompose SU(4) gate into non-CNOT basis with
    TwoQubitDecomposer
  • Fixes a bug that removed id gates from circuit. id gates are
    like a wait command and will never be removed (#2663)
  • Fixed bug in CommutationAnalysis pass affecting conditional gates (#2669)
  • Fixed bug in measure sampling for BasicAer Qasm simulator if a qubit
    was measured into more than one classical bit (#2735)
  • Correctly serialize complex numbers with a nonzero real part
  • Fixed bug in measure sampling for BasicAer Qasm simulator if only a
    subset of qubits are measured (#2790)
  • Parameter objects can be serialized and communicated between
    sub-processes (#2429)
  • Parameterized circuits no longer need to be transpiled individually (#2864)