cirq.DensityMatrixSimulationState

State and context for an operation acting on a density matrix.

Inherits From: SimulationState, SimulationStateBase

To act on this object, directly edit the target_tensor property, which is storing the density matrix of the quantum system with one axis per qubit.

available_buffer A workspace with the same shape and dtype as target_tensor. Used by operations that cannot be applied to target_tensor inline, in order to avoid unnecessary allocations.
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.
initial_state The initial state for the simulation in the computational basis.
dtype The numpy.dtype of the inferred state vector. One of numpy.complex64 or numpy.complex128. Only used when target_tenson is None.
classical_data The shared classical data container for this simulation.

ValueError If initial_state is provided as integer, but qubits is not provided.

allows_factoring Subclasses that allow factorization should override this.
available_buffer

can_represent_mixed_states

classical_data

log_of_measurement_results Gets the log of measurement results.
prng

qid_shape

qubit_map

qubits

target_tensor

Methods

add_qubits

View source

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

View source

copy

View source

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

View source

Creates a final merged state.

factor

View source

Splits two state spaces after a measurement or reset.

get_axes

View source

kronecker_product

View source

Joins two state spaces together.

measure

View source

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

View source

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

View source

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

View source

Samples the state value.

swap

View source

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

View source

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__

View source

Gets the item associated with the qubit.

__iter__

View source

Iterates the keys of the mapping.

__len__

View source

Gets the number of items in the mapping.