def __pow__(self, exponent: Any) -> ParallelGate:
        """Raises underlying gate to a power, applying same number of copies.

        For extrapolatable gate G this means the following two are equivalent:

            (G ** 1.5) x k  or  (G x k) ** 1.5

        Args:
            exponent: The amount to scale the gate's effect by.

        Returns:
            ParallelGate with same num_copies with the scaled underlying gate.
        """
        new_gate = protocols.pow(self.sub_gate, exponent, NotImplemented)
        if new_gate is NotImplemented:
            return NotImplemented
        return self.with_gate(new_gate)
Raises underlying gate to a power, applying same number of copies.

        For extrapolatable gate G this means the following two are equivalent:

            (G ** 1.5) x k  or  (G x k) ** 1.5

        Args:
            exponent: The amount to scale the gate's effect by.

        Returns:
            ParallelGate with same num_copies with the scaled underlying gate.
        
cirq-core/cirq/ops/parallel_gate.py