<commit_before># Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog].

> **Types of changes:**
>
> -   **Added**: for new features.
> -   **Changed**: for changes in existing functionality.
> -   **Deprecated**: for soon-to-be removed features.
> -   **Removed**: for now removed features.
> -   **Fixed**: for any bug fixes.
> -   **Security**: in case of vulnerabilities.

## [UNRELEASED]

### Fixed
-   Fixed a bug in drawing conditional gates with matplotlib circuit drawer.

### Changed
-   Returned `matplotlib.figure.Figure` objects are only closed in jupyter
    notebooks configured with an inline backend (\#3051)

### Removed

-   Removed `DeviceSpecification` in favor of `PulseChannelSpec`. (\#3033)
-   Removed deprecated `ops.py` from pulse. Use `Schedule` and `Instruction`
    methods directly.

## [0.9.0] - 2019-08-22

### Deprecated

-   The gates `U` and `CX` are being deprecated in favor of `u3` and
    `cx`.
-   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`.

### Added

-   Added in tests for `ccx` and `crz` under `test_gate_definitions`. (\#2964)
-   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.
-   Ability to check for equality of pulse `Schedule` and `Instruction`.
-   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.
-   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.
-   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

-   `Schedule.instructions` now returns with time-ordering.
-   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`.
-   `pulse.samplers` module has now been moved to `pulse.pulse_lib.samplers`.
-   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.
-   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.
-   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
    `qiksit.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)<commit_msg>Updated CHANGELOG (#3078)<commit_after># Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog].

> **Types of changes:**
>
> -   **Added**: for new features.
> -   **Changed**: for changes in existing functionality.
> -   **Deprecated**: for soon-to-be removed features.
> -   **Removed**: for now removed features.
> -   **Fixed**: for any bug fixes.
> -   **Security**: in case of vulnerabilities.

## [UNRELEASED]

### Fixed
-   Fixed a bug in drawing conditional gates with matplotlib circuit drawer.

### Changed
-   Returned `matplotlib.figure.Figure` objects are only closed in jupyter
    notebooks configured with an inline backend (\#3051)

### Removed

-   Removed `DeviceSpecification` in favor of `PulseChannelSpec`. (\#3033)
-   Removed deprecated `ops.py` from pulse. Use `Schedule` and `Instruction`
    methods directly. (\#3034)

## [0.9.0] - 2019-08-22

### 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

-   Added in tests for `ccx` and `crz` under `test_gate_definitions`. (\#2964)
-   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. (\#2870)
-   TimeslotCollections now are sorted by default and have more efficient merges. (\#2870)
-   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)
{'fraction_non_alphanumeric': 0.09147286821705426, 'fraction_numerical': 0.02682844624199528, 'mean_word_length': 3.6786502680542417, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1912711', 'n_tokens_mistral': 4655, 'n_tokens_neox': 4176, 'n_words': 1863}