From: TOYOFUKU Chikanobu Date: 2010-01-14T18:26:01+09:00 Subject: [ruby-dev:40085] Re: BigMath の sin(BigDecimal("1E50"), 1) が無限ループ 豊福です。 > BigDecimal BigMath の sin(BigDecimal("1E50"), 1) が PI に > 要求する精度の不足で無限ループになります。 精度を増やさないといけないことはいけないのですが無限ループ (本当は無限ループではなくものすごく時間のかかるループでした)に なる直接の原因は BigDecimal("1E50") % BigDecimal("3") が 0.1E45 になることでした。 多分 y = q*x + r で商 q を x と同程度の精度で求めているから だと思います。でも普通は r < x を期待しますよね。 --- May Haskell be with you.