# File lib/complex.rb, line 435
  def sqrt(z)
    if Complex.generic?(z)
      if z >= 0
        sqrt!(z)
      else
        Complex(0,sqrt!(-z))
      end
    else
      if z.image < 0
        sqrt(z.conjugate).conjugate
      else
        r = z.abs
        x = z.real
        Complex( sqrt!((r+x)/2), sqrt!((r-x)/2) )
      end
    end
  end