行列のタイプ
一般行列はもっとも一般的なタイプで、Oracle Developer Studio パフォーマンスライブラリのほとんどの演算は一般行列で行われます。多くの場合、その他のタイプの行列を操作するルーチンがあります。たとえば、DGEMM は 2 つの一般行列の積を計算し、DTRMM は三角行列と一般行列の積を計算します。
一般行列
一般行列は、行列の要素と配列の要素が 1 対 1 で対応するように格納されます。行列 A の要素 Aij は、対応する配列 A の要素 A(I,J) に格納されます。一般行列の場合、各要素が明示的に格納されるため、特別な格納スキームはありません。対照的に、一般帯行列の場合は、ゼロでない上対角、対角、および下対角の要素のみが格納されます。次の例は、一般帯行列が 2 次元配列に格納される仕組みを示しています。配列の x で示された場所はアクセスされません。
三角行列
三角行列には 2 つの格納スキームがあります。非パック格納スキームでは、行列が 2 次元配列に格納され、行列のすべての要素と配列の要素が 1 対 1 で対応します。ただし、行列内の 0 エントリは、配列内で設定もアクセスもされません (x で示された場所)。パック格納スキームでは、行列のゼロでない要素が、列ごとに 1 次元配列にパック化されます。
三角行列はパック格納を使用して格納できます。
三角帯行列は、次のように 2 次元配列を使用して、パック格納で格納できます。x で示された要素はアクセスされません。
対称行列
実対称行列または複素エルミート行列は、上側または下側の三角形の要素だけが 2 次元配列の対応する要素に明示的に格納される点で、三角行列に似ています。配列の残りの要素 (下記の x で示されたもの) は、設定もアクセスもされません。アクティブな上側または下側の三角形も、列ごとに 1 次元配列にパック化できます。
三重対角行列
三重対角行列は、主対角、最初の上対角、および最初の下対角だけにゼロでない要素を持っています。これは 3 つの 1 次元配列を使用して格納されます。