code: def reflection_matrix_pow(reflection_matrix: np.ndarray, exponent: float):
      
  
      # The eigenvalues are x and -x for some complex unit x. Determine x.
      squared_phase = np.dot(reflection_matrix[:, 0],
                             reflection_matrix[0, :])
      phase = complex(np.sqrt(squared_phase))
  
      # Extract +x and -x eigencomponents of the matrix.
      i = np.eye(reflection_matrix.shape[0]) * phase
      pos_part = (i + reflection_matrix) * 0.5
      neg_part = (i - reflection_matrix) * 0.5
  
      # Raise the matrix to a power by raising its eigencomponents to that power.
      pos_factor = phase**(exponent - 1)
      neg_factor = pos_factor * complex(-1)**exponent
      pos_part_raised = pos_factor * pos_part
      neg_part_raised = neg_part * neg_factor
      return pos_part_raised + neg_part_raised
docs: Raises a matrix with two opposing eigenvalues to a power.
  
      Args:
          reflection_matrix: The matrix to raise to a power.
          exponent: The power to raise the matrix to.
  
      Returns:
          The given matrix raised to the given power.