[#1219] ruby animal — OZAWA Sakuro <crouton@...>

小澤さく@塩尻Internetです.

18 messages 1996/12/09

[#1256] ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

21 messages 1996/12/12
[#1257] Re: ruby 0.99.4-961212 available — Yasuo OHBA <jammy@...> 1996/12/12

大庭@SHLJapanです.

[#1258] Re: ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto) 1996/12/12

まつもと ゆきひろです.

[#1259] Re: ruby 0.99.4-961212 available — WATANABE Hirofumi <watanabe@...> 1996/12/12

わたなべです.

[#1261] Re: ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto) 1996/12/12

まつもと ゆきひろです.

[#1290] ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

32 messages 1996/12/17
[#1300] Re: ruby 0.99.4-961217 will be available — sinara@... 1996/12/17

原です。

[#1305] Re: ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto) 1996/12/17

まつもと ゆきひろです.

[#1308] Re: ruby 0.99.4-961217 will be available — gougi@... (Shigeru Gougi) 1996/12/17

ごうぎ@TCIです。

[#1341] Re: ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto) 1996/12/18

まつもと ゆきひろです.

[#1342] Re: ruby 0.99.4-961217 will be available — sinara@... 1996/12/18

原です。

[#1345] [BUG?] access string out of range — sinara@... 1996/12/18

原です。

[#1330] Re: Rational and Complex — Shin-ichiro Hara <sinara@...>

原です。

30 messages 1996/12/17
[#1335] Re: Rational and Complex — sinara@... 1996/12/18

原です。

[#1359] Re: Rational and Complex 1996/12/18

けいじゅ@SHLジャパンです.

[#1423] 配列への grep — (Dezawa Shin-ichiro) <dezawa@...>

出沢です

14 messages 1996/12/23

[#1469] wish ... — Noritugu Nakamura <nnakamur@...>

25 messages 1996/12/24
[#1470] Re: wish ... — matz@... (Yukihiro Matsumoto) 1996/12/24

まつもと ゆきひろです.

[ruby-list:1313] Re: Rational and Complex

From: Shin-ichiro Hara <sinara@...>
Date: 1996-12-17 07:31:11 UTC
List: ruby-list #1313
原です。

> けいじゅ@SHLジャパンです. 

> >Rational と Complex ちょっと眺めてみたんですが、型の変換や
> >関数名の使い回しが大変なんですねー。こんなに大変とは思わな
> >かった。
> 
> すでに存在するクラスに埋め込むので, 色々とめんどくさいですよね. あと,
> rubyはとりあえず新しい数を組み込めるようになっていますが, あくまでもと
> りあえずなので, そこが面倒なところです. Smalltalkなどはもっと簡単にで
> きます.


はー、そうなんですか。そういえば Smalltalk は全然知らない。(^^;


> >>  Math.sqrt(a)
> 
> >ホント難しい。分かりません。やっぱりニュートン法なんでしょうか。
> >開平法か?
> 
> 開平法です. 手で行なう場合は, 10進で2桁づつ行ないますが, このメソッド
> では, 16進で32桁毎に行なっています.

うーん、なるほど。


> ニュートン法も考えなくはなかったのですが, あれはあくまで近似法で, 開平
> 法のようにぴったり値が定まるわけでもないのでやめました.

それでも誤差の評価はできるので、何桁一致するためには何回やればいいか
決められますよね。


> >#昔、MIX の assembler 会議で sqrt() 合戦をやった。
> 
> assemblerでですか.... なかなか根性ありますね(^^;;;

いえ、結局私は assembler もできないので、Cで書いてました。(^^;
お題は「x < 2^32 の整数 x の sqrt を求めよ」というもので、
私の結論としては

/* 2^30 <= x < 2^32 について root を計算する */
unsigned long isqrt(unsigned long x)
{
    unsigned long a, b;
    a = 143257 - 202860544/(1582+(x>>22));
    a = (a + x/a)/2;
    b = (a + x/a)/2;
    return a > b ? b : a;
}

です(証明あり)。ここで2回ニュートン近似を使ってますが、これを
1回にできるかどうかとか議論してました。実はできるのですが、、(^^;


                           Shin-ichro Hara(Nagaoka Univ.of Tech.)

In This Thread

Prev Next