2014年1月2日のブックマーク (2件)

  • Scheme:非正確な整数

    Gauche:Bugsから移動 (floor 10.5) -> 10.0 (0.8.9) OsN (2007/03/15 01:43:38 PDT): 勘違いしているかもしれませんが、、、 gosh> (floor 10.5) 10.0 floor, ceiling, truncate, round は integer を返す、とドキュメントに ありますので、(floor 10.5) で 10 でなく、10.0 が返ってくるのが違和感あります。 Shiro(2007/03/15 02:28:08 PDT): 10.0はintegerですよ。非正確数ではありますが。 ちなみに正確数を渡せば正確なintegerが返ります。 gosh> (floor 21/2) 10 逆に、整数を要求する手続きに非正確な整数を渡せば非正確な結果が得られます: gosh> (gcd 60.0 24.0) 12.0

    Scheme:非正確な整数
  • 計算機イプシロンのこと - 再帰の反復blog

    浮動小数点数について等しいかどうかを調べる場合、普通に等値比較をおこなうのではなく、計算機イプシロンepsを使って「|x - y| / |x| < eps」とか「|x - y| / max(|x|, |y|) < eps」としなさい、という話を聞いたり読んだりしたことがある。でも何かおかしい気がする。それ以前に計算機イプシロンが何なのかもよくわからない。なので、そのことについてメモにまとめる。 浮動小数点数の等値判定の仕方 計算機イプシロンの定義 計算機イプシロンの定義:その1 計算機イプシロンの定義:その2 定義1と定義2の混同 (定義2の計算機イプシロンの意味) 浮動小数点数の等値判定に計算機イプシロンを(どう)使うべきか 浮動小数点数の等値判定はどのようにすべきか 浮動小数点数の等値判定の仕方 文章が長いので、浮動小数点数の等値判定の仕方を先に書いておく。 適当な定数Cを取って で等