Armadillo(C ++线性代数库:Spout PHP Library on Github)支持稀疏矩阵的初步版本(在CSC存储模型中)。正如我在文档和代码中所读到的,犰狳稀疏矩阵实现不区分零值和"未设置"值。
文档说存储的所有值都是非零的,扣除所有非存储值都为零。相反,我需要的是区分" unset"从零开始。
我目前将Julia项目移植到C ++ / Armadillo,我需要操作一些sparses矩阵,其中包含-1,0,1和"未设置"值。与犰狳形成鲜明对比的是,朱莉娅区分了零和'#34;未设置"在其稀疏矩阵实现中。
我的第一个想法是使用复杂的稀疏矩阵(arma :: sp_cx_mat,arma :: sp_cx_imat),只需很少的技巧来管理simili-zero值(利用虚数作为虚拟的非零部分)。但这非常优雅,肯定会影响代码性能。
你觉得有没有办法绕过犰狳限制而不写我自己的矩阵类?
非常感谢您的回答。