[Gauche-devel-jp] Re: uvectorのwrite

Back to archive index

Shiro Kawai shiro****@lava*****
2004年 12月 2日 (木) 16:42:40 JST


ああ、昔、「いつか直さなきゃな」と思ったことをすっかり忘れて
いました。uvectorの書き直しをした時についでにやれば良かった…

とりあえずwrite-read同一性を保証するなら、下の変更で
いけるんじゃないかと思います。これだと「必要最小桁数表示」に
ならないので、必要以上に表示してしまうケースも出てきますが。

number.cのルーチンを使えばBurger&Dybvigのアルゴリズムで
必要十分な出力が得られますが、速度は遅くなります。
そのへんはいずれパラメータでカスタマイズできるようにしたいと思っています。

===================================================================
RCS file: /cvsroot/gauche/Gauche/ext/uvector/uvgen.scm,v
retrieving revision 1.3
diff -u -r1.3 uvgen.scm
--- ext/uvector/uvgen.scm	14 Nov 2004 03:16:30 -0000	1.3
+++ ext/uvector/uvgen.scm	2 Dec 2004 07:34:23 -0000
@@ -236,7 +236,7 @@
          `(EQ    . ,(lambda (x y)
                       #`"(,|x| == ,|y|)"))
          `(PRINT . ,(lambda (out elt)
-                      #`"Scm_Printf(,|out|,, \"%f\",, ,|elt|)"))
+                      #`"Scm_Printf(,|out|,, \"%.7f\",, ,|elt|)"))
          (common-rules 'f32)))
 
 (define (make-f64rules)
@@ -249,7 +249,7 @@
          `(EQ    . ,(lambda (x y)
                       #`"(,|x| == ,|y|)"))
          `(PRINT . ,(lambda (out elt)
-                      #`"Scm_Printf(,|out|,, \"%f\",, ,|elt|)"))
+                      #`"Scm_Printf(,|out|,, \"%.17f\",, ,|elt|)"))
          (common-rules 'f64)))
 
 (define (dummy . _) "/* not implemented */")
===================================================================


--shiro



From: Shoji Kuzukami <kuzuk****@iidev*****>
Subject: [Gauche-devel-jp] uvectorのwrite
Date: Thu, 2 Dec 2004 16:23:01 +0900

> こんにちは,葛上です.
> 
> gaucheを大規模数値計算のグルーに利用しています.
> 
> uvectorを多用しているのですが,
> f64vectorをwriteしても,数桁で出力が打ち切られてしまい
> readしても精度が保証されません.
> 
> 普通に flonum をwriteなり,displayすれば,長い桁の出力が得られるので,
> 少なくともf64vectorをwriteするときには,できるだけ桁の精度を守ってほしいのですが,,
> 
> write.cまわりとuvectorP.hまわりのコードを少し読んでみましたが,
> 修正個所はつきとめましたが,少々複雑で自分で修正するのは,「ちと不安」です.
> 
> もしよろしければ修正していただけませんか?
> 
> read-blockのほうが正確だと思うのですが,
> 折角S式でダンプするので,
> マシンインディペンデント(のつもり)でやってみたいというのはあります.
> 
> _______________________________________________
> Gauche-devel-jp mailing list
> Gauch****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/gauche-devel-jp
> 




Gauche-devel-jp メーリングリストの案内
Back to archive index