View source on GitHub |
Returns a mixture representing a state vector with only some qubits kept.
cirq.partial_trace_of_state_vector_as_mixture(
state_vector: np.ndarray,
keep_indices: List[int],
*,
atol: Union[int, float] = 1e-08
) -> Tuple[Tuple[float, np.ndarray], ...]
The input state vector can have any shape, but if it is one-dimensional it
will be interpreted as qubits, since that is the most common case, and fail
if the dimension is not size 2 ** n
. States in the output mixture will
retain the same type of shape as the input state vector.
If the state vector cannot be factored into a pure state over keep_indices
then eigendecomposition is used and the output mixture will not be unique.
Returns | |
---|---|
A single-component mixture in which the factored state vector has probability '1' if the partially traced state is pure, or else a mixture of the default eigendecomposition of the mixed state's partial trace. |
Raises | |
---|---|
ValueError
|
If the input state_vector is one dimension, but that
dimension size is not a power of two.
|
IndexError
|
If any indexes are out of range. |