View source on GitHub |
State and context for an operation acting on a state tensor.
Inherits From: SimulationStateBase
cirq.SimulationState(
*,
state: TState,
prng: Optional[np.random.RandomState] = None,
qubits: Optional[Sequence['cirq.Qid']] = None,
classical_data: Optional['cirq.ClassicalDataStore'] = 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: Optional['cirq.Qid']
) -> Self
Gets the item associated with the qubit.
__iter__
__iter__() -> Iterator[Optional['cirq.Qid']]
Iterates the keys of the mapping.
__len__
__len__() -> int
Gets the number of items in the mapping.