cirq.GridQid

A qid on a 2d square lattice

Inherits From: Qid

GridQid uses row-major ordering:

GridQid(0, 0, dimension=2) < GridQid(0, 1, dimension=2)
< GridQid(1, 0, dimension=2) < GridQid(1, 1, dimension=2)

New GridQid can be constructed by adding or subtracting tuples or numpy arrays

<pre class="devsite-click-to-copy prettyprint lang-py">
<code class="devsite-terminal" data-terminal-prefix="&gt;&gt;&gt;">cirq.GridQid(2, 3, dimension=2) + (3, 1)</code>
<code class="no-select nocode">    cirq.GridQid(5, 4, dimension=2)</code>
<code class="no-select nocode">    </code>
</pre>


<pre class="devsite-click-to-copy prettyprint lang-py">
<code class="devsite-terminal" data-terminal-prefix="&gt;&gt;&gt;">cirq.GridQid(2, 3, dimension=2) - (1, 2)</code>
<code class="no-select nocode">    cirq.GridQid(1, 1, dimension=2)</code>
<code class="no-select nocode">    </code>
</pre>


<pre class="devsite-click-to-copy prettyprint lang-py">
<code class="devsite-terminal" data-terminal-prefix="&gt;&gt;&gt;">cirq.GridQid(2, 3, dimension=2) + np.array([3, 1], dtype=int)</code>
<code class="no-select nocode">    cirq.GridQid(5, 4, dimension=2)</code>
<code class="no-select nocode">    </code>
</pre>

row the row coordinate
col the column coordinate
dimension The dimension of the qid's Hilbert space, i.e. the number of quantum levels.

col

dimension Returns the dimension or the number of quantum levels this qid has. E.g. 2 for a qubit, 3 for a qutrit, etc.
row

Methods

from_diagram

View source

Parse ASCII art device layout into a device.

As an example, the below diagram will create a list of GridQid in a pyramid structure.

---A---
--AAA--
-AAAAA-
AAAAAAA

You can use any character other than a hyphen, period or space to mark a qid. As an example, the qids for a Bristlecone device could be represented by the below diagram. This produces a diamond-shaped grid of qids, and qids with the same letter correspond to the same readout line.

.....AB.....
....ABCD....
...ABCDEF...
..ABCDEFGH..
.ABCDEFGHIJ.
ABCDEFGHIJKL
.CDEFGHIJKL.
..EFGHIJKL..
...GHIJKL...
....IJKL....
.....KL.....

Args
diagram String representing the qid layout. Each line represents a row. Alphanumeric characters are assigned as qid. Dots ('.'), dashes ('-'), and spaces (' ') are treated as empty locations in the grid. If diagram has characters other than alphanumerics, spacers, and newlines ('\n'), an error will be thrown. The top-left corner of the diagram will be have coordinate (0, 0).
dimension The dimension of the qubits in the cirq.GridQids used in this construction.

Returns
A list of cirq.GridQids corresponding to qids in the provided diagram

Raises
ValueError If the input string contains an invalid character.

is_adjacent

View source

Determines if two qubits are adjacent qubits.

neighbors

View source

Returns qubits that are potential neighbors to this GridQid

Args
qids optional Iterable of qubits to constrain neighbors to.

rect

View source

Returns a rectangle of GridQid.

Args
rows Number of rows in the rectangle
cols Number of columns in the rectangle
top Row number of the topmost row
left Column number of the leftmost row
dimension The dimension of the qid's Hilbert space, i.e. the number of quantum levels.

Returns
A list of GridQid filling in a rectangular grid

square

View source

Returns a square of GridQid.

Args
diameter Length of a side of the square
top Row number of the topmost row
left Column number of the leftmost row
dimension The dimension of the qid's Hilbert space, i.e. the number of quantum levels.

Returns
A list of GridQid filling in a square grid

validate_dimension

View source

Raises an exception if dimension is not positive.

Raises
ValueError dimension is not positive.

with_dimension

View source

Returns a new qid with a different dimension.

Child classes can override. Wraps the qubit object by default.

Args
dimension The new dimension or number of levels.

__add__

View source

__eq__

View source

Return self==value.

__ge__

View source

Return self>=value.

__gt__

View source

Return self>value.

__le__

View source

Return self<=value.

__lt__

View source

Return self<value.

__ne__

View source

Return self!=value.

__neg__

View source

__radd__

View source

__rsub__

View source

__sub__

View source