Пример #1
0
    def build_setting_memory_map(self, setting: ExperimentSetting) -> Dict[str, List[float]]:
        """
        Build the memory map corresponding to the state preparation and measurement specifications
        encoded in the provided ``ExperimentSetting``, taking into account the full set of qubits
        that are present in the ``Experiment`` object.

        :return: Memory map for state prep and measurement.
        """
        meas_qubits = self.get_meas_qubits()

        in_pt = PauliTerm.from_list([(op, meas_qubits.index(cast(int, q))) for q, op in setting._in_operator()])
        out_pt = PauliTerm.from_list([(op, meas_qubits.index(cast(int, q))) for q, op in setting.out_operator])

        preparation_map = pauli_term_to_preparation_memory_map(in_pt)
        measurement_map = pauli_term_to_measurement_memory_map(out_pt)

        return {**preparation_map, **measurement_map}
Пример #2
0
def test_pauli_term_to_measurement_memory_map():
    assert pauli_term_to_measurement_memory_map(sY(1)) == {
        "measurement_alpha": [0.0, np.pi / 2],
        "measurement_beta": [0.0, np.pi / 2],
        "measurement_gamma": [0.0, -np.pi / 2],
    }