Integer

続 rotate.hpp/byte_swap.hpp

実際に計測して微調整しました。 差分 昨日のコードでは16ビットのバイト交換にxchgを使っていましたが、これは遅いみたいなのでrolに置き換えました。 ppc版は予想通りsthbrxが遅かったので(というか一旦メモリにストアしないといけないので)C++のコードを…

rotate.hpp/byte_swap.hpp

SHA-256のコードから回転操作とバイト反転操作を切り出して、ライブラリにしました。 <hamigaki/integer/rotate.hpp> <hamigaki/integer/byte_swap.hpp> i386/i486/ppcで動作確認済みです。 ちゃんと測ってませんが、多分ppc版は遅いと思います。</hamigaki/integer/byte_swap.hpp></hamigaki/integer/rotate.hpp>

auto_min

Boost.Iostreamsを弄っていると、std::streamsizeとstd::size_tの値を共に使用する場面に遭遇します。 特に小さいほうの値を選択するmin()操作はよく出てきます。 class hoge_source { public: std::streamsize read(char* s, std::streamsize n) { BOOST_AS…