[#5809] mod_ruby-0.0.7 — Shugo Maeda <shugo@...>

前田です。

63 messages 1999/03/01
[#5845] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/01

前田です。

[#5860] Re: mod_ruby-0.0.7 — moochan <moochan@...> 1999/03/02

moochan です.

[#5892] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/02

前田です。

[#5855] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/01

前田です。

[#5919] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/03

前田です。

[#5895] [REQ] 中置の def — EGUCHI Osamu <eguchi@...>

えぐち@エスアンドイーです。

18 messages 1999/03/02
[#5907] Re: [REQ] 中置の def — EGUCHI Osamu <eguchi@...> 1999/03/03

えぐち@エスアンドイー です。

[#5965] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 )

けいじゅ@日本ラショナルソフトウェアです.

28 messages 1999/03/04
[#5981] Re: Precision in Mathematica (Re: Bigfloat) — gotoken@... (GOTO Kentaro) 1999/03/04

ごとけん

[#6053] Re: Precision in Mathematica (Re: Bigfloat) — matz@... (Yukihiro Matsumoto) 1999/03/06

まつもと ゆきひろです

[#6150] Re: Precision in Mathematica (Re: Bigfloat) — matz@... (Yukihiro Matsumoto) 1999/03/09

まつもと ゆきひろです

[#6159] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/09

えぐち@エスアンドイー です。

[#6197] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/10

けいじゅ@日本ラショナルソフトウェアです.

[#6203] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/10

えぐち@エスアンドイー です。

[#6224] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/11

けいじゅ@日本ラショナルソフトウェアです.

[#6238] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/11

えぐち@エスアンドイー です。

[#6302] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/12

けいじゅ@日本ラショナルソフトウェアです.

[#6304] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/12

えぐち@エスアンドイー です。

[#5970] [REQ] variable of regex — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

43 messages 1999/03/04

[#6090] Thread#kill — Shugo Maeda <shugo@...>

前田です。

24 messages 1999/03/08

[#6328] Re: Ruby 1.3.1-990315 — WATANABE Hirofumi <watanabe@...>

わたなべです.

41 messages 1999/03/15
[#6329] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/15

まつもと ゆきひろです

[#6331] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/15

青山です。

[#6338] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6347] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6348] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6350] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6353] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6354] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6434] Time#+ — Koji Arai <JCA02266@...>

新井です。

19 messages 1999/03/22
[#6442] Re: Time#+ — matz@... (Yukihiro Matsumoto) 1999/03/22

まつもと ゆきひろです

[ruby-dev:6161] Re: Bigfloat [compare to NaN]

From: EGUCHI Osamu <eguchi@...>
Date: 1999-03-09 14:16:22 UTC
List: ruby-dev #6161
えぐち@エスアンドイー です。

>>> In message [ruby-dev:6153] Re: Bigfloat [compare to NaN] 
    On Tue, 9 Mar 1999 18:55:57 +0900, keiju@Rational.Com (石塚圭樹 ) said:

keiju> けいじゅ@日本ラショナルソフトウェアです.
keiju> 
keiju> In [ruby-dev :6065 ] the message: "[ruby-dev:6065] Re: Bigfloat
keiju> [compare to NaN] ", on Mar/07 21:26(JST) EGUCHI Osamu writes:
keiju> 
keiju> >えぐち@エスアンドイー です。

keiju> >keiju> いちおう, coerceで精度の低い方に合わせるのでも
keiju> >keiju> おなじ効果がありますが...
keiju> >
keiju> >その時だけってケースもあるのでは???
keiju> 
keiju> 確かにあるかも知れませんね.
keiju> 
keiju> >あ、coerce を特異メソッドにすればいいのですね ^^;;;
keiju> 
keiju> うーん. できないこともないでしょうけど...

一般にそういう事が必要なケースって、あまりないですね ^^;;

keiju> >そうなんだけど、組み込みのクラスが coerce を使ってない
keiju> >場合もあるので、 Fixnum#coerce を再定義しても
keiju> >
keiju> >	1+1.1 => 2
keiju> >
keiju> >には出来なかったりするのでした。
keiju> >#この例では、無限精度の Fixnum に合わせていて、逆ですが、、
keiju> >(Fixnum#+ を再定義すればいいのだけれど、、、)
keiju> 
keiju> ですね. これって, Fixnum#+でFloatとの演算を行なっちゃっているからです
keiju> ね.
keiju> 
keiju> この辺りも, 新coerceでは解消された方がよいのかも...

それと、Bigfloat を組み込む時ですね ^^)

keiju> >fix_plus(x, y) の
keiju> >
keiju> >    if (TYPE(y) == T_FLOAT) {
keiju> >        return rb_float_new((double)FIX2LONG(x) + RFLOAT(y)->value);
keiju> >    }
keiju> >
keiju> >の様な、「言語組み込みの数値の型変換」はなくすべきかも知れません。
keiju> >#効率の問題があるのですが ^^)l
keiju> 
keiju> 型が違う時だけだから, よいでしょう.

これは「coerce の呼び出しで若干効率が落ちても」と言う意味ですね。

keiju> >関数ライブラリの多くは、
keiju> >  テーブルルックアップ法で第一近似を得てから
keiju> >  ニュートン法などで必要な精度を得る
keiju> >戦略で実装されていますが、可変精度でこれが使えるのか、
keiju> >考えています。
keiju> 
keiju> おぉ.
keiju> 
keiju> >sqrt に対する ** に様な、十分精度の出そうな質の良い逆関数が
keiju> >あれば問題ないのですが、sin() などでも、目的の精度が出たかの判断に
keiju> >難ありですね。
keiju> 
keiju> この辺りの関数は, ニュートン法とかじゃなくてテーラー展開とか使うのでは? 
keiju> そうでもないのかな?

下の atan とピタゴラスは、そのことを考えてました。
考えて見れば、級数なら比較的精度の予測は可能ですね。
#PI より e が簡単に求められそうな感触と同じ。

keiju> >(atan と三平方で判定すると、それ自体の精度に疑問が出そう、、)
keiju> >
keiju> >  def cos(t) sqrt(1 - sin(t) ** 2) end
keiju> >
keiju> >でバランスさせる等の工夫も必要そうだし、、
keiju> ># Float を越える精度で sin() を得たい人がいるかは疑問 ^^)l
keiju> 
keiju> うーん.(^^;;;

この用途には、代数式クラスの方が適用用途が広そうですね。

  % ruby -rM -e 'a = 1 + PI + 3;p a; puts a'
  (add 4 PI)
  (4 + PI)
  % ruby -rM -e 'a = 1 / 2 * 3 / 4;p a; puts a'
  (div 3 8)
  3 / 8
  % ruby -rM -e 'a = "x" + 1 / 2 * "y";p a; puts a'
  (div (add 0 (mul 2 "x") "y") 2)
  (2 * x + y) / 2

こんな事が出来るライブラリを作りました。

今のところ

 + 四則
 + Neg (x * -1)
 + 通分
 + 約分
 + 文字式
 + 定数 PI

に対応しています。
ゆくゆくは、

 + 初等関数
 + 複素数
 + 素因数分解

のサポートぐらいは目指したいです。
#式の変形の気息をハードコードしてるのが難点 ^^;;

M.rb の公開は ML より ftp の contrib の方は良いでしょうか?

	% wc M.rb
	     389    1332    8733 M.rb
です。
	えぐち

In This Thread