プログラミング・レイヤは実際の計算エンジンへの高速なインタフェースです。それは LinearAlgebra:-LA_Main と呼ばれる LinearAlgebra パッケージのサブモジュールです。このサブモジュールは各々のインタラクティブ・レイヤ・ルーチンに対して 1 つの要素をエクスポートし、サブモジュールの要素の名前はインタラクティブ・レイヤ・ルーチンの名前に対応しています。たとえば、インタラクティブ・レイヤ・コマンド LinearAlgebra:-DotProduct(..) に対応して、プログラミングレイヤコマンド LinearAlgebra:-LA_Main:-DotProduct(..) があります。
注意: with(LinearAlgebra) を使用することによって、たとえば、 LA_Main:-DotProduct のようにプログラミング・レイヤ・コマンドはコマンドの短い形で利用できます。インタラクティブ・レイヤ・ルーチンにそれらのコマンドの長い形を通してでしかアクセスできないようにするので、with(LinearAlgebra:-LA_Main) を使用することは勧められません。LinearAlgebra パッケージへの導入 を参照して下さい。
インタラクティブ・レイヤ・ルーチンとは異なり、プログラミングレイヤルーチンはユーザーによって提供されるパラメータを検査しません、またそれらはユーザーによって提供されないパラメータをデフォルト値に設定しません。一方、プログラミング・レイヤ・ルーチンが特定のサブタスクを実行するためにプログラム・レイヤ・ルーチンを呼び出すかもしれないとき、それらはインタラクティブ・レイヤ・ルーチンを決して呼び出しません。
プログラミング・レイヤ・ルーチンは以下の特性によって特徴付けられます。
•
|
オプションパラメータはありません。すべてのパラメータが提供されなければなりません。
|
•
|
パラメータは指定された順序で提供されなければなりません。
|
•
|
特定のプログラミング・レイヤ・コマンドの呼び出し手順は常に対応するインタラクティブ・レイヤ・コマンドに対する有効な呼出し手順です。逆は正しくありません。この特徴は開発中のコードをデバッグするために役立ちます。
|
•
|
assertion checking がオンになっていない限り (kernelopts を参照)、パラメータはほとんど検査が実行されません。ルーチンに渡されるデータが正しい型で、正しい順序であることを確実にするのはプログラマー次第です。
|
プログラミング・レイヤ・ルーチンのすべてに対する正確な呼出し手順の一覧は LinearAlgebra Programming Layer Submodule Calling Sequences にあります。