まつもと ゆきひろです 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は(当面)なしで良いか ですね。