[#5809] mod_ruby-0.0.7 — Shugo Maeda <shugo@...>
前田です。
前田です。
moochan です.
青山です。
前田です。
moochan です.
前田です。
moochan です.
moochan です.
まつもと ゆきひろです
わたなべです.
前田です。
青山です。
前田です。
moochan です.
福間@福岡 です。
moochan です.
まつもと ゆきひろです
[#5895] [REQ] 中置の def — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
えぐち@エスアンドイー です。
In message <19990303103731R.eguchi@shizuokanet.ne.jp>
[#5965] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルソフトウェアです.
ごとけん
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
まつもと ゆきひろです
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
えぐち@エスアンドイー%徳山出張中 です。
[#5970] [REQ] variable of regex — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
青山です。
前田です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
[#6009] Re: [REQ] 中置の def — "Takehiko Ueki" <takehiko@...>
ども、植木です。
まつもと ゆきひろです
[#6059] [PATCH] str_index — IKARASHI Akira <ikarashi@...>
五十嵐です。
[#6090] Thread#kill — Shugo Maeda <shugo@...>
前田です。
前田です。
前田です。
[#6141] Retry of mod_ruby — moochan <moochan@...>
moochan です.
moochan です.
[#6213] Ruby 1.3.1-990311 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.1-990311 is out, check out:
[#6229] exception re-raise in Thread#join — Shugo Maeda <shugo@...>
前田です。
[#6237] [REQ] p -10 == p(-10) — Koji Arai <JCA02266@...>
新井です。
[#6242] "a\n".gsub(/$/, '-') — Wakou Aoyama <wakou@...>
青山です。
[#6259] str += — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#6276] Re: [ruby-list:12784] String#index, String#unpack — IKARASHI Akira <ikarashi@...>
五十嵐です。
[#6288] [REQ] interh.h — Shugo Maeda <shugo@...>
前田です。
[#6328] Re: Ruby 1.3.1-990315 — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
新井です。
新井です。
青山です。
新井です。
青山です。
[#6334] Re: Ruby 1.3.1-990315 — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
新井です。
藤本です、こんにちは。
[#6356] [PATCH] ext/extmk.rb — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#6426] wrong line number — Koji Arai <JCA02266@...>
以下のスクリプトが出力する行番号がおかしいです。
[#6434] Time#+ — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
五十嵐です。
[#6446] sub("string", "string") — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
[#6491] about cur_mid — ttate@...
立石です。
[ruby-dev:6303] Re: Bigfloat [compare to NaN]
えぐち@エスアンドイー です。
>>> 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 する事も出来そうだ。 (^^)
#効率は悪ソ (^^;;;
えぐち