[#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:6303] Re: Bigfloat [compare to NaN]

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

>>> In message [ruby-dev:6300] Re: Bigfloat [compare to NaN] 
    On Fri, 12 Mar 1999 20:42:16 +0900, keiju@rational.com (石塚圭樹 ) said:

keiju> けいじゅ@日本ラショナルソフトウェアです.
keiju> 
keiju> In [ruby-dev :6239 ] the message: "[ruby-dev:6239] Re: Bigfloat
keiju> [compare to NaN] ", on Mar/12 01:35(JST) EGUCHI Osamu writes:
keiju> 
keiju> >えぐち@エスアンドイー です。
keiju> >keiju> たぶん. 偶然近い項が交互に出ると桁落ちする見たいですね.
keiju> >
keiju> >丸め誤差はある程度の範囲で予測可能ですが、
keiju> >桁落ちは厄介ですね。
keiju> 
keiju> みたいですね.

級数を使う解法と精度について考えてみたのですが、
H/W and/or ライブラリの浮動小数点演算で、一旦計算してしまい。
指数がいくつになるか確かめ、解に必要とされる最小桁を
求め手しまう方法で、各項に必要とされる有効桁が出そうです。

まさか、ライブラリも指数部まで誤差ってはいないだろう
と言う良そうです。
#念のため、1桁か2桁良い精度で計算する必要ありかも、

keiju> >なるほど、 libm などをよんでいると、
keiju> >  『なんでぇこんなぁ、、回りくどい事するなぁ』
keiju> >と思った3日後に、『ぁんだ、誤差分を相殺してるのか』
keiju> >と言う具合に気づく事が多いです。、、、修行が足りないです。
keiju> 
keiju> ですね. 数値解析は難しい....

本当にそうですね、
この分野のプログラミングすると、
セキュリテイ関係をやっている時と同じ
ドライブ感(ぱらのいあ?)になります。
ただ、それが壮快感を伴っているのが違いますが。 (^^)

keiju> >keiju> >そういう仕組みを用意してあったおかげです。
keiju> >keiju> そういう仕組みって?
keiju> >
keiju> > + 演算子が数学的優先度をもっている
keiju> > + 組み込みの数値型の演算子も再定義できる
keiju> > + 名前に型がなく、オブジェクトに型がある
keiju> > + 式の内部に最適な Array クラスがある
keiju> > + 溢れを気にしないで済む Integer (Bignum) がある
keiju> 
keiju> >私は、これらを繋げただけです。
keiju> 
keiju> なるなる(^^;;;

and or は英語での出現順に評価で
&& || は論理 積/和 なので積が優先
の様な、細かいところまで良くできてるのですよね。 (^^)

keiju> >keiju> イテレータ? 不定積分て意味でした.
keiju> >
keiju> >Range のイテレタに式を渡すと言うイメージなので、
keiju> >不定積分は少し違いますね、Ruby の構文に類似の
keiju> >概念がないように思います。(表現が関数的になるって事ですね)
keiju> 
keiju> そっか. えぐちさんのは関数って概念がないんですね...

今のところないです。

例えば sin() なら

  class SinExpr < Expr
    def normalize
      # sin(x + 2 * Integer * PI) => sin(x)
      # sin(Integer * PI)         => 0
      # sin(-x)                   => Neg(sin(x))
      self
    end
    def initialize(t) @theta = t end
    def to_s() "sin(#{@theta})" end
    def inspect() "(sin #{@theta.inspect})" end
  end
  def sin(t) Sin.new(t).normalize end

あたりになると、想像しています。
問題は、恒等式を適用する部分をパターンマッチングで
実現しないと、コードが意味不明になりがちなことです ^^;;

ExprModule#nodes は式の複雑さを返すメソッドで、
恒等式を適用して、簡素になったら適用ならなかったら不要
と言う戦略を考えています。

問題は分子の同位体の様に有限でなく、
無限に順列組合せを生じてしまう点です。 ^^;;;

keiju> >いっそ文字式はイテレータとブロックで限り、文字列は
keiju> >対象から外そうかな、、
keiju> 
keiju> うーん. その方がよいかもですね.

その方向で、考えをまとめて見ます。

Expr は値もまた式なので、Proc に詰め込んでも
式の内部構造を、再利用できます。
以前話題になった、Proc#dump 相当のことが
構文木とは独立に実現できたわけです。

keiju> >そもそも整数の演算をことごとく、再定義しているので
keiju> >互換性は絶望的に低いんですが ^^;;;
keiju> 
keiju> (^^;;;

あるブロックの中でだけ、数値クラスの演算子群の
再定義を行ない、ブロックを抜けると元に戻る仕組みが
出来ると良いのですが、これは ruby を改造しないと、
実現できそうにないですね。

parse.y の scanner 部分でトークンの先頭が [0-9] だったら、
ユーザコードに制御を渡す仕組みが、あれば良いと思います。

任意基数の数リテラルもこれで実現できそうですね。

class Scanner
  def numeric(sign)
    result = 0
    base = 10
    r = 'r'
    while c = nextc
      case c
      when '0' .. '0' + base - 1
        result *= base
        result += c - '0'
      when r
        base = result
        warn if base < 2 or base > 10 + 26
        result = 0
        r = nil
      end
    end
    putback c
    result
  end
end

こんな漢字にユーザが Ruby のコードで
定義するわけです。
#Scanner#numericは適当 ^^;;;

をぉ、Bigfloat を scan する事も出来そうだ。 (^^)
#効率は悪ソ (^^;;;

   えぐち

In This Thread