View source on GitHub |
State and context for an operation acting on a clifford tableau.
Inherits From: StabilizerSimulationState, SimulationState, SimulationStateBase
cirq.CliffordTableauSimulationState( tableau: cirq.CliffordTableau, prng: (np.random.RandomState | None) = None, qubits: (Sequence[cirq.Qid] | None) = None, classical_data: (cirq.ClassicalDataStore | None) = None ) Methods
add_qubits
add_qubits( qubits: Sequence[cirq.Qid] ) -> Self Add qubits in the |0> state to a new state space and take the kron product.
| Args | |
|---|---|
qubits | Sequence of qubits to be added. |
| Returns | |
|---|---|
NotImplemented | If the subclass does not implement this method. |
Self | A cirq.SimulationState with qubits added or self if there are no qubits to add. |
apply_operation
apply_operation( op: cirq.Operation ) copy
copy( deep_copy_buffers: bool = True ) -> Self Creates a copy of the object.
| Args | |
|---|---|
deep_copy_buffers | If True, buffers will also be deep-copied. Otherwise the copy will share a reference to the original object's buffers. |
| Returns | |
|---|---|
| A copied instance. |
create_merged_state
create_merged_state() -> Self Creates a final merged state.
factor
factor( qubits: Sequence[cirq.Qid], *, validate=True, atol=1e-07, inplace=False ) -> tuple[Self, Self] Splits two state spaces after a measurement or reset.
get_axes
get_axes( qubits: Sequence[cirq.Qid] ) -> list[int] kronecker_product
kronecker_product( other: Self, *, inplace=False ) -> Self Joins two state spaces together.
measure
measure( qubits: Sequence[cirq.Qid], key: str, invert_mask: Sequence[bool], confusion_map: dict[tuple[int, ...], np.ndarray] ) Measures the qubits and records to log_of_measurement_results.
Any bitmasks will be applied to the measurement record.
| Args | |
|---|---|
qubits | The qubits to measure. |
key | The key the measurement result should be logged under. Note that operations should only store results under keys they have declared in a _measurement_key_names_ method. |
invert_mask | The invert mask for the measurement. |
confusion_map | The confusion matrices for the measurement. |
| Raises | |
|---|---|
ValueError | If a measurement key has already been logged to a key. |
remove_qubits
remove_qubits( qubits: Sequence[cirq.Qid] ) -> Self Remove qubits from the state space.
The qubits to be removed should be untangled from rest of the system and in the |0> state.
| Args | |
|---|---|
qubits | Sequence of qubits to be removed. |
| Returns | |
|---|---|
NotImplemented | If the subclass does not implement this method. |
Self | A cirq.SimulationState with qubits removed or self if there are no qubits to remove. |
rename
rename( q1: cirq.Qid, q2: cirq.Qid, *, inplace=False ) Renames q1 to q2.
| Args | |
|---|---|
q1 | The qubit to rename. |
q2 | The new name. |
inplace | True to rename the qubit in the current object, False to create a copy with the qubit renamed. |
| Returns | |
|---|---|
| The original object with the qubits renamed if inplace is requested, or a copy of the original object with the qubits renamed otherwise. |
| Raises | |
|---|---|
ValueError | If the qubits are of different dimensionality. |
sample
sample( qubits: Sequence[cirq.Qid], repetitions: int = 1, seed: cirq.RANDOM_STATE_OR_SEED_LIKE = None ) -> np.ndarray Samples the state value.
swap
swap( q1: cirq.Qid, q2: cirq.Qid, *, inplace=False ) Swaps two qubits.
This only affects the index, and does not modify the underlying state.
| Args | |
|---|---|
q1 | The first qubit to swap. |
q2 | The second qubit to swap. |
inplace | True to swap the qubits in the current object, False to create a copy with the qubits swapped. |
| Returns | |
|---|---|
| The original object with the qubits swapped if inplace is requested, or a copy of the original object with the qubits swapped otherwise. |
| Raises | |
|---|---|
ValueError | If the qubits are of different dimensionality. |
transpose_to_qubit_order
transpose_to_qubit_order( qubits: Sequence[cirq.Qid], *, inplace=False ) -> Self Physically reindexes the state by the new basis.
| Args | |
|---|---|
qubits | The desired qubit order. |
inplace | True to perform this operation inplace. |
| Returns | |
|---|---|
| The state with qubit order transposed and underlying representation updated. |
| Raises | |
|---|---|
ValueError | If the provided qubits do not match the existing ones. |
__getitem__
__getitem__( item: (cirq.Qid | None) ) -> Self Gets the item associated with the qubit.
__iter__
__iter__() -> Iterator[cirq.Qid | None] Iterates the keys of the mapping.
__len__
__len__() -> int Gets the number of items in the mapping.
View source on GitHub