A SimulationTrialResult
that includes the StateVectorMixin
methods.
Inherits From: StateVectorMixin
, SimulationTrialResultBase
, SimulationTrialResult
cirq.StateVectorTrialResult(
params: 'cirq.ParamResolver',
measurements: Dict[str, np.ndarray],
final_simulator_state: 'cirq.SimulationStateBase[cirq.StateVectorSimulationState]'
) -> None
Args |
qubit_map
|
A map from the Qubits in the Circuit to the index
of this qubit for a canonical ordering. This canonical ordering
is used to define the state (see the state_vector() method).
|
*args
|
Passed on to the class that this is mixed in with.
|
**kwargs
|
Passed on to the class that this is mixed in with.
|
Attributes |
final_state_vector
|
The final state vector for the system.
|
measurements
|
|
params
|
|
qubit_map
|
|
Methods
bloch_vector_of
View source
bloch_vector_of(
qubit: 'cirq.Qid'
) -> np.ndarray
Returns the bloch vector of a qubit in the state.
Calculates the bloch vector of the given qubit
in the state given by self.state_vector(), given that
self.state_vector() follows the standard Kronecker convention of
numpy.kron.
Args |
qubit
|
qubit who's bloch vector we want to find.
|
Returns |
A length 3 numpy array representing the qubit's bloch vector.
|
Raises |
ValueError
|
if the size of the state represents more than 25 qubits.
|
IndexError
|
if index is out of range for the number of qubits
corresponding to the state.
|
density_matrix_of
View source
density_matrix_of(
qubits: Optional[List['cirq.Qid']] = None
) -> np.ndarray
Returns the density matrix of the state.
Calculate the density matrix for the system on the qubits provided.
Any qubits not in the list that are present in self.state_vector() will
be traced out. If qubits is None, the full density matrix for
self.state_vector() is returned, given self.state_vector() follows
standard Kronecker convention of numpy.kron.
For example, if self.state_vector()
returns
np.array([1/np.sqrt(2), 1/np.sqrt(2)], dtype=np.complex64)
,
then density_matrix_of(qubits = None)
gives us
\[
\rho = \begin{bmatrix}
0.5 & 0.5 \\
0.5 & 0.5
\end{bmatrix}
\]
Args |
qubits
|
list containing qubit IDs that you would like
to include in the density matrix (i.e.) qubits that WON'T
be traced out.
|
Returns |
A numpy array representing the density matrix.
|
Raises |
ValueError
|
if the size of the state represents more than 25 qubits.
|
IndexError
|
if the indices are out of range for the number of qubits
corresponding to the state.
|
dirac_notation
View source
dirac_notation(
decimals: int = 2
) -> str
Returns the state vector as a string in Dirac notation.
Args |
decimals
|
How many decimals to include in the pretty print.
|
Returns |
A pretty string consisting of a sum of computational basis kets
and non-zero floats of the specified accuracy.
|
get_state_containing_qubit
View source
get_state_containing_qubit(
qubit: 'cirq.Qid'
) -> TSimulationState
Returns the independent state space containing the qubit.
Args |
qubit
|
The qubit whose state space is required.
|
Returns |
The state space containing the qubit.
|
state_vector
View source
state_vector(
copy: bool = False
) -> np.ndarray
Return the state vector at the end of the computation.
The state is returned in the computational basis with these basis
states defined by the qubit_map. In particular the value in the
qubit_map is the index of the qubit, and these are translated into
binary vectors where the last qubit is the 1s bit of the index, the
second-to-last is the 2s bit of the index, and so forth (i.e. big
endian ordering).
Example |
qubit_map
|
{QubitA: 0, QubitB: 1, QubitC: 2}
Then the returned vector will have indices mapped to qubit basis
states like the following table
| | QubitA | QubitB | QubitC |
| :-: | :----: | :----: | :----: |
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 2 | 0 | 1 | 0 |
| 3 | 0 | 1 | 1 |
| 4 | 1 | 0 | 0 |
| 5 | 1 | 0 | 1 |
| 6 | 1 | 1 | 0 |
| 7 | 1 | 1 | 1 |
|
Args |
copy
|
If True, the returned state vector will be a copy of that
stored by the object. This is potentially expensive for large
state vectors, but prevents mutation of the object state, e.g. for
operating on intermediate states of a circuit.
Defaults to False.
|
__eq__
View source
__eq__(
other: _SupportsValueEquality
) -> bool
__ne__
View source
__ne__(
other: _SupportsValueEquality
) -> bool