code: def su(self) -> 'Gate':
          
          rank = 2**self.qubit_nb
          U = asarray(self.asoperator())
          U /= np.linalg.det(U) ** (1/rank)
          return Gate(tensor=U, qubits=self.qubits)
docs: Convert gate tensor to the special unitary group.