bigarray
ライブラリは大規模な多次元数値配列を実装しています。
これらの配列は Caml の通常の Array モジュールの配列と区別するために bigarray と呼ばれています。
bigarray と通常の Caml の配列との主な違いは次の通りです。
-
bigarray は、Caml の配列と異なりサイズに制限がありません(Caml の配列は32ビットの環境では、float の配列は 2097151 個の要素まで、その他の型の配列の場合には 4194303 個の要素までに制限されています)。
-
bigarray は多次元配列です。1 次元から 16 次元までの任意の次元をサポートしています。それに対して Caml の配列は一次元に限られ、多次元配列を配列の配列としてエンコードする必要があります。
-
Caml の配列は Caml の任意のデータ型を要素とすることができるのに対し、 bigarray は整数と浮動小数点数しか含むことができません。
しかし、bigarray はより効率よく整数と浮動小数点数を格納することができます。
これは、bigarray は Caml の標準の倍精度浮動小数点数型や 32 ビット・ 64 ビットの整数型に加えて、単精度の浮動小数点数や 8 ビット・ 16 ビット整数のような「小さな」型をサポートしているからです。
-
bigarray のメモリレイアウトは、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";;
と入力してください。