我做了一些线性代数运算,并一直在寻找一些非常轻便,使用简单矩阵类,可以处理不同尺寸:2×2,×1,3X1和1x2的基本。 我相信这样的类可以使用模板来实现,并使用一些专门在某些情况下,出于性能。 任何人都知道任何可供使用的简单实现的? 我不想“臃肿”的实施,为我会在内存受限的嵌入式环境中运行此。
谢谢
我做了一些线性代数运算,并一直在寻找一些非常轻便,使用简单矩阵类,可以处理不同尺寸:2×2,×1,3X1和1x2的基本。 我相信这样的类可以使用模板来实现,并使用一些专门在某些情况下,出于性能。 任何人都知道任何可供使用的简单实现的? 我不想“臃肿”的实施,为我会在内存受限的嵌入式环境中运行此。
谢谢
你可以尝试突击++ -或Boost的uBLAS库
我最近看了各种C ++矩阵库,我的投票去犰狳 。
此外,虽然犰狳可以独立工作,你可能要考虑使用它与LAPACK(BLAS和)可用的实现来提高性能。 一个很好的选择将是例如OpenBLAS (或ATLAS )。 检查犰狳的常见问题 ,它涵盖了一些重要的主题。
在谷歌快速搜索挖出了这个演示表明犰狳已经在嵌入式系统中使用。
的std :: valarray中是相当轻巧。
我用Newmat库进行矩阵计算。 它是开源的,易于使用的,虽然我不知道它适合你的轻量级定义(它包括的Visual Studio编译成一个1.8MB的静态库50的源文件)。
CML矩阵是相当不错的,但对于嵌入式环境中可能不够轻巧。 检查出来呢: http://cmldev.net/?p=418
Another option, altough may be too late is:
https://launchpad.net/lwmatrix
我一没能找到足够简单的库,所以我自己写的: http://koti.welho.com/aarpikar/lib/
我觉得应该是能够通过一些简单的行或列设置为零来处理不同的矩阵维(2×2,3×3,3X1等)。 这不会是最最快的方法,因为内部的所有操作将4X4矩阵来完成。 虽然在理论上可能存在那种可以在一个刻度处理4×4的操作处理器。 至少我宁愿相信这些处理器的存在是不是去优化这些低级别的矩阵计算。 :)
如何矩阵只是存储在数组中,喜欢
2x3 matrix = {2,3,val1,val2,...,val6}
这是非常简单的,和加法运算是微不足道的。 但是,你需要编写自己的乘法功能。