[docs]classInstructionKind(enum.Enum):CCX="CCX"RZZ="RZZ"CNOT="CNOT"SWAP="SWAP"H="H"S="S"X="X"Y="Y"Z="Z"I="I"M="M"RX="RX"RY="RY"RZ="RZ"# The two following instructions are used internally by the transpilerXC="XC"ZC="ZC"
classInstruction(BaseModel,abc.ABC):""" Circuit instruction base class model. """kind:InstructionKind=Nonemeas_index:int=NoneclassOneQubitInstruction(Instruction):""" One qubit circuit instruction base class model. """target:intclassCorrectionInstruction(OneQubitInstruction):""" Correction instruction base class model. """domain:list[int]classRotationInstruction(OneQubitInstruction):""" Rotation instruction base class model. """angle:floatclassOneControlInstruction(OneQubitInstruction):""" One control instruction base class model. """control:intclassTwoControlsInstruction(OneQubitInstruction):""" Two controls instruction base class model. """controls:tuple[int,int]classXC(CorrectionInstruction):""" X correction circuit instruction. Used internally by the transpiler. """kind:InstructionKind=InstructionKind.XCclassZC(CorrectionInstruction):""" Z correction circuit instruction. Used internally by the transpiler. """kind:InstructionKind=InstructionKind.ZCclassCCX(TwoControlsInstruction):""" Toffoli circuit instruction. """kind:InstructionKind=InstructionKind.CCXclassRZZ(OneControlInstruction,RotationInstruction):""" RZZ circuit instruction. """kind:InstructionKind=InstructionKind.RZZ