# 110: Fractional の計算精度 [↑up](bunny_notes) - issued: 2020-10-10 - 分類: 分類:C 改善項目 - status: Pending (2020-10-11) ## 現象 Double, Float の Fractional インスタンス定義において、 ${(**)} や ${tan} などは、デフォルト定義にまかせている。 そのせいで、計算精度が落ちており、GHC での実行結果とずれてしまっている。 (sample288, 289) デフォルト定義は Haskell 2010 によるものなので、 規格準拠という意味ではこれも許容されるかと思うが、 実装の「仕様」としてこれで確定するのは難がありそうなので、 公開までに改善したい。 ## 調査ログ ## 2020-10-11 ${(**)}, ${tan}, ${tanh} を Java 側でネイティブに処理するようにした。それによって、いくつかの誤差は解消したが、いくつか残ってしまった。 (test/expected/にある sample288.txt と sample288.txt.org の違い、299 も同様を参照) ${cosh}, ${asinh} など、Math 関数を呼び出しているだけなので、 GHC の用いているライブラリと Java のライブラリの差に見える(が、詳細未調査)。 あまりこだわっても仕方がない気がするので、保留とする。