bigarray ライブラリは、大規模で、多次元で、数値のみを扱うことのできる配列を実装しています。
これらの配列は、標準の Caml の Array モジュールで提供されるものと区別するために "big array" と呼ばれます。
big array とCaml 標準の配列との大きな違いは以下のものです。
- big array は、Caml の配列と異なりサイズに制限がありません。(Caml の配列は32ビットの環境で、float の配列は 2097151個の要素まで、その他の型の配列の場合には4194303個の要素までに制限されています)
- big array は多次元配列です。1次元から16次元までの任意の次元をサポートしています。それに対して Caml の配列は単一の次元に限られ、多次元配列は配列の配列としてエンコードする必要があります。
- Caml の配列は Caml の任意のデータ型をその中に含むことができますが、big array は整数と浮動小数点数しか含むことができません。しかし、big array はより効率よく整数と浮動小数点数を含むことができます。その理由は、big array は標準の Caml の倍精度浮動小数型や32ビット・64ビットの整数型に加えて、8ビットや16ビット整数のような"小さい"型サポートしているからです。
- big array のメモリレイアウトは、C や Fortran のものと完全に互換性があるので、 Caml のコードと C や Fortran のコードとの間で大きな配列のデータをまったくコピーすることなくやりとりすることができます。
- big array は、コピーをまったくせずに部分配列を取り出したり多次元配列からある次元のものだけを切り出してきたりといった、通常の配列では効率よく提供できない便利でおもしろい操作をサポートしています。
bigarray ライブラリを使用するプログラムは次のようにリンクしてください。
ocamlc other options bigarray.cma other files
ocamlopt other options bigarray.cmxa other files
インタラクティブモードで bigarray ライブラリを使うには以下のようにします。
ocamlmktop -o mytop bigarray.cma
./mytop
あるいは(あなたのプラットフォームが C ライブラリのダイナミックリンクをサポートする場合には)、ocaml を起動して #load "bigarray.cma";; と入力してください。