Skip to content

control_instruction

Barrier

Bases: ControlInstruction

Source code in opensquirrel/ir/control_instruction.py
class Barrier(ControlInstruction):
    def __init__(self, qubit: QubitLike) -> None:
        ControlInstruction.__init__(self, qubit=qubit, name="barrier")
        self.qubit = Qubit(qubit)

    @property
    def arguments(self) -> tuple[Expression, ...]:
        return ()

    def accept(self, visitor: IRVisitor) -> Any:
        """Accepts visitor and processes this IR node."""
        visitor.visit_control_instruction(self)
        return visitor.visit_barrier(self)

    def __eq__(self, other: object) -> bool:
        return isinstance(other, Barrier) and self.qubit == other.qubit

    def __repr__(self) -> str:
        return f"{self.__class__.__name__}(qubit={self.qubit})"

accept

accept(visitor: IRVisitor) -> Any

Accepts visitor and processes this IR node.

Source code in opensquirrel/ir/control_instruction.py
def accept(self, visitor: IRVisitor) -> Any:
    """Accepts visitor and processes this IR node."""
    visitor.visit_control_instruction(self)
    return visitor.visit_barrier(self)

Wait

Bases: ControlInstruction

Source code in opensquirrel/ir/control_instruction.py
class Wait(ControlInstruction):
    def __init__(self, qubit: QubitLike, time: SupportsInt) -> None:
        ControlInstruction.__init__(self, qubit=qubit, name="wait")
        self.qubit = Qubit(qubit)
        self.time = Int(time)

    @property
    def arguments(self) -> tuple[Expression, ...]:
        return (self.time,)

    def accept(self, visitor: IRVisitor) -> Any:
        """Accepts visitor and processes this IR node."""
        visitor.visit_control_instruction(self)
        return visitor.visit_wait(self)

    def __eq__(self, other: object) -> bool:
        return isinstance(other, Wait) and self.qubit == other.qubit and self.time == other.time

    def __repr__(self) -> str:
        return f"{self.name}(qubit={self.qubit}, time={self.time})"

accept

accept(visitor: IRVisitor) -> Any

Accepts visitor and processes this IR node.

Source code in opensquirrel/ir/control_instruction.py
def accept(self, visitor: IRVisitor) -> Any:
    """Accepts visitor and processes this IR node."""
    visitor.visit_control_instruction(self)
    return visitor.visit_wait(self)