Qiskit-terra

Latest version: v0.46.3

Safety actively analyzes 683530 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 14 of 21

0.10.0

Changelog
Deprecated
- Deprecate passing in an ast node as a instruction parameter (3240)
- add instruction.control deprecation release notes (3188)
- Deprecate allowing extra keys in circuit drawer style dict (3105)
- Deprecate Bit-tuple equality check (3040)

Added
- Add support for partial results to Result class (3217)
- Add initial support for working with ion-trap devices (3214)
- Add ax kwarg to matplotlib visualization functions (3053)
- Add QV info to backend monitor and overview (3141)
- Add new passmanager.replace(index, ...) method (3004)
- Add measure_all, measure_active, remove_final_measures methods (2993)
- Add float exponentiation for Gates (2811)
- Add negation support for Parameter class. (3148)
- add rxx gate (3113)
- One qubit Euler basis decomposer (3115)
- add snapshot of real calibration data to mock backends (3060)

Changed
- average_data can be imported from qiskit.quantum_info.analysis (3159)
- "fold" option unified across circuit drawers (3108)
- Add DAGCircuit.substitute_node for single node replacement. (3145)
- Validate input when setting the QuantumCircuit data attribute directly (2838)
- Only close mpl figures in jupyter with inline backends (3051)

Removed
- Remove deprecated device specs (2 months ago) (3033)
- Remove deprecated schedule ops (3034)

Fixed
- Modified rzz visualization in latex circuit drawer to match cu1 (3155)
- Fix circuit drawing justification (3061)
- Fix for 3106 gatefacecolor key on circuit diagrams (3137)
- Fix a syntax error in QuantumCircuit.mirror. (3138)
- Fix mpl conditional drawing (3032)

0.9.1

Changelog
Fixed
- Fix for 3106 gatefacecolor key on circuit diagrams (3137) (3142)
- Fixed classical registers drawing offset (3081)
- Fix mpl conditional drawing (3032) (3049)

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 `Timeslot`s 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)

0.8.2

Changelog
=========

Fixed
-----

- Fixed an issue with latex circuit drawer backend that could lead to an
empty image output (2531)
- Fixes for issues with the backend monitors for recent changes to IBMQ
backends (2637)
- Fixed an issue where a ``TimeSlotCollection`` object would be mutated
by the ``is_mergable_with()`` method (2639)

0.8.1

Changelog
=========

Fixed
-----

- Corrected the deprecation warning message for
``qiskit.converters.qobj_to_circuits`` (2350)
- Fixed ``execute()`` and ``transpile()`` functions to enable setting
optimization level 0. (2370)
- Set the swapper with the seed transpiler for optimization level 2 and 3
(2361)
- Fix default basis gate set for other transpiler passes (2357)
- Fix the docstring for transpile to include optimization_level 3 (2367)
- Fix spacing in the text circuit drawer (2382)
- Fix for too strict math sanitization pulse instructions (2397)
- Arugments to ``assemble_schedule`` were not actually optional, ensure
they're required (2398)
- Fix for framchange instructions being converted to a string instead of a
float (2437)
- Fix for rep_times as a float, now it's an integer (2438)
- Fix type error for integer framechange instructions (2458)
- Fix for missing cython source files in sdist (2436)
- Fix for different pulse schedules created with the same name (2431)
- Only create a single AquireInstruction for all qubits (2485)
- Stop modifying layout in stochastic swap pass (2507)
- Only call CXDirection pass on optimization_level=3 if coupling map is
provided (2526)
- Fix optimization_level=0 without a coupling map (2509)

0.8.0

[0.8.0](https://github.com/Qiskit/qiskit-terra/compare/0.7.2...0.8.0) - 2019-05-02
=====================


Added
-----

- Added exact and approximate decomposition of SU(4) to arbitrary supercontrolled basis
- Introduced schedule lo configuration. (2115)
- Introduced pulse schedule assembler. (2115)
- Builtin library of continuous pulses and builtin library of discrete pulses which are obtained
by sampling continuous pulses with default sampling strategy.
- Sampler decorator and standard sampler library for conversion of continuous pulses
to discrete ``SamplePulse`` (2042).
- Core StochasticSwap routine implimented in Cython (1789).
- Added QuantumChannel classes SuperOp, Choi, Kraus, Stinespring, PTM, Chi to
quantum_info for manipulating quantum channels and CPTP maps.
- Added Operator object to quantum_info for representing matrix operators.
- Introduced the backend defaults model and endpoint for pulse backends (2101).
- `meas_level` to result schema (2085).
- Core StochasticSwap routine implemented in Cython (1789).
- New EnlargeWithAncilla pass for adding ancilla qubits after a Layout
selection pass (1603).
- New Unroll2Q pass for unrolling gates down to just 1q or 2q gates (1614).
- Added support for register slicing when applying operations to a register (1643).
- Added in new parameter ``justify`` to the text, mpl and latex circuit drawers to say how the
circuit should be aligned. (1725, 1797, 1977)
- Added function for purity of a mixed state in ``qiskit.quantum_information``
(1733)
- Added parameter to the TextProgressBar to allow the output to be sent to a
different output stream
- Added a ``__qiskit_version__`` parameter to the qiskit namespace. This will
contain a dictionary of versions for all installed qiskit elements. (1885).
- Added a ``RunConfig`` object for configurations related to running an
experiment (e.g. shots, memory) (1856)
- Added a ``TranspileConfig`` object for configurations related to transforming
circuits (e.g. basis_gates, coupling_map, initial_layout) (1856)
- Added a ``qiskit.compiler`` namespace for all functions that transpile, schedule
and assemble circuits and pulses (1856)
- Added support for passing a list of ``basis_gates``, ``coupling_map`` etc. to the
``qiskit.compiler.transpile()`` function, each corresponding to one of the circuits (2163)
- Added a ``qiskit.compiler.assemble_circuits()`` function to generate qobj from some
circuits and a RunConfig (1856)
- ``execute()`` and ``assemble()`` allow setting a qobj_header, of type
QobjHeader or dict, to add extra information to the qobj (and thus result).
- Register indexing supports negative indices (1875)
- Added new resource estimation passes: ``Depth``, ``Width``, ``Size``, ``CountOps``, and
``NumTensorFactors``, all grouped in the ``ResourceEstimation`` analysis pass.
- Added ``nodes_on_wire()`` to DAGCircuit which returns an iterator over all the
operations on the given wire
- Added new properties to an Instruction:
``num_qubits``, ``num_clbits`` (1816).
- Added a ``QuantumCircuit.append`` public method for appending arbitrary instructions
to some qubits and clbits in the circuit (1816).
- Added an ``Instruction.definition`` property that defines a composite instruction
in terms of other, simpler instructions (1816).
- Added an ``Instruction.mirror()`` method that mirrors a composite instruction
(reverses its sub-instructions) (1816).
- Added an ``PassManager.passes()`` method that returns a list of the passes that
have been added to the pass manager, including options and flow controllers.
- Added a ``PassManager.run()`` that transforms a ``QuantumCircuit`` according to its
pass schedule and returns a ``QuantumCircuit``.
- Added a ``qiskit.quantum_info.random`` for generating random states, unitaries, etc (2119).
- Added a ``qiskit.quantum_info.synthesis`` for algorithms that synthesize circuits (2119).
- Added a ``NoiseAdaptiveLayout`` pass to compute a backend calibration-data aware initial
qubit layout. (2089)
- Gates and instructions in a circuit accept integers as parameters to refer to
wires instead of named bits.
- Added a ``OptimizeSwapBeforeMeasure`` pass that removes the swap gates when they
are followed by a measurement instruction, moving the latter to the proper wire. (1890)
- Added a ``RemoveDiagonalGatesBeforeMeasure`` pass that removes the diagonal gates when they
are followed by a measurement instruction. (2208)
- Added a ``CommutativeCancellation`` pass that cancels self-inverse gates and combines
rotations about the Z axis, leveraging previously-found gate commutation relations. (2012)
- Add an option for using a user config file to enable changing default
settings for various functions in qiskit. Right now it only supports setting
the default circuit drawing backend. (2122)
- Added a ``Collect2qBlocks`` pass that analyzes the circuit for uninterrupted sequences
of gates (blocks) acting on 2 qubits. (2134)
- Added a ``ConsolidateBlocks`` that turns previously-collected blocks of any size
into equivalent Unitary operators in the circuit. (2134)
- Added support for parameterized circuits. (2103)
- Added preset PassManagers that offer predetermined pipelines of transpiler passes. (2163)

Changed
-------

- require scipy>=1.0, use `scipy.stats.unitary_group.rvs` for `random_unitary()`.
- two_qubit_kak decomposition works with Operator or raw matrix input objects.
- process_fidelity works with QuantumChannel and Operator object inputs.
- Backend defaults values are no longer required (2101).
- QuantumCircuit properties more self-consistent and no longer need DAG (1993).
- The most connected subset in DenseLayout is now reduced bandwidth (2021).
- plot_histogram now allows sorting by Hamming distance from target_string (2064).
- FunctionalPulse is no longer a class and instead is a decorator, `functional_pulse`
that returns a `SamplePulse` when called. (2043)
- Changed ``average_data`` to accept observable input in matrix form (1858)
- Change random_state to take in dim over number of qubits (1857)
- The ``Exception`` subclasses have been moved to an ``.exceptions`` module
within each package (for example, ``qiskit.exceptions.QiskitError``) (1600).
- The ``QiskitTestCase`` and testing utilities are now included as part of
``qiskit.test`` and thus available for third-party implementations, with
convenience test cases for providers and backends. (1616, 1844)
- The snapshot instruction now takes ``label`` and ``snap_type`` instead of
``slot`` (1615).
- The test folders have been reorganized to match the python modules (1625)
- The circuits_to_qobj no longers uses the unrollers (1629)
- The previously deprecated default output of ``circuit_drawer()`` (using latex
and falling back to mpl) is no longer present. Instead the default output
is the ascii art ``text`` output backend.
- Changed param to params in Instruction (1665).
- ``dag_drawer`` and ``plot_gate_map`` are available via importing
``qiskit.tools.visualization``. They will raise at the point of use, if
dependencies are not installed (1669).
- The ``qiskit.validation`` schemas are now strict and raise a more specific
``ModelValidationError`` (1695).
- The default transpile pipeline will now add a barrier before the set of
final measurements when compiling for both simulators and devices (1591).
- Purity function in ``qiskit.tools.qi.qi`` calls new version in
``qiskit.quantum_information`` and issues deprecation warning (1733)
- Updated `dag.node_counter` to return the current number of nodes (1763)
- The argument ``basis_gates`` used in ``compile``, ``execute``, and ``transpile``
is not longer a comma-separated string but a list of strings. For example,
this basis ``['u1','u2','u3','cx']`` should be used instead of ``'u1,u2,u3,cx'``
(1333)
- Methods on the ``DAGCircuit`` which previously returned node_ids and/or dicts now
return ``DAGNodes``
- The ``Qobj`` classes have been reimplemented using models and schemas, as the
rest of spec-defined entities. (1909).
- The rzz gate is now represented as a line when printed in text (1957).
- Text drawer has support for multi-q gates (1939).
- Separate ``Qobj`` into ``PulseQobj`` and ``QasmQobj`` (1969).
- It is possible to define a layout as a list of integers. This maps the ordered list
of virtual circuit qubits to physical qubits as defined by the list of integers (1946).
- Instructions no longer have context about where they are in a circuit. Instead,
the circuit keeps this context. So Instructions are now light-weight and only
have a name, num_qubits, num_clbits and params (1816).
- The old syntax for attaching a gate to the circuit then modifying it is no longer
supported (e.g. ``circuit.s(qr).inverse()`` or ``circuit.s(qr).c_if(cr, 4)``).
Instead, you must first modify the gate then attach it (1816).
- ``QuantumCircuit.data`` now contains a list of tuples, where each tuple is a
(instruction, qarg, carg) (1816).
- The visualization subpackage has moved from ``qiskit.tools.visualization`` to
``qiskit.visualization``. The public API (which was declared stable in
the 0.7 release) is still accessible off of ``qiskit.tools.visualization``.
(1878)
- Layout object can now only be constructed from a dictionary, and must be bijective (2157).
- ``transpile()`` accepts ``initial_layout`` in the form of dict, list or Layout (2157).
- Not specifying a basis in ``execute()`` or ``transpile()`` no longer defaults to unrolling
to the ['u1', 'u2', 'u3', 'cx'] basis. Instead the default behavior is to not unroll,
unless specifically requested (2166).
- Instruction.copy() is now a shallow copy instead of deep (2214)
- Layout and CouplingMap classes are now accessible from qiskit.transpiler (2222).

Deprecated
----------

- The methods prefixed by `_get` in the DAGCircuit object are being renamed
without that prefix (see 1346)
- Changed elements in ``couplinglist`` of ``CouplingMap`` from tuples to lists
(1666).
- Unroller bases must now be explicit, and violation raises an informative
``QiskitError`` (1802).
- The ``qiskit.tools.qcvv`` package is deprecated in favor of Qiskit Ignis (1884).
- The ``qiskit.compile()`` function is now deprecated in favor of explicitly
using the ``qiskit.compiler.transpile()`` function to transform a circuit followed
by ``qiskit.compiler.assemble()`` to make a qobj out of it.
- ``qiskit.converters.qobj_to_circuits()`` has been deprecated and will be
removed in a future release. Instead
``qiskit.compiler.disassemble_circuits()`` should be used to extract
``QuantumCircuit`` objects from a compiled qobj. (2137)
- The ``qiskit.transpiler.transpile()`` function is deprecated in favor of
``qiskit.compiler.transpile()`` (2166).
- The ``seed_mapper`` argument in ``transpile()`` and ``execute()`` is deprecated in favor of
``seed_transpile()``, which sets the seed for all stochastic stages of the transpiler (2166).
- The ``seed`` argument is ``execute()`` is deprecated in favor of ``seed_simulator`` (2166).
- The ``pass_manager`` argument in ``transpile()`` is deprecated. Instead, the
``pass_manager.run()`` methdod can be used directly to transform the circuit (2166).
- The ``qiskit._util`` module is deprecated and replaced by ``qiskit.util``.
``qiskit._util`` will be removed in the 0.9 release. (2154)

Fixed
-----

- Fixed 1892, whereby inheriting from QuantumRegister or ClassicalRegister would
cause a QiskitError in instruction.py (1908).
- Fixed 829 by removing dependence on scipy unitary_group (1857).
- Fixed a bug with measurement sampling optimization in BasicAer
qasm_simulator (1624).
- Fixed a bug where barriers didn't plot over all qubits when using matplotlib (1718).
- Fixed a minor conda env bug in Makefile (1691).
- Fixed a bug in BasicMapper pass operating over multiple registers (1611).
- Fixed a bug in BarrierBeforeFinalMeasurements which incorrectly moved measurements
used in conditional operations (1705).
- Fixed a bug that with transpile ignoring initial layout when
coupling map is provided (1711).
- Fixed a bug in the definition of the rzz gate (1940).
- Fixed a bug in DAGCircuit.collect_runs() that did not exclude conditional gates (1943).
- Fixed a mapping issue with layouts on non-adjacent qubits, by adding ancillas (2023).
- Fixed a bug in which an `initial_layout` could be changed even if it made the circuit
compatible with the device `coupling_map` (2036).
- Fixed ``qobj_to_circuits`` for circuits that contain initialize instructions
(2138)


Removed
-------

- The previously deprecated functions ``plot_circuit()``,
``latex_circuit_drawer()``, ``generate_latex_source()``, and
``matplotlib_circuit_drawer()`` from ``qiskit.tools.visualization`` have
been removed. The ``circuit_drawer()`` function from the same module should
be used instead.
- The previously deprecated keys ``plot_barriers`` and ``reverse_bits`` keys in
the ``style`` kwarg dict are deprecated, instead the
``qiskit.tools.visualization.circuit_drawer()`` kwargs ``plot_barriers`` and
``reverse_bits`` should be used instead.
- Removed the wrapper folder as part of the post 0.7 cleanup (1613).
- Removed the python wrappers of the legacy simualtors now that
Qiskit Aer is out (1615).
- Removed simulator instructions ``save``, ``load``, ``wait``, ``noise``
as unsupported in Aer (1615).
- Removed circuit.add as deprecated (1627)
- Removed the unroller (1629)
- Removed deprecated ``result`` methods (1659)
- Removed deprecated ``couplingdict`` kwarg from ``CouplingMap`` (1666)
- Removed deprecated ``transpile_dag()`` ``format`` kwarg (1664)
- Removed deprecated ``Pauli`` ``v``, ``w``, and ``pauli_group`` case arg as int (1680)
- Removed deprecated ``state_fidelity()`` function from ``tools.qi`` (1681)
- Removed ``QISKitError`` in favor of ``QiskitError``. (1684)
- The IBMQ provider (``qiskit.providers.ibmq``) has been moved to its own
package (``pip install qiskit-ibmq-provider``). (1700)
- ``compiled_circuit_qasm`` has been removed from the Qobj header, since it
was part of the pre-qobj specification (1715).
- Removed the wigner plotting functions ``plot_wigner_function``,
``plot_wigner_curve``, ``plot_wigner_plaquette``, and ``plot_wigner_data``
(1860).
- Removed ``Instruction.reapply()`` method (1816).

Page 14 of 21

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.