小林です。

重複を避けたいので、まとめて失礼します。

送信者 : "Wakou Aoyama" [ruby-math:00327]
>
> > で、round_up も round_down も ceil と floor でカバーできる
> > ので、round_up と round_down は余計かなと考えたのです
> > が、どうでしょう?
>
> あ、なるほど。というか、これって、正負によって、利用者が使い分けろって
> 事でしょうか?
ということです。 理由は、
 正と負の数を同時に丸めながら実行する処理は少ない(と思う)。
 「ceil と floor は一方向の切り上げ/切り捨て」で「round はゼロ
 に向かっての四捨五入」で統一(多分、半ページで説明できる)。
です。

> 要は、小数点を中心とした、(Excel などで標準の)まるめの機能が欲しいとい
こういう要求は、他からも出てきそうな気がします。

> うだけですから。そして、この機能は有効桁数を中心とする BigFloat とは相
> 反するものですし、電卓や Excel でもなじみのある動きでもあるので、Float
> に入れるのが良いかな、という感じです。
>
「BigFloat とは相反するもの」かどうかは、良く分かりませんが
Excel のような使い方をした場合「Float では桁数が足りないの
で BigFloat を使用するケース」があるかもしれませんね。

送信者 : "Wakou Aoyama" [ruby-math:00328]
> ません。従って、ceil, floor, round 等は、それぞれに用意される必要があ
> ると思います。
>
メソッドを増やすのか、既存のメソッドの機能を追加するかですね。
筋の通った機能追加なら、メソッドを増やすよりもよいと思うのです
が、はたして筋が通っているかどうかですね(若干他人任せ)。

> まあ、BigFloat に、電卓モードというか、Excel モードというか、小数点か
> らの桁数によるまるめ機能という手もあるかとは思いますが。これが出来るな
> ら、内部 10 進計算という利点もありますから、困った時には BigFloat で、
> という方向もありですね。
>
試しに、再度 ceil、floor、round の引数の意味を若干 Excel 風に
変更してみますか?
Float を検討する上でのケーススタディにもなりますね。

送信者 : "Wakou Aoyama" [ruby-math:00332]
> > In[1]:= SetAccuracy[123456 10^-3, 2]
> > Out[1]= 123.5
>
> なるほど。これはいいですね。BigFloat は、この2つの基準を持つという方
> 向でどうでしょう?
>
ceil、floor、round で Accuracy を指定するくらいなら簡単ですが、
BigFloat オブジェクトに Accuracy 属性を持たせるとなると...
ちょっと、面白いことではあります。

>
> で、やはり、ruby-math まである Ruby ですから、2.0 あたりでは、BigFloat
> も標準で欲しいかも。
>
「標準で配布」なら喜んで。ただ、「標準で Builtin」 は Fixnum<-->Bignum
のようにシームレスにいかない(ユーザはそれを期待する?)という(底が
異なる)大問題がある BigFloat は難しいと思います。
底を同じにしてシームレスな Bigfloat なら Builtin で欲しい気がします。

> Perl の CPAN モジュールのような、RAA からのインストールを手軽に行なう
> 手段を提供する方がより良いでしょうね。
同感です。

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
Home Page: http://www.tinyforest.gr.jp