ブックマーク / hydrakecat.hatenablog.jp (3)

  • 浮動小数点数の二段階丸め誤差 - hydrakecat’s blog

    さいきん『浮動小数点数小話』という同人誌を読んでFMA (Fused Multiply-Add)の二段階丸め誤差(double rounding error)について色々と知る機会があったのでまとめておく。ついでにFMAに関するOpenJDKのバグっぽい挙動を見つけたのでそれも併せて記しておく。 FMA (Fused Multiply-Add)とは FMAは以下のような演算のことを呼ぶ。 この演算自体は行列の乗算やベクトルの内積の計算でよく現れるものであるが、通常の浮動小数点数の乗算と加算を別々に行うと誤差が出るので一度の演算で正確な値を算出したいときに用いる。たとえばC言語(C99)では fma、fmaf、fmalという3つの関数が導入されているらしい。 FMAの実装における二段階丸め誤差 FMAはターゲットとなるCPUのアーキテクチャがFMA命令をサポートしていればその命令を直接呼び出

    浮動小数点数の二段階丸め誤差 - hydrakecat’s blog
  • 『データ指向アプリケーションデザイン』を読んだ - hydrakecat’s blog

    『データ指向アプリケーションデザイン』を読んだ。たいへんおもしろかった。技術書でこんなにわくわくしながら一気に読んだのは『Androidを支える技術』以来かもしれない。 データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理 作者: Martin Kleppmann,斉藤太郎,玉川竜司出版社/メーカー: オライリージャパン発売日: 2019/07/18メディア: 単行(ソフトカバー)この商品を含むブログを見る 書はソフトウェアシステムの設計について「データ」という観点からまとめたものだ。もちろんデータベースは登場するが、それだけでなくJSONなどのデータ形式、RPC、メッセージキュー、全文検索インデクス、バッチ処理やオンライン処理も等しく「データ」という観点から扱っている。特筆すべき点は、理論だけでなく実際のミドルウェア製品を引き合いに出しつつ具体例を

    『データ指向アプリケーションデザイン』を読んだ - hydrakecat’s blog
  • 『Androidを支える技術』を読むべきか? - hydrakecat’s blog

    ソフトウェア・エンジニアを長くやっていると、自然と得意分野というものが出来る。 自分だったら、Androidアプリ開発やJavaの仕様についてはそれなりに知っているつもりだけれど、LinuxカーネルやGPUについて詳しいとはお世辞にも言えない。 得意分野というと聞こえはよいけれど、それは裏を返すと、他のことを学ぶのに及び腰になるということだ。さっきの例でいえば、LinuxカーネルについてもGPUについても知っておくにこしたことはない。それでも、「興味はあるけれど、いますぐに必要じゃないからいいか」という気分になって後回しにしてしまう。 この記事で紹介する『Androidを支える技術』はそういう知っておくにこしたことはないことを解説している。 『Androidを支える技術』とは Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plu

    『Androidを支える技術』を読むべきか? - hydrakecat’s blog
    mkimakima
    mkimakima 2017/08/28
  • 1