def get_amplitudes( self, circuit: Circuit, states: List[str], valid_check: bool = True, **kwargs: KwargTypes, ) -> Dict[str, complex]: """ Compute the complex coefficients of the final state. Supported `kwargs` are as for `BraketBackend.process_circuits`. :param states: classical states of interest, as binary strings of '0' and '1' :returns: final complex amplitudes if initial state is all-zeros """ if not self.supports_amplitude: raise RuntimeError("Backend does not support amplitude") if valid_check: self._check_all_circuits([circuit], nomeasure_warn=False) bkcirc = self._to_bkcirc(circuit) restype = ResultType.Amplitude(states) bkcirc.add_result_type(restype) task = self._run(bkcirc, n_shots=0, **kwargs) res = task.result() amplitudes = res.get_value_by_result_type(restype) cdict = {} for k, v in amplitudes.items(): # The amazon/sv1 simulator gives us 2-element lists [re, im]. # The local simulator gives us numpy.complex128. cdict[k] = complex(*v) if type(v) is list else complex(v) return cdict
def amplitude(state: List[str]) -> ResultType: """Registers this function into the circuit class. Args: state (List[str]): list of quantum states as strings with "0" and "1" Returns: ResultType: state vector as a requested result type Examples: >>> circ = Circuit().amplitude(state=["01", "10"]) """ return ResultType.Amplitude(state=state)