Source code for qiskit_quantuminspire.mapping.instruction_mapping

_DEFAULT_QISKIT_TO_OPENSQUIRREL_MAPPING: dict[str, str] = {
    "id": "I",
    "h": "H",
    "x": "X",
    "y": "Y",
    "z": "Z",
    "s": "S",
    "sdg": "Sdag",
    "t": "T",
    "tdg": "Tdag",
    "rx": "Rx",
    "ry": "Ry",
    "rz": "Rz",
    "cx": "CNOT",
    "cz": "CZ",
    "cp": "CR",
    "swap": "SWAP",
    "measure": "measure",
    "reset": "reset",
    "barrier": "barrier",
    "delay": "wait",
    "ccx": "toffoli",
}


[docs] class InstructionMapping: def __init__(self, qiskit_to_os: dict[str, str] = _DEFAULT_QISKIT_TO_OPENSQUIRREL_MAPPING): self._QISKIT_TO_OPENSQUIRREL_MAPPING: dict[str, str] = qiskit_to_os # Uses lower case for keys to normalize inconsistent capitalization of backends self._OPENSQUIRREL_TO_QISKIT_MAPPING: dict[str, str] = { v.lower(): k for k, v in self._QISKIT_TO_OPENSQUIRREL_MAPPING.items() }
[docs] def qiskit_to_opensquirrel(self, instruction: str) -> str: """Translate a Qiskit gate name to the equivalent opensquirrel gate name.""" return self._QISKIT_TO_OPENSQUIRREL_MAPPING[instruction.lower()]
[docs] def opensquirrel_to_qiskit(self, instruction: str) -> str: """Translate an opensquirrel gate name to the equivalent Qiskit gate name.""" return self._OPENSQUIRREL_TO_QISKIT_MAPPING[instruction.lower()]
[docs] def supported_opensquirrel_instructions(self) -> list[str]: """Return a list of all supported opensquirrel instructions.""" return list(self._QISKIT_TO_OPENSQUIRREL_MAPPING.values())
[docs] def supported_qiskit_instructions(self) -> list[str]: """Return a list of all supported Qiskit instructions.""" return list(self._QISKIT_TO_OPENSQUIRREL_MAPPING.keys())