From: NISHIMATSU Takeshi Date: 2007-11-23T07:06:19+09:00 Subject: [ruby-list:44275] Re: Complex#cproj patch for ruby-1.9/lib/complex.rb 西松です。 --- 石塚圭樹 wrote: > >(1)Complex(-0.0, -0.0)では複素数の虚部を-0.0にできない > >$ ruby -r complex -e 'p Complex(-0.0, -0.0)' > >Complex(-0.0, 0.0) > > これって, どのくらい重要なことなんでしょう? sqrt[-x+i(+0)]=i*sqrt(x) sqrt[-x+i(-0)]=-i*sqrt(x) ってことにすると便利なので、そうなっているそうです。 David Goldberg 西村恕彦訳 『浮動小数点演算について計算機科学者は何を知っておくべきか』 共立出版のbitかbit別冊??? の2.2.3節「符号つきゼロ」です。 @article{goldberg1991ecs, title={{What every computer scientist should know about floating-point arithmetic}}, author={David Goldberg}, journal={ACM Computing Surveys}, volume={22(23?)}, number={1}, pages={5--48}, year={1991}} [ruby-list:43129]で教えてもらったのですが、 http://docs.sun.com/source/806-4847/ncg_goldberg.html でも読めます。こちらは機械翻訳ちっくですが。 --- in [ruby-list:43128] I wrote: > 一晩で読める分量なのでオススメです。「言語仕様は、理想的には > プログラムについての命題を証明するのに十分なだけの精密さで、言語の意味を定義 > すべきである。これは言語仕様における整数の部分に対しては通常成立しているのに、 > 浮動小数点になると広い灰色領域がしばしば放置されている(modula-3は例外である)。」 > と辛口だったり、謝辞に「午前8時の教室に間に合うように起きなくても、浮動小数 > 点と計算機システムの相互作用を学べることを、この論文のねらいとした。」などと > あったりしておもしろいです。IEEE標準についても詳しく書いてあります。 -- 西松タケシ