638-849

416-637 subjects 833-1028

Rational の高速化
0638 [GEC01122@ni ] 早速入手して拝見しました。大変参考になりました。

Rational の高速化
0639 [GEC01122@ni ] 色々試してみた結果 gcd,reduce,new,Rational 位を C で書けば充分みたい

APRCL primality test
0640 [kdm@ko e- os] 直接には ruby-math の話題では無いのですが,

Field of Ruby/Mathematica
0641 [daisu-ik@is ] いけがみと言います。作っている Ruby/Mathematica の話題を振らせて下さい。

Bugnum の積
0642 [kdm@ko e- os] Bignum の積 * に対抗した積をスクリプトで作ってみました.
0643 [kdm@ko e- os] 訂正.

NMatrix.parse
0644 [rubikitch@ru] NMatrixで行列の指定をMATLABライクに行うNMatrix.parseを書いてみました。

Re: Forward: inconsistence in class complex
0645 [keiju@ra io ] ruby-mathに行きます.
0646 [masa@ir is s] 削除賛成です。利用者としてはあってもなくてもいいんですが、
+ 0647 [daisu-ik@is ] real part が @real だから、4文字で揃うのはいいですね。
| + 0648 [daisu-ik@is ] Numeric が持つ
| | 0651 [kdm@ko e- os] Real に対する Integer と同様に
| + 0649 [gotoken@no w] Comparable でなくなる点について Cris は OrderedNumeric を導
| | 0650 [daisu-ik@is ] や、僕はそういったことを知りませんでした。%(..
| + 0652 [keiju@ra io ] うーん. わからんでもないです.
+ 0657 [keiju@ra io ] 進みが遅くて申し訳ない.
  0658 [masa@ir is s] 結構です。
  0659 [keiju@ra io ] はい.
  0660 [masa@ir is s] わかりました。使ってみてからまた考えます。
  0661 [keiju@ra io ] どうもです.

GMP Floating-point and Fast Automatic Differentiation
0653 [tayamagu@nu ] 多倍長浮動小数点数(可変長)をrubyで使用したいと考えてます.
0654 [daisu-ik@is ] BigFloat library はいかがですか。
0655 [tayamagu@nu ] 紹介ありがとうございます. BigFloatも試してみたいと考えてます.

Re: [ruby-dev:16457] 今時の  "Algebra"
0656 [sinara@bl de] う、うっかり、ruby-dev に流してしもた。

gcd in rational.rb
0662 [t29x0595@ip ] rational.rbやmathn.rbの中にあるgcdなのですが、
0663 [sinara@bl de] mathn.rb のってのは、Integer#gcd2 ですね。これは因数分解
+ 0664 [daisu-ik@is ] あてずっぽなので、信用してほしくないのですが、
| 0665 [sinara@bl de] 今読み返したら、私の N.gcd(N) のテストってのは、極端すぎてあまり
| 0666 [t29x0595@ip ] ご返答ありがとうございます。
+ 0667 [sinara@bl de] あ、mathn.rb は rational.rb を require してるので、
+ 0668 [keiju@ra io ] ために作ってみただけですね. そんなものをmathnの先頭においておくのは何な
+ 0669 [sinara@bl de] あれ、とんちかんな事言ってるな。while がブロックを取るわけ

power
0670 [sinara@bl de] matrix.rb で ** の定義の中で
+ 0671 [t29x0595@ip ] 指数が0の時は、逆行列を先に計算すると勿体ないような気がします。
| + 0672 [sinara@bl de] ああ、確かに 0 の時はもったいないですね。
| | 0674 [t29x0595@ip ] 先ほどは行き違いで、同じようなことを書いてしまいました。
| | 0675 [sinara@bl de] ああ、これは私が書いていたのと一字一句同じです。
| | 0677 [sinara@bl de] と、思ったのですが、これも [ruby-math:00671] のコードも最後
| + 0673 [t29x0595@ip ] 書いてはみたものの、あまり速くないですね。
+ 0676 [keiju@ra io ] ども.
  0678 [sinara@bl de] そうです。これはこれでいいと思います。
  0679 [GEC01122@ni ] 私は次のようにしています。
  0681 [sinara@bl de] やっぱり少しは違いますね。でも今回の場合、呼び出しの深さは
  0683 [t29x0595@ip ] 実用上スピードが求められるのは、行列が大きいときだと勝手に仮定すると、

complex#/ problem
0680 [keiju@ra io ] Matrix#detやMatrix#inverseの時に気が付くべきでしたが, Complex#/でも同様
0682 [sinara@bl de] やっぱりこれって Int/Int -> Rational と連動するんじゃないかなあ。
0684 [keiju@ra io ] かなぁ... じゃなくてぇ. でも, 原さんは int/int->int派だったはずでしたが
0685 [sinara@bl de] いや、だから今回の案には私は反対なのです。
0686 [keiju@ra io ] そうだったのかぁ(^^;;;
+ 0687 [sinara@bl de] 5. Matrix については 1. で、Complex は 3.
+ 0688 [masa@ir is s] これに、other が Integer の Complex の場合の処理も
  0689 [keiju@ra io ] えっと. otherがComplexでその実数部と虚数部が整数の時ってことですよね?
  0690 [masa@ir is s] あ、なるほど。失礼しました。
  0692 [GEC01122@ni ] 私の意見はいうまでもないと思って黙っていましたが、勿論賛成です。
  + 0694 [sinara@bl de] 固執してないですよ。固執してるとしたら、/ が Integer に対して
  + 0703 [keiju@ra io ] でしょうね(^^;;;

int/int [Re: complex#/ problem]
0691 [keiju@ra io ] とりあえず. 後半だけにしぼって.
0693 [sinara@bl de] だいたい、そういう事です。
+ 0695 [daisu-ik@is ] ruby 1.6.7 の bignum.c の rb_big_eq を見ると
| 0696 [matz@ru y- a] なるほどそこが問題なのね。ほかのnumeric同様にfalseを返すので
+ 0697 [t29x0595@ip ] require "mathn"
  0698 [daisu-ik@is ] それは、 mathn を require すると
  0699 [t29x0595@ip ] なるほど。
  0717 [daisu-ik@is ] blade の namazu で検索しても PEP 238 がでてこなかったので、
  + 0719 [keiju@ra io ] 心強くなりますね(^^;;
  + 0730 [sinara@bl de] 見てみました。Python は、さしあたって int/int -> float に
    0732 [matz@ru y- a] 「float は real の近似」も「Rational が導入された時点で
    0734 [sinara@bl de] 多分 int/int -> float に耐えられない難民がたくさん出て
    0735 [daisu-ik@is ] Python では // を切り下げ演算として残すらしいので、

Re: int/int [Re: compl
0700 [GEC01122@ni ] 私の発言が反発を招いてしまったのなら残念です。
+ 0701 [sinara@bl de] これって、
| 0704 [keiju@ra io ] ちなみに, Smalltalkでは
| + 0705 [GEC01122@ni ] 正確にいうと、 int/int -> int の立場を取れば、当然
| | 0706 [GEC01122@ni ] Unify=true を default にしたら? という意味です。
| | 0707 [keiju@ra io ] 常にってことです?
| | 0708 [matz@ru y- a] そういうことです。もっとも「数学的きれいさ」を実現したいわけ
| + 0713 [sinara@bl de] え、そうですか?「ボクこの前使いました」じゃ根拠にならないか。(^^;
|   0720 [keiju@ra io ] いや. ないとはっていません. 身近な話では, 2分検索とかありますので.
|   0722 [GEC01122@ni ] 例えば int/int -> int ならば
+ 0702 [keiju@ra io ] 私もこれを聞きたいですね.
  0714 [sinara@bl de] まさに「体も Euclid 整域とみなす」ってことです。

Scalar class?
0709 [matz@ru y- a] Integer#stepってメソッドがあって
+ 0710 [daisu-ik@is ] まつもとさんのご指摘のように、#step を
| + 0711 [daisu-ik@is ] さきほどのメールに書いたことをまとめると、僕の意見は、
| + 0715 [matz@ru y- a] そうなんですか。そのような条件が必要だろうとは思っていて、そ
|   0721 [keiju@ra io ] えー. 名は体を表すべきなので.
|   0723 [matz@ru y- a] ま、それは納得できる主張ではあります。
|   0728 [keiju@ra io ] 名前にこだわるまつもとさんとしてはね(^^;;
|   0729 [matz@ru y- a] んじゃ、そういうことで。complex.rbでstepをundefしときますね。
+ 0712 [masa@ir is s] Floatの場合、こう書くのと idx に誤差が積もっていくとか
  0716 [daisu-ik@is ] この場合、 n は (positive) Integer あるいは、to_i が意味を持つ場合に
  0718 [masa@ir is s] n は繰り返しの回数なので、非負の整数に限定しています。

$BBjL>K:$l$G$9 (^^;
0724 [GEC01122@ni ] 正木です。
0725 [matz@ru y- a] えーと、「離散的な順序に限った方が良い」っていうのはstepは
0726 [masa@ir is s] 私は離散的うんぬんというよりは、一般的な step は
0727 [matz@ru y- a] それはあると思います。Floatに関して誤差が拡大しない扱いを行

$BBjL>K:$l$G$9 (^^;
0731 [GEC01122@ni ] 正木です。
0733 [matz@ru y- a] 誤差を含むFloatに「数学的な整合性」は常には期待できないのでは?

$BBjL>K:$l$G$9 (^^;
0736 [GEC01122@ni ] 正木です。
+ 0737 [masa@ir is s] 0.0.step2( 11.7, 0.9 )
+ 0738 [matz@ru y- a] そうなんでしょうか。naiveな実装では大きな誤差が出てしまう

$BBjL>K:$l$G$9 (^^;
0739 [GEC01122@ni ] 正木です。

Re: Fixes for the new step methods in the range.c & numeric.c
0740 [matz@ru y- a] 以下のようなメールがruby-talkに来たのですが、私にはどこがどう違うのか
0741 [masa@ir is s] 英語にするのが面倒なのでこっちに書きます。

Re: [ruby-dev:17021] Re: 標準添付案
0742 [horinout@ku ] 作者の田中さんが、ruby-dev に入ってないとか?

Re: [ruby-list:35091] Re: Y Combinator
0743 [gotoken@no w] # マニアックなので ruby-math に持ってきました。
+ 0744 [ttate@kt ja ] 僕ですね.
+ 0745 [sinara@bl de] そういえば、ごとけんさんの専門に近い話ですよね?
  + 0746 [sinara@bl de] いやあ、だからいい加減な話だって言ったでしょう?
  + 0747 [ttate@kt ja ] 不動点定理っていろいろあるんですね.他にもあるのでしょうか?
    0748 [gotoken@no w] 多分もっともよく知られてるのはいわゆる縮小写像の定理でしょう。
    0749 [sinara@bl de] やっぱり、不動点定理というと「球体上の連続変換は不動点を持つ」と

$BBjL>K:$l$G$9 (^^;
0750 [GEC01122@ni ] 正木です。
0751 [sinara@bl de] F, V はある category のオブジェクトで、「写像」を射と考えます。

$BBjL>K:$l$G$9 (^^;
0752 [GEC01122@ni ] 正木です。

[Q]Gamma & Zeta functions
0753 [mas@st r. e.] 今、Ruby で、Γ関数と Riemann の ζ関数とを使いたいと思っています。
0754 [GEC01122@ni ] Real Class の修正が重なったのと、自分で使っていて、ある程度実用的になった
0755 [GEC01122@ni ] [ruby-math:00754] での

hash of Rational
0756 [GEC01122@ni ] ある計算中に次のような error が出ました。
0757 [keiju@ra io ] 了解. Complex#hashも同じですので, そちらも直します.
0758 [matz@ru y- a] そっちはすでに直っているように思います。
0759 [keiju@ra io ] なおっていますね. 松本さんがチェックインしている気がしますね.
0760 [akr@m1 n. rg] 指摘したのは私です。
0761 [keiju@ra io ] なるほど. でも, 変更の理由は違うんですね.
0762 [daisu-ik@is ] Rational だと、reduce してから hash をとらないと同一性が保証できません。
0763 [keiju@ra io ] 正確には同一性ではないですね. 同値性でもないし, 何と呼ぶべきでしょうね...


0764 [matsushita@k] 楕円弧の短径・長径・中心座標を求めたいのですが
0765 [gotoken@no w] # どこらへんが ruby-math かはともかくとして

楕円弧の決定 (Re: )
0766 [kdm@ko e- os] 条件が少ないので, 楕円弧が確定しないと思います.
0768 [toyofuku@ju ] 条件が足りなそうのは皆さんが書かれているとおりなので少し


0767 [matsushita@k] 早速のお返事をありがとうございます。


0769 [matsushita@k] 豊福様、どうもありがとうございます。

Miller-Rabin Algorithm
0770 [hironobu@h2 ] Miller-Rabin法という確率的に素数かどうかを判定するアルゴリズムをRubyの

Bignum#div
0771 [GEC01122@ni ] ruby 1.7.3 (2002-10-04) [i686-linux] を使ってみました。
0772 [matz@ru y- a] 追加します。

Rational#to_f
0773 [GEC01122@ni ] 前にも書きましたが、現在の Rational#to_f は(round,ceil,floor も)
0785 [GEC01122@ni ] [ruby-math:00773] での Rational#to_f に
0786 [keiju@ra io ] ごめんなさい. 気にはなってはいたのですが...
0788 [GEC01122@ni ] 私は逆に出来るだけ Float の実装に依存しない書き方の方が良いと思いますが。
0790 [keiju@ra io ] あ. 正木さんのコードを見ていて気が付きました. 分母や分子がfloatにする
0791 [GEC01122@ni ] と書きましたが、 Float の除算が予想以上に信用出来ないことが分かりました
0792 [GEC01122@ni ] 石塚さんの code 拝見しました。([ruby-math:00790] Re: Rational#to_f )
0794 [keiju@ra io ] うーん. 難しいなぁ...
0795 [GEC01122@ni ] これは勘違いでした。
+ 0796 [matz@ru y- a] がーん。
| 0797 [GEC01122@ni ] 64 bit Float の構成は
| 0798 [shudo@co pu ] これは IEEE 754 の倍精度数のパラメータです。
| + 0799 [akr@m1 n. rg] 昔、
| + 0800 [akr@m1 n. rg] では C 言語前提ならなにが使えるかというと、
|   0803 [keiju@ra io ] マジックナンバーといえば
|   + 0804 [GEC01122@ni ] しゅどうさんの
|   | 0805 [GEC01122@ni ] ruby 1.7.3 (2002-11-07) [i686-linux] で色々試してみた結果から
|   | 0806 [GEC01122@ni ] class Numeric
|   | 0810 [keiju@ra io ] 私も組み込みになると良いと思います. これって, (正の)Integerの実際のビッ
|   + 0807 [matz@ru y- a] 了解です。<float.h>って普遍的なんでしたっけ。
|     0808 [akr@m1 n. rg] ANSI C ならば。
|     0809 [GEC01122@ni ] やはり機種依存の code はまづいので、石塚さんの code を少し書き直した
|     0811 [keiju@ra io ] 妙にエレガントですね(^^;;; これにしようと思います.
|     0812 [GEC01122@ni ] どんな Float の実装があるか分からないのでなんとも言えませんが、
+ 0801 [matz@ru y- a] ところで、size==4でFixnumかどうかを判定しているようですが、

Forward: matrix.rb bug
0774 [matz@ru y- a] 以下のような報告が来たのですが、どうなんでしょう?
0775 [keiju@ra io ] えー. これは例の, 1/2 = 0 の副作用ですね.
0776 [matz@ru y- a] なるほど。でも、
+ 0777 [daisu-ik@is ] 件の determinant は 50 で、 -50 ではないです。
| 0778 [daisu-ik@is ] 思いつくままに書いてみました。
| 0779 [daisu-ik@is ] Fugal さんは本文で書き写し間違えてることに気がつきました。
+ 0780 [kdm@ko e- os] .....略
+ 0781 [keiju@ra io ] 他にもいろいろメイルが飛んでいますが, これだけにリプライします.
  0782 [matz@ru y- a] そうなんですか。
  0783 [keiju@ra io ] ふーん. なるほど...
  0784 [matz@ru y- a] 具体的な実装方法はまだ考えていませんでした。

Float#to_rational
0787 [GEC01122@ni ] Float が(現在の実装で)表現している数値は
0789 [GEC01122@ni ] Float#error の訂正です:
0793 [GEC01122@ni ] [ruby-math:00789] Re: Float#to_rational で
0802 [shudo@co pu ] 正木さんは、x86 プロセッサが載ったマシンをお使いだということが判ります。

Bessel関数
0813 [Masahide.Kik]  ruby、大変便利に使わせていただいています。
+ 0814 [rubikitch@ru] るびきちです。
+ 0815 [matz@ru y- a] 特殊というかなんというか、これらの関数はPOSIXにはあるので提
  + 0816 [akr@m1 n. rg] FreeBSD のマニュアルには
  | 0817 [matz@ru y- a] Linuxのmanには
  | + 0818 [akr@m1 n. rg] もうちょっと調べてみました。
  | | 0819 [matz@ru y- a] ですねえ。一番簡単な確認法は問答無用で突っ込んでみることだっ
  | + 0820 [hironobu@h2 ] 新参者が口をはさんですいません。
  + 0821 [Masahide.Kik]  Rubyは、いろいろな環境で動くだけに互換性に気を使わなければ

-3**2 == 9 ?
0822 [GEC01122@ni ] [ruby-math:00773] Rational#to_f
0823 [matz@ru y- a] ソースを見ると1.6でごちゃごちゃやってたのが1.8ではすっきりし
0824 [matz@ru y- a] 分かった。1.6では"-3"を数値リテラルとして解釈してから、**の
0825 [matz@ru y- a] ruby-devにCCします。
+ 0826 [GEC01122@ni ] -1.5.floor ==  (-1.5).floor
| 0827 [matz@ru y- a] 実際には「-3」をひとかたまりに認識してこの優先順位を期待する
| 0828 [GEC01122@ni ] 数学の習慣では単項マイナスの優先順位は乗算よりは下です。
+ 0829 [akr@m1 n. rg] 時期を逸してしまった感がありますが...
  0830 [matz@ru y- a] もうちょっと具体的にお願いします。ちょっと考えたんですが、よ
  0831 [akr@m1 n. rg] まず、どういう挙動にしたいのかという仕様が問題でしょう。どうもそのへん
  0832 [matz@ru y- a] まったくです。いや、矛盾の少ない仕様がそうそうあるわけではな
  0834 [akr@m1 n. rg] 仕様が複数出て来る程に人的資源が潤沢なわけではないようで。
  0835 [matz@ru y- a] そのようですね、まあ、しょうがない。
  + 0836 [keiju@ra io ] でもないんじゃないかな... 単項演算子`-' とか(+)はなくして, リテラルだ
  | 0837 [matz@ru y- a] となると、符号の反転のためには演算子ではなく.negateのような
  | 0840 [keiju@ra io ] でも, '-'単項演算子をなくすってのは, やり過ぎかも(^^;;; 逆に ** をなく
  | + 0841 [matz@ru y- a] あ、やっぱり?
  | | 0842 [keiju@ra io ] いや. 私は, '**'演算子あった方がいいんですけどね(^^;;; 冪演算子が定義
  | | 0844 [daisu-ik@is ] いけがみです。'**' 演算子はあったほうが嬉しい派。
  | | + 0845 [hironobu@h2 ] exp modulo n には、普通はsquare-and-multiplyというアルゴリズムを使いま
  | | + 0847 [keiju@ra io ] いや. そうだとは思ったんですが, そんなに需要があるとは想像できなかった
  | |   0848 [matz@ru y- a] 公開鍵暗号では大きい数値を扱うので良く使われるのだそうです。
  | |   0849 [keiju@ra io ] ほー. なるほど...
  | + 0843 [keiju@ra io ] 話は戻りますが.
  + 0838 [akr@m1 n. rg] 考え方を知るためのネタとして出したので、とくに採用すべきだというわけで
    0839 [matz@ru y- a] あ、もちろん。
    0846 [akr@m1 n. rg] merd では
threads.html
top