Mersenne Twisterのライブラリ作ってたんだけどな・・・
Mersenne Twister のライブラリ作っていたのに知らぬ間にRed Black Treeのライブラリを作っていました。
なぜか!?
それはSSEを使うためのmallocで確保したmemoryを16byteにalignするライブラリを作ろうとしていた。
offset計算でインクリメントとかされて汚されてしまったポインタでも上手く開放できるようにするライブラリを作るためでその為にはすでにmalloc済みのメモリの保存領域とその他の情報を保存するコンテナ機構が必要だった。*1
なのでここは一つSTLPortにも採用されているRed Black Tree*2をC言語で自分好みに実装して見ようと思った次第だ。
で、どうにかこうにか移植が完了したのでちょっと性能テストしてみた。
*1:いまさらながらこれは無駄な機構だと思える。