![]() |
State and context for an operation acting on a clifford tableau.
Inherits From: StabilizerSimulationState
, SimulationState
, SimulationStateBase
cirq.sim.CliffordTableauSimulationState(
tableau: 'cirq.CliffordTableau',
prng: Optional[np.random.RandomState] = None,
qubits: Optional[Sequence['cirq.Qid']] = None,
classical_data: Optional['cirq.ClassicalDataStore'] = None
)
Args | |
---|---|
tableau
|
The CliffordTableau to act on. Operations are expected to perform inplace edits of this object. |
qubits
|
Determines the canonical ordering of the qubits. This is often used in specifying the initial state, i.e. the ordering of the computational basis states. |
prng
|
The pseudo random number generator to use for probabilistic effects. |
classical_data
|
The shared classical data container for this simulation. |
Attributes | |
---|---|
allows_factoring
|
Subclasses that allow factorization should override this. |
can_represent_mixed_states
|
|
classical_data
|
|
ignore_measurement_results
|
THIS FUNCTION IS DEPRECATED.
IT WILL BE REMOVED IN Remove this call, it always returns False. |
log_of_measurement_results
|
Gets the log of measurement results. |
prng
|
|
qubit_map
|
|
qubits
|
|
state
|
|
tableau
|
Methods
apply_operation
apply_operation(
op: 'cirq.Operation'
)
copy
copy(
deep_copy_buffers: bool = True
) -> cirq.sim.simulation_state.TSelf
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() -> cirq.sim.simulation_state.TSelf
Creates a final merged state.
factor
factor(
qubits: Sequence['cirq.Qid'], *, validate=True, atol=1e-07, inplace=False
) -> Tuple[cirq.sim.simulation_state.TSelf
, cirq.sim.simulation_state.TSelf
]
Splits two state spaces after a measurement or reset.
get_axes
get_axes(
qubits: Sequence['cirq.Qid']
) -> List[int]
kronecker_product
kronecker_product(
other: cirq.sim.simulation_state.TSelf
,
*,
inplace=False
) -> cirq.sim.simulation_state.TSelf
Joins two state spaces together.
measure
measure(
qubits: Sequence['cirq.Qid'], key: str, invert_mask: Sequence[bool]
)
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. |
Raises | |
---|---|
ValueError
|
If a measurement key has already been logged to a key. |
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
) -> cirq.sim.simulation_state.TSelf
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. |
with_qubits
with_qubits(
qubits
) -> cirq.sim.simulation_state.TSelf
Extend current state space with added qubits.
The state of the added qubits is the default value set in the subclasses. A new state space is created as the Kronecker product of the original one and the added one.
Args | |
---|---|
qubits
|
The qubits to be added to the state space. |
Regurns:
A new subclass object containing the extended state space.
__getitem__
__getitem__(
item: Optional['cirq.Qid']
) -> cirq.sim.simulation_state.TSelf
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.