まつもと ゆきひろです

In message "[ruby-math:00918] Re: New methods of Integer"
    on 03/08/11, masaki <GEC01122 / nifty.ne.jp> writes:

|目的については、"[ruby-math:00914] New methods of Integer" で原さん
|にまとめていただいた通りです。iroot はなくてもいいという点について
|も同意します。

はい、わかりました。

||gcdはインタフェース、bitsize, isqrt, irootは名前の点で引っか
||かってます。
|
|Math.gcd(a, b) というのは、a, b が整数に限られるということを考え
|ると、現在の Float 中心の Math にはなじまない気がします。
|Integer.gcd(a, b) でも良いですが、Integer#gcd でまづいという理由が
|良く分かりません。

いや、まずいわけではなくて、概念としてどちらが良いのか私には
判断できないということです。

Integer.gcdなら2数が対等の印象があるでしょうし、Integer#gcd
なら(たまたまかもしれないけど)非対称なイメージがちょっと出て
くるでしょう。それを気にするかどうかも含めて結論を出したいな
と。気にしないことにすると合意が取れればよいわけです。

|名前に関しては、ほかの言語や数学ソフトでどうなっているか、一寸
|調べてみました。

参考になります。

|bitsize: Mathematica では BitLength[n]
|すこし長いですが bitlength は如何でしょうか?

現状ではStringやArrayなどでsizeとlengthは可換ですから、両方
用意してもよいのですが。

|isqrt: Common Lisp では
| (isqrt x) ==  (values (floor (sqrt x))) 
|Maple でも isqrt 。
|
|iroot: Maple で iroot 。

ふむ、では名前の問題はなさそうですね。「irootは不要かも」と
いう点でも合意があるようでしたら、残る点は

  * Integer#gcdかInteger.gcdか
  * bitsizeかbitlengthか両方か
  * irootは(当面)なしで良いか

ですね。