児玉 です.

From: Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp>
Subject: [ruby-math:00436] Re: Groerbner Basis Package
Date: Mon, 02 Apr 2001 15:23:08 +0900
Message-ID: <4.3.2-J.20010402143026.02e86d08 / blade.nagaokaut.ac.jp>

> 原です。
....
> この2つについてはうまく行くようになりました。ただ、require "mathn"して
> いると
> 
>    pqueue.rb:22:in `[]': failed to convert Rational into Integer (TypeError)
> 
> というエラーが出るようになりました。以前はOKだったのでこれはもったいない。

pqueue も採用してすぐなので, 試験不足だったか?
mathn のどこと干渉しているのかなぁ.

> あと、
....
>    polynomialm.rb:826:in `divmodZp':
>         wrong # of arguments(1 for 2)    (ArgumentError)
> 
> というエラーがでるようになりました。直そうとしたんだけど、、、うまく
> いかない。

ちょっと見直してみます.


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

負けたぁ.
僕の方は pqueue の採用で遅くなった.
まあ, 速くなる場合もあるはずと期待してはいるが...

> 「チューンアップ」というのは、お手軽で、
> 
>    def foo
>      (X)
>    end
> 
> というのを、適当なインスタンス変数例えば @foo を使って
> 
>    def foo
>      @foo ||= (X)
>    end
> 
> とするだけです。数学関数は常に同じ値を返すメソッドを多数回呼ぶ場合がある
> ので、効果絶大です。お試しあれ。ただしこうすると、メソッドが自分の状態を
> 変化させる事になるので、幾つか注意が必要になってきますが。

項順序の負荷は大きいようなので, 
total degree で採用すると, これはきくかも.

-- 
K.Kodama(kodama / kobe-kosen.ac.jp)