原です。

>児玉 です.

新しいバージョン(2001-03-26)ありがとうございました。

> > require "polynomialm"
> > require "gbasem"
> > 
> > f1=PolynomialM("x")
> > f2=PolynomialM("x - 1")
> > gb=GBase.getGBase([f1, f2])

> > f1 = PolynomialM("x**3 * y**2 - x**2 * y**3 + x")
> > f2 = PolynomialM("3 * x**4 * y + y**2")
> > gb=GBase.getGBase([f1,f2])

この2つについてはうまく行くようになりました。ただ、require "mathn"して
いると

   pqueue.rb:22:in `[]': failed to convert Rational into Integer (TypeError)

というエラーが出るようになりました。以前はOKだったのでこれはもったいない。

あと、

   f1 = PolynomialM("2x+3y+3")
   f2 = PolynomialM("x+5y+2")
   GBase.getGBaseZp([f1,f2], 7)

とすると、

   polynomialm.rb:826:in `divmodZp':
        wrong # of arguments(1 for 2)    (ArgumentError)

というエラーがでるようになりました。直そうとしたんだけど、、、うまく
いかない。


私の方もバージョンを1.1にしました。今度もブッフバーガーアルゴリズムは
そのままなんですが、メソッドのチューンアップをしたところ、速度が3倍以
上(当社比)早くなりました。(Kodamaライブラリに勝った。^^;)

「チューンアップ」というのは、お手軽で、

   def foo
     (X)
   end

というのを、適当なインスタンス変数例えば @foo を使って

   def foo
     @foo ||= (X)
   end

とするだけです。数学関数は常に同じ値を返すメソッドを多数回呼ぶ場合がある
ので、効果絶大です。お試しあれ。ただしこうすると、メソッドが自分の状態を
変化させる事になるので、幾つか注意が必要になってきますが。