我有兴趣在JOGL 2中编写OpenGL应用程序,使用着色器而不是固定功能管道.我需要做一些4x4双精度矩阵数学CPU端,以取代固定功能管道的推/弹/变换业务.相同的应用程序也将包括一些需要在大型矩阵上进行操作的机器学习代码.我已经看过JBLAS用于机器学习的东西(因为我已经在使用JNI用于JOGL,依赖于另一个本地库的缺点很小)),但我不确定它是否是GL-的最佳选择相关矩阵.思考?
您只需要操作 4x4 矩阵吗?大多数通用线性代数库都针对大型矩阵进行了高度优化,而很少关注较小的矩阵。我编写EJML 的部分原因是为了解决这个问题并激励其他开发人员针对小矩阵进行优化。对于小型矩阵,EJML 是最快的,但还可以做得更好。
如果您确实需要大量性能,我不会使用任何常见的嫌疑人,而是推出您自己的高度专业化的代码。应该可以比通用库好几倍。
2x2 矩阵的简单示例:
public class Matrix2x2 {
double a11,a12,a21,a22;
}
public static void mult( Matrix2x2 a , Matrix2x2 b , Matrix2x2 c ) {
c.a11 = a.a11*b.a11 + a.12*b.a21;
c.a12 = a.a11*b.a12 + a.12*b.a22;
c.a21 = a.a21*b.a11 + a.22*b.a21;
c.a22 = a.a21*b.a12 + a.22*b.a22;
}
Run Code Online (Sandbox Code Playgroud)
注意我没有尝试编译此代码,它只是一个示例。
| 归档时间: |
|
| 查看次数: |
3837 次 |
| 最近记录: |