2008年06月16日

Bigarray.unsafe_get

AMD64でBigarray.get系をコンパイルした場合インライン展開されず、ライブラリ呼び出し(caml_ba_get_2等)になるようだ(おそらくほかのアーキテクチャも同様)。
型がexplicitに指定されても、-inlineしても-unsafeしても結果が変わらない。このため、Bigarray系を使うとOCamlで直接計算している部分が著しく足を引っ張ることになる。結論:重いところはCで書け。
posted by chun at 18:39| 関数型