Oracle® Developer Studio 12.5:性能库用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

矩阵类型

一般矩阵是最常用的类型,Oracle Developer Studio 性能库中的大部分运算都是在一般矩阵上进行的。在许多情况下,有一些例程使用其他类型的矩阵。例如,DGEMM 可计算两个一般矩阵的积,DTRMM 可计算一个三角矩阵和一个一般矩阵的积。

一般矩阵

一般矩阵的存储使矩阵元素与数组元素之间存在一一对应的关系。矩阵 A 的元素 Aij 存储在相应数组 A 的元素 A(I,J) 中。一般矩阵没有特殊的存储方案,因为其每个元素都是以显式方式存储的。与此相反,对于一般带状矩阵,只会存储其非零上对角、对角和下对角元素。以下示例说明了一般带状矩阵如何存储在二维数组中。不会访问带 x 标记的数组位置。

一般带状矩阵
填充存储中的一般带状矩阵
image:一般带状矩阵
image:填充存储中的一般带状矩阵

三角矩阵

三角矩阵有两种存储方案。在未填充方案中,矩阵存储在二维数组中,矩阵的所有元素和数组的元素之间存在一一对应关系,但不会在数组中设置或访问矩阵中的零条目(由 x 表示)。在填充存储方案中,矩阵的非零元素将按列填充在一维数组中。

可使用填充存储来存储三角矩阵。

三角带状矩阵
未填充存储中的三角矩阵
填充存储中的三角矩阵
image:三角带状矩阵
image:未填充存储中的三角矩阵
image:填充存储中的三角矩阵

可使用二维数组将三角带状矩阵存储在填充存储中,如下所示。不会访问带 x 标记的元素。

三角带状矩阵
填充存储中的三角带状矩阵
image:三角带状矩阵
image:填充存储中的三角带状矩阵

对称矩阵

实数对称矩阵或复数厄尔米特矩阵与三角矩阵的相同之处在于,只有在其上三角或下三角中的元素才会显式存储在二维数组的相应元素中。既不会设置也不会访问数组其余的元素(由下方的 x 表示)。还可以将有效的上或下三角按列填充到一维数组中。

对称矩阵
未填充存储中的对称矩阵
填充存储中的对称矩阵
image:对称矩阵
image:未填充存储中的对称矩阵
image:填充存储中的对称矩阵

三对角矩阵

三对角矩阵仅在主对角、第一个超对角和第一个次对角上有非零元素。使用三个一维数组对其进行存储。

三对角矩阵
三对角矩阵的存储
image:4x4 三对角矩阵
image:三对角矩阵的存储