児玉 です.

[助言を求む]
(1) 適当なクラス名. とりあえず, InfinityClass になってます.
(2) 不定も InfinityClass(仮) に含める.
(3) なるべく数学的な無限の扱いに似せたいが,
  計算上の 1.0/0.0 や 0.0/0.0 の扱いとどう整合性をもたせるか?
---------
$ ruby -e 'print 1.0/0.0<=>10**1000,":",1.0/0.0<=>10**10000,"\n"'
1:0
---------
この結果を見ると, Infinity=1.0/0.0 と直に使うやりかたはちょっとまずい.


From: Daisuke IKEGAMI <daisu-ik / is.aist-nara.ac.jp>
Subject: [ruby-list:21987] Re: Polynomial.rb and floating point exception
Date: Wed, 19 Apr 2000 12:57:31 +0900
Message-ID: <200004190357.MAA15079 / alpha085.aist-nara.ac.jp>
....
> Infinityを意味するクラスを作るなら、
>  ・a+∞=∞
>  ・a*∞=∞ (aは定数)
>  ・∞+∞=∞
>  ・∞*∞=不定
> などの、自然なルールを入れるのはどうでしょうか。


-----サンプルコ−ド-------
class InfinityClass
include Comparable

def initialize(s); @sign=s;end
Inf=InfinityClass.new(1) # +Infinity
Infm=InfinityClass.new(-1) # -Infinity
undef initialize

def <=>(o)
  if o.kind_of?(InfinityClass); return @sign<=>o.sign;end
  return @sign<=>0
end

def -@
  if self==Inf; return Infm; elsif self==Infm;return Inf; end;
end
end

Infinity=InfinityClass::Inf
-------------ここまで-----------
-- 
K.Kodama(kodama / kobe-kosen.ac.jp)