qiskit-documentation/docs/api/qiskit/0.37/qiskit.circuit.EquivalenceL...

119 lines
4.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: EquivalenceLibrary
description: API reference for qiskit.circuit.EquivalenceLibrary
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.circuit.EquivalenceLibrary
---
# EquivalenceLibrary
<Class id="qiskit.circuit.EquivalenceLibrary" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.21/qiskit/circuit/equivalence.py" signature="EquivalenceLibrary(*, base=None)" modifiers="class">
Bases: `object`
A library providing a one-way mapping of Gates to their equivalent implementations as QuantumCircuits.
Create a new equivalence library.
**Parameters**
**base** (*Optional\[*[*EquivalenceLibrary*](#qiskit.circuit.EquivalenceLibrary "qiskit.circuit.EquivalenceLibrary")*]*) Base equivalence library to will be referenced if an entry is not found in this library.
## Methods
### add\_equivalence
<Function id="qiskit.circuit.EquivalenceLibrary.add_equivalence" signature="EquivalenceLibrary.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.
**Parameters**
* **gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) A Gate instance.
* **equivalent\_circuit** ([*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) A circuit equivalently implementing the given Gate.
</Function>
### draw
<Function id="qiskit.circuit.EquivalenceLibrary.draw" signature="EquivalenceLibrary.draw(filename=None)">
Draws the equivalence relations available in the library.
**Parameters**
**filename** (*str*) An optional path to write the output image to if specified this method will return None.
**Returns**
**Drawn equivalence library as an**
IPython SVG if in a jupyter notebook, or as a PIL.Image otherwise.
**Return type**
PIL.Image or IPython.display.SVG
**Raises**
**MissingOptionalLibraryError** when pydot or pillow are not installed.
</Function>
### get\_entry
<Function id="qiskit.circuit.EquivalenceLibrary.get_entry" signature="EquivalenceLibrary.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.
**Parameters**
**gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) A Gate instance.
**Returns**
**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.
**Return type**
List\[[QuantumCircuit](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")]
</Function>
### has\_entry
<Function id="qiskit.circuit.EquivalenceLibrary.has_entry" signature="EquivalenceLibrary.has_entry(gate)">
Check if a library contains any decompositions for gate.
**Parameters**
**gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) A Gate instance.
**Returns**
**True if gate has a known decomposition in the library.**
False otherwise.
**Return type**
Bool
</Function>
### set\_entry
<Function id="qiskit.circuit.EquivalenceLibrary.set_entry" signature="EquivalenceLibrary.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.
**Parameters**
* **gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) A Gate instance.
* **entry** (*List\['QuantumCircuit']*) A list of QuantumCircuits, each equivalently implementing the given Gate.
</Function>
</Class>