def __init__(self, m_value: int, num_qubits: int) -> None:
        """Initializes UniformSuperpositionGate.

        Args:
            m_value: The number of computational basis states.
            num_qubits: The number of qubits used.

        Raises:
            ValueError: If `m_value` is not a positive integer, or
                if `num_qubits` is not an integer greater than or equal to log2(m_value).
        """
        if not (isinstance(m_value, int) and (m_value > 0)):
            raise ValueError("m_value must be a positive integer.")
        log_two_m_value = m_value.bit_length()

        if (m_value & (m_value - 1)) == 0:
            log_two_m_value = log_two_m_value - 1
        if not (isinstance(num_qubits, int) and (num_qubits >= log_two_m_value)):
            raise ValueError(
                "num_qubits must be an integer greater than or equal to log2(m_value)."
            )
        self._m_value = m_value
        self._num_qubits = num_qubits
Initializes UniformSuperpositionGate.

        Args:
            m_value: The number of computational basis states.
            num_qubits: The number of qubits used.

        Raises:
            ValueError: If `m_value` is not a positive integer, or
                if `num_qubits` is not an integer greater than or equal to log2(m_value).
        
cirq-core/cirq/ops/uniform_superposition_gate.py