5

我正在使用基于 ARM Cortex-A8 的处理器,并且我有几个地方可以计算 3x3 矩阵逆运算。

由于 Cortex-a8 处理器有一个 NEON SIMD 处理器,我有兴趣将此协处理器用于 3x3 矩阵逆运算,我看到了几个 4x4 实现(英特尔 SSE 和freevec),但我在哪里没有看到执行 3x3 矩阵逆运算使用 SIMD 指令。freevec 使用的方法是将 4x4 矩阵拆分为 4、2x2 矩阵,然后对每个矩阵进行微小的操作,最后将结果重新组合,得到 4x4 矩阵的逆矩阵。我看不到 3x3 矩阵有这样的机会。

任何人都知道如何使用 SIMD 指令执行 3x3 矩阵求逆,这对我很有帮助吗?

问候维克拉姆

4

3 回答 3

6

您可以通过添加第 4 行和第 4 列(均为 (0 0 0 1))将 3x3 矩阵扩展为 4x4 矩阵。反转后,左上角的 3x3 子矩阵将具有所需的反转。

于 2010-07-26T11:05:12.747 回答
3

我已经为 2x2、3x3 和 4x4 矩阵求逆启动了一个基于 SIMD 的便携式库:

https://github.com/niswegmann/small-matrix-inverse

不幸的是,还不支持 3x3(截至撰写时)。

于 2016-01-28T18:28:22.997 回答
1

您可以对wikipedia中描述的 3x3 矩阵的分析标准版本进行矢量化。应该不难。

于 2010-07-26T11:11:25.713 回答