EquivalenceLibrary#

class qiskit.circuit.EquivalenceLibrary(*, base=None)[ソース]#

ベースクラス: object

A library providing a one-way mapping of Gates to their equivalent implementations as QuantumCircuits.

Create a new equivalence library.

パラメータ:

base (Optional[EquivalenceLibrary]) – Base equivalence library to be referenced if an entry is not found in this library.

Attributes

graph#

Return graph representing the equivalence library data.

This property should be treated as read-only as it provides a reference to the internal state of the EquivalenceLibrary object. If the graph returned by this property is mutated it could corrupt the the contents of the object. If you need to modify the output PyDiGraph be sure to make a copy prior to any modification.

戻り値:

A graph object with equivalence data in each node.

戻り値の型:

PyDiGraph

Methods

add_equivalence(gate, equivalent_circuit)[ソース]#

Add a new equivalence to the library. Future queries for the Gate will include the given circuit, in addition to all existing equivalences (including those from base).

Parameterized Gates (those including qiskit.circuit.Parameters in their Gate.params) can be marked equivalent to parameterized circuits, provided the parameters match.

パラメータ:
  • gate (Gate) – A Gate instance.

  • equivalent_circuit (QuantumCircuit) – A circuit equivalently implementing the given Gate.

draw(filename=None)[ソース]#

Draws the equivalence relations available in the library.

パラメータ:

filename (str) – An optional path to write the output image to if specified this method will return None.

戻り値:

Drawn equivalence library as an

IPython SVG if in a jupyter notebook, or as a PIL.Image otherwise.

戻り値の型:

PIL.Image or IPython.display.SVG

例外:

InvalidFileError – if filename is not valid.

get_entry(gate)[ソース]#

Gets the set of QuantumCircuits circuits from the library which equivalently implement the given Gate.

Parameterized circuits will have their parameters replaced with the corresponding entries from Gate.params.

パラメータ:

gate (Gate) – A Gate instance.

戻り値:

A list of equivalent QuantumCircuits. If empty,

library contains no known decompositions of Gate.

Returned circuits will be ordered according to their insertion in the library, from earliest to latest, from top to base. The ordering of the StandardEquivalenceLibrary will not generally be consistent across Qiskit versions.

戻り値の型:

List[QuantumCircuit]

has_entry(gate)[ソース]#

Check if a library contains any decompositions for gate.

パラメータ:

gate (Gate) – A Gate instance.

戻り値:

True if gate has a known decomposition in the library.

False otherwise.

戻り値の型:

Bool

keys()[ソース]#

Return list of keys to key to node index map.

戻り値:

Keys to the key to node index map.

戻り値の型:

List

node_index(key)[ソース]#

Return node index for a given key.

パラメータ:

key (Key) – Key to an equivalence.

戻り値:

Index to the node in the graph for the given key.

戻り値の型:

Int

set_entry(gate, entry)[ソース]#

Set the equivalence record for a Gate. Future queries for the Gate will return only the circuits provided.

Parameterized Gates (those including qiskit.circuit.Parameters in their Gate.params) can be marked equivalent to parameterized circuits, provided the parameters match.

パラメータ:
  • gate (Gate) – A Gate instance.

  • entry (List['QuantumCircuit']) – A list of QuantumCircuits, each equivalently implementing the given Gate.