原です。

Masahiro TANAKA さんは書きました:

>   (2) CやFORTRANの複素数型をラップした、実部・虚部がdouble型の複素数クラス

なぜ今まで気づかなかったのか。すごくいいアイデア!

今までの Complex は、complex.rb にほぼ残して、たとえば Rational 成分
の複素数を使いたい人は、Complex を使い、科学技術計算をしたい人は、こ
の (2) を使え……で、八方丸く収まるのではないでしょうか。

(2) には新しい名前が必要になりますね。仮に ComplexFloat とすると、クラ
ス関係は、あたらしい InexactNum(仮称)を導入して、

  Numeric - InexactNum - Float
                       - ComplexFloat

とするか、RealFloat(仮称)を導入して

  Numeric - Float - RealFloat
                  - ComplexFloat

とするか。いずれにしても大きな変更になるけど。

で、Math.sqrt(-8) は、ComplexFloat(仮称)を返せばよい、と。

Math.sqrt がデフォルトで、Integer を返したり Float を返したりするのは、
抵抗がある(mathn の下では別)のですが、Float を返したり ComplexFloat(仮
称)を返したりするのは、良い気がします。

やはりリテラルが欲しい。

問題は「有理数**有理数」かな。