Nobuyoshi Nakada さんは書きました:
> Shin-ichiro HARA wrote in [ruby-dev:34161]:
> > Masahiro TANAKA さんは書きました:
> > 
> > >   (2) CやFORTRANの複素数型をラップした、実部・虚部がdouble型の複素数クラス
> 
> 少なくともC90には複素数型はないと思いますが…。

これは、C99の複素数型、あるいはそれ以前でも

typedef struct {
  double real;
  double imag;
} complex;

などと構造体で複素数型を定義することは一般的におこなわれているので、
そのデータ型を指しているつもりです。

> > (2) には新しい名前が必要になりますね。仮に ComplexFloat とすると、クラ
> > ス関係は、あたらしい InexactNum(仮称)を導入して、
> > 
> >   Numeric - InexactNum - Float
> >                        - ComplexFloat
> > 
> > とするか、RealFloat(仮称)を導入して
> > 
> >   Numeric - Float - RealFloat
> >                   - ComplexFloat
> > 
> > とするか。いずれにしても大きな変更になるけど。
> 
> そんなに細かく分けるのは使い勝手が悪くないでしょうか。内部的に整
> 数で保存するかdoubleにするかBignumにするか、などは隠してくれたほ
> うがいいような気がするのですが。

複素数は実数を拡張したものなので、実部・虚部は実数であり、
整数や有理数であることにはあまり意味がないように思うのですが、
数学的にはどうなんでしょうかね。

田中昌宏