Source code for torchquantum.operator.standard_gates.toffoli

from ..op_types import Operation
from abc import ABCMeta
from torchquantum.macro import C_DTYPE
import torchquantum as tq
import torch
from torchquantum.functional import mat_dict
import torchquantum.functional as tqf


[docs]class Toffoli(Operation, metaclass=ABCMeta): """Class for Toffoli Gate.""" num_params = 0 num_wires = 3 op_name = "toffoli" matrix = mat_dict["toffoli"] func = staticmethod(tqf.toffoli) @classmethod def _matrix(cls, params): return cls.matrix
CCX = Toffoli class RC3X(Operation, metaclass=ABCMeta): """Class for RC3X Gate.""" num_params = 0 num_wires = 4 op_name = "rc3x" matrix = mat_dict["rc3x"] func = staticmethod(tqf.rc3x) @classmethod def _matrix(cls, params): return cls.matrix class RCCX(Operation, metaclass=ABCMeta): """Class for RCCX Gate.""" num_params = 0 num_wires = 3 op_name = "rccx" matrix = mat_dict["rccx"] func = staticmethod(tqf.rccx) @classmethod def _matrix(cls, params): return cls.matrix