Skip to content

Application

Bases: ABC, Generic[Encoded, State]

Source code in q3as/app/application.py
class Application(ABC, Generic[Encoded, State]):
    @abstractmethod
    def name(self) -> ApplicationName:
        pass

    @abstractmethod
    def encode(self) -> Encoded:
        pass

    @classmethod
    @abstractmethod
    def decode(cls, encoded: Encoded) -> Application:
        pass

    @classmethod
    def validate_encoded(cls, encoded: Any) -> Encoded:
        return encoded

    @classmethod
    def decode_any(cls, encoded: Any) -> Application:
        return cls.decode(cls.validate_encoded(encoded))

    @abstractmethod
    def hamiltonian(self) -> ObservablesArrayLike:
        pass

    @abstractmethod
    def interpret(self, bit_string: BitString) -> State:
        pass

    def interpreted_meas(self, meas: BitArray) -> List[Tuple[State, int]]:
        out = {}
        for state, count in meas.get_counts().items():
            interpreted = self.interpret(BitString(state))
            cur_count = out.get(interpreted, 0)
            out[interpreted] = cur_count + count
        return list(out.items())