ごとけんです

とりあえず、単精度に関するぼくとまつもとさんの昔のやりとりを
抜粋しときます。参考までに。

■まず、発端
>======================================================================
  Subject: [ruby-dev:4372] Re: module Precision
  From: matz / netlab.co.jp (Yukihiro Matsumoto)
  --
  |それと,SingleFloat という単精度浮動小数点数を実装したら,
  |Numeric の下に組み込んでもらえますか??

  クラスを追加するのは良いですが,以下の点を明らかにしてからに
  したいです.

    * Floatに対応するものがSingleFloatだとなんかヘン.
      SmallFloatか?

    * SingleFloatのリテラルが存在しないがそれは良いか.
>----------------------------------------------------------------------

■リテラル
  >======================================================================
  Subject: [ruby-dev:4382] Re: module Precision
  From: gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro)
  --
  >そーですねえ.日常良く見るのは L などという接尾子ですが,今
  >回は逆ですからねえ.どういうのが良いでしょうかねえ.

  C では float は 2.13f が float のリテラルですけど,
  f だと紛らわしすぎますね.名前が決まってからの方が
  よさそうな気が.
  いまのところ接尾子以外の選択はちょっと思い付きませんが.
  接尾子を取り入れることで文法的に問題は起きませんか??
  >----------------------------------------------------------------------
  Subject: [ruby-dev:4385] Re: module Precision
  From: matz / netlab.co.jp (Yukihiro Matsumoto)
  --
  |f だと紛らわしすぎますね.名前が決まってからの方が
  |よさそうな気が.

  ですねえ.

  |いまのところ接尾子以外の選択はちょっと思い付きませんが.
  |接尾子を取り入れることで文法的に問題は起きませんか??

  多分問題はないと思います.接尾子がアルファベットとかである限
  りは.
>----------------------------------------------------------------------

■それからFloatの抽象クラス化
>======================================================================
  Subject: [ruby-dev:4462] Re: new class for float of C (Re: module Precision)
  From: gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro)
  --
  >  * 浮動小数点数のスーパークラスが必要か

  必要と考える理由は主に,場合分け,互換性,特徴づけです.

  まず,場合分けとその過去の互換性の観点から,kind_of?
  を用いるために必要だと思います.
  精度に立ち入った場合分けを必要とするのは,僕の気が
  ついている範囲では文字列化のような表現の問題と,
  Math モジュールのような数学関数の適用においてです.
  これら以外で浮動小数点の精度に立ち入る必要がありそうな
  状況を思い付かれたらおっしゃってください.

  また,現在,Numeric にあって Float にないメソッドはなく,
  逆に Float にあって Numeric にあるものは

  "%", "*", "**", "+", "-", "/", "<=>",
  "ceil", "floor", "prec", "prec_i", "prec_f",
  "remainder", "round", "to_f", "to_i",
  および "Float.induced_from",

  です.これらはいずれも ShortFloat に必要,かつ浮動小数点数
  を定義づけるのにさしあたり十分だと考えます.

  これらのことから実用性という点と指向の指針という点で
  スーパークラスは必要だと思います.

  更に(将来的には)浮動小数点数固有の事情を表現する
  (クラス)メソッドが考えられます.それは主にその処理系で指数や
  仮数や基数などがどう実装されているかを知らせるモノを想定して
  います.これもスーパークラスが必要と考える大きな理由です.

  >  * その名前はFloatか

  これは上述の互換性からの要請が理由です.
>----------------------------------------------------------------------
  Subject: [ruby-dev:4463] Re: new class for float of C (Re: module Precision)
  From: matz / netlab.co.jp (Yukihiro Matsumoto)
  --
  納得できますね.ではスーパークラスは必要で,その名前はFloat
  であるとしましょう.では残る問題は,float, double, それから
  将来の多倍長浮動小数点数に対応するクラス名ですね.
>----------------------------------------------------------------------

■最後に名前:
>======================================================================
  Subject: [ruby-dev:4467] Re: new class for float of C (Re: module Precision)
  From: matz / netlab.co.jp (Yukihiro Matsumoto)
  --
  |まず,float と double から
  |
  |  * SingleFloat, DoubleFloat
  |  * ShortFloat, {LongFloat,
  |                TheFloat,
  |                AFloat,
  |                OrdinaryFloat,
  |                UsualFloat,
  |                HabitualFloat,
  |                CommonFloat,
  |                CasualFloat,
  |                OurFloat
  |               }
  |
  |この中で一番イミがはっきりしているのは Single/Double です.
  |まぁ Hash も実装からきた名前だしこういうのもいいかも.

  同意します.
>----------------------------------------------------------------------

# いつもありがとう > blade 

-- gotoken