目先はちまちまとしている。で、ちょいと変わったコードを書いた。とりあえず、今は一人だからな。本質的な部分ではないが、ある種の人には面白いし、ググった限り先例はないのでメモ。

(何のことやらわからんひとと、「富豪」という言葉にヤられているひとは読めないと思うけれど、ごめんなさい。)

/// @brief 3による剰余(被除数定義域0~30)
///
/// 超絶ちまちま技巧。0b...101101101101をnビット右シフトした結果の下位2ビットが、
/// 1,2,3,1,2,3...になっていることを利用したもの。
/// 今回のコードはループの奥地で被除数高々17の3による剰余が多く含まれるので、
/// これを利用する。
///
/// @tparam _type 使用する型(ただし単純な整数型である必要がある)
/// @param[in] val 元の値
/// @return 3による剰余
template inline _type mod3_fast(_type val)
{
assert(val >= 0);
assert(val <= 30);
return _type(((0x6db6db6d>>val)&3)-1);
}

ねー。変態でしょ。

本質的にはテーブル参照なのだが、テーブルサイズが32ビットしかないわけですな。
でも、テーブル参照みたいにキャッシュを汚さない。これは本体のコードが、条件ジャンプほとんど無し、かつ、シーケンシャルメモリアクセスでぶん回るので、台無しにしないために必要なことなのです。

と言うわけで、ちまちました話でしたが、「ハッカーの楽しみ」にも載ってないネタ。

このプロジェクトが終わったら、教育目的以外にはコードを書かない生活に戻る予定なので、ひとりのうちに、小ネタ含めてとことんやりたいなあ。

起業準備中の副業の一つとして、iPhoneアプリに手を出してみた。



これまでになく性能のよい(というか、使い物になる)チューナーを作ってみました。

現在Appleで審査中です。動画をあげたら、タイトルがCleartune(既存のiPhone tuner)に・・・。現在修正中。 ようやく直った。




ちなみに、比較対象のJust TuneとCleartuneはApp Storeのクロマティック・チューナーの1位と2位。既存のチューナーは倍音を拾っているんですな。まあ、TM-40のSOUND OUTは、変な高次倍音が強くて、判定が難しいのは確かなんだけど。

初めての方は初めまして。mixiから来た方は改めまして。

いずれにせよ、ご訪問ありがとうございます。


mixiから移転してきました。では、とりあえず過去記事を羅列。


今後とも、よろしく。