in src/braket/default_simulator/state_vector_simulation.py [0:0]
def apply_observables(self, observables: List[Observable]) -> None:
"""Applies the diagonalizing matrices of the given observables
to the state of the simulation.
This method can only be called once.
Args:
observables (List[Observable]): The observables to apply
Raises:
RuntimeError: If this method is called more than once
"""
if self._post_observables is not None:
raise RuntimeError("Observables have already been applied.")
operations = list(
sum(
[observable.diagonalizing_gates(self._qubit_count) for observable in observables],
(),
)
)
self._post_observables = StateVectorSimulation._apply_operations(
self._state_vector, self._qubit_count, operations, self._batch_size
)