[#44189] [ANN] Rails勉強会@東京 第24回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2007/11/08
[#44190] Ruby/KAKASIのインストールに失敗する — <boku.charhan@...>
お忙しいところ失礼します、WINDOWS XPを使っているんですが
8 messages
2007/11/08
[#44197] Re: Ruby/KAKASIのインストールに失敗する
— Nobuyoshi Nakada <nobu@...>
2007/11/09
なかだです。
[#44192] [ANN]Ruby勉強会@新潟 第1回のお知らせ — "Masatoshi Itagaki" <masatoshi@...>
各地でRuby勉強会が開催されるようになっていますが、新潟でも開催しようと
6 messages
2007/11/08
[#44207] REXML で UTF16 のファイルが読み込めない — <rook401@...>
REXML で UTF16 のファイルを読み込もうとするとエラーになります。
5 messages
2007/11/12
[#44208] はじめまして — "Ohto, Yasunori" <Yasunori.Ohto@...>
はじめまして
8 messages
2007/11/12
[#44224] WinXPでのCursesプログラム — "Masao Ochi" <ochi@...>
初めて投稿させていただきます。越智と申します。
5 messages
2007/11/15
[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>
ささだです.
16 messages
2007/11/17
[#44241] Re: Float を利用するRubyプログラム
— SASADA Koichi <ko1@...>
2007/11/19
ささだです.
[#44245] Re: Float を利用する Ruby プログラム
— NISHIMATSU Takeshi <t_nissie@...>
2007/11/19
西松と申します。
[#44246] 数学関数が足りない (Re: Re: Float を利用する Ruby プログラム)
— Nobuyoshi Nakada <nobu@...>
2007/11/19
なかだです。
[#44250] Re: 数学関数が足りない (Re: Re: Float を利用する Ruby プログラム)
— NISHIMATSU Takeshi <t_nissie@...>
2007/11/19
西松です。
[#44263] RUBY FORUM 2008のお知らせ — "TAISEI OKAZAKI" <okazaki@...>
度々のお知らせ失礼いたします。
4 messages
2007/11/21
[#44286] TmailをgemでWindowsにインストールしようとするとエラーになる — "garyo hosu" <garyohosu@...>
いつもお世話になっております。garyoです。
7 messages
2007/11/30
[#44287] Re: TmailをgemでWindowsにインストールしようとするとエラーになる
— rubikitch@...
2007/11/30
From: "garyo hosu" <garyohosu@gmail.com>
[ruby-list:44245] Re: Float を利用する Ruby プログラム
From:
NISHIMATSU Takeshi <t_nissie@...>
Date:
2007-11-19 04:34:16 UTC
List:
ruby-list #44245
西松と申します。
SASADA Koichi wrote:
> 実際に精度がどれくらい必要なのか,今はどれくらい遅いのか,どれくら
> い速くなれば十分なのか,等の利用用途の調査が必要かと考えております.
>
> というわけで,まだこの話に付き合ってくれる方,興味のある方はyarv-
> dev@quickml.atdot.net という ML へご参加ください.
別のMLに移動する前に4つほどぼくの思っていることを書きます。
To: ruby-list, CC: yarv-dev です。
以下の4つを解決してくれそうな言語にF#があるのですが、Windowsでしか
使えなさそうなのと、買おうと思っていた本「Expert F#」がなかなか発売
されないので困っています。どんな言語なんでしょうかねぇ。Rubyがんばれ。
■1■遅い
やっぱ遅い。
■2■Rubyで数値計算ができたら、Rubyスクリプトで入力ファイルが書ける
多くの数値計算のプログラムでは必要なパラメータをファイルに書いておいて、それ
を読み込んでから計算を開始するというのが一般的です。たとえば、箱の中にボール
を8つ置いてシミュレーションをする場合、
# 8 balls
box_size = 2.0 2.0 2.0
ball = 0.33333333333333333 0.33333333333333333 0.33333333333333333
ball = 0.66666666666666667 0.33333333333333333 0.33333333333333333
ball = 0.33333333333333333 0.66666666666666667 0.33333333333333333
ball = 0.66666666666666667 0.66666666666666667 0.33333333333333333
ball = 0.33333333333333333 0.33333333333333333 0.66666666666666667
ball = 0.66666666666666667 0.33333333333333333 0.66666666666666667
ball = 0.33333333333333333 0.66666666666666667 0.66666666666666667
ball = 0.66666666666666667 0.66666666666666667 0.66666666666666667
などというファイルを用意するわけです。この方法には、自前でパーサを書かなけれ
ばいけないという欠点があります。パーサはコメント行や空行を読み飛ばしたり、
box_sizeやballなどのラベルを識別できなくてはいけません。エラー処理も欲しい
ところです。ball = 0.5 2.0/3 1/7.5 と書けるようにするためにはかなり複雑な
パーサが必要になります。パラメータを少しずつ変えて複数のシミュレーションを
するときにはシェルスクリプトなどで、入力ファイルを生成→プログラム実行、を
繰り返させたりします。Rubyで数値計算ができたら、たとえば
# 8 balls 文法的に間違っていたらごめんなさい。
box = Box.New
(1..2).each do |z|
(1..2).each do |y|
(1..2).each do |x|
box.put_ball(x/3.0, y/3.0, z/3.0)
end
end
end
size=3.0
while size<=5.0
box.box_size(size)
box.do_simulation
size+=0.1
end
と書けるようになります。これはとてもうれしいです。
■3■数学関数が足りない
現在のRubyは数学関数がちょっと足りません。以前、erf()とerfc()のパッチを採用
していただいたことがあるのですが、missing/erf.cを書かなければいけないのがやっ
かいでした。また、このファイルのライセンスでご迷惑をかけてしまったようでした。
もうC99にある数学関数ならmissingなしでもいいじゃん、と思います。
一方、Rubyの利点は型総称数学関数が簡単に書けることですね。引数がFloatなら
返り値もFloat、ComplexならComplexってやつ。Fortranなら当たり前で、Cだと
tgmath.hをインクルードするってやつです。
■4■精度はdoubleだけでよい
現在の多くのCPUは64bitで表されるいわゆる倍精度浮動小数点数の計算が高速で走る
ように設計されています。また、応用上、倍精度浮動小数点数で十分な場合がほとん
どです。拡張精度浮動小数点数や可変長精度浮動小数点数を取り扱えるにこしたこと
はないですが、いたずらに複雑になるだけなので、将来だれかが書いてくれるライブ
ラリに期待するのがよいのではないでしょうか。gfortranではGMPとMPFRライブラリ
を使ってゴニョゴニョやっているようですが。
--
love && peace && free_software
西松タケシ