C言語で精度113ビットの四倍精度浮動小数点型を使う話をします。 浮動小数点数の規格(IEEE 754) プログラミング言語の規格(C言語) 実際の言語処理系(GCC, Clang) アーキテクチャーごとのABIとハードウェア実装 のレイヤーからそれぞれ解説します。 IEEE 754のbinary128 IEEE 754-2008以降でbinary128が規定されています。パラメーターは$b=2$, $p=113$, 指数部の最大値$\mathit{emax}=16383$です。 「四倍精度 (quad precision)」という用語はIEEEの規格書には出てきませんが、この記事では「四倍精度」をbinary128と同じ意味で使うことにします。 表現可能な範囲や精度に関していくつか値を挙げてみると、 最小の正の非正規化数は 0x1p-16494 = 6.475...e-4966、 最小の
![C言語で四倍精度浮動小数点数 (binary128) を使う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/bbc70108c34bcebbc26848382266149d2b18ac85/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QyVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSVBNyVFNSU5QiU5QiVFNSU4MCU4RCVFNyVCMiVCRSVFNSVCQSVBNiVFNiVCNSVBRSVFNSU4QiU5NSVFNSVCMCU4RiVFNiU5NSVCMCVFNyU4MiVCOSVFNiU5NSVCMCUyMCUyOGJpbmFyeTEyOCUyOSUyMCVFMyU4MiU5MiVFNCVCRCVCRiVFMyU4MSU4NiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NTAyNjU0MThlMTk3NDk3YTEyYzU0MDA2NGUyZDc2Y2U%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtb2RfcG9wcG8mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTBmMzQxNGY4MWJmMmNiODhlNWE0YWRmOWUzZGNkNTA4%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dad8891db46dd7e36ac8aa0a1bc182d19)