【问题标题】:use the same memory to do LU decomposition in armadillo在犰狳中使用相同的内存进行LU分解
【发布时间】:2013-08-30 23:31:39
【问题描述】:

我对使用犰狳求解线性系统有疑问。 A*x=b。但是我的 A 矩阵很大。它是 arma::cx_mat A(40000,40000)。当我运行 x=arma::solve(A,b) 时,犰狳会尝试分配一个新的内存来存储 A,然后使用新的内存进行 LU 分解,不会使用存储原始 A 的内存。求解的定义可以在 fn_solve.hpp 中找到。但是你已经看到我的 A 很大了。分配一个新的内存会很快消耗掉所有的内存。对于我的问题,我不再需要原来的 A 了。那我能不能用一些方法让犰狳利用A的原始内存做LU分解呢?

非常感谢

【问题讨论】:

    标签: c++ armadillo


    【解决方案1】:

    您将不得不直接使用 LAPACK,而不是通过犰狳。我建议你看看 Armadillo 如何准备数据并调用底层 LAPACK 函数来实现solve()。这是在文件 include/armadillo_bits/auxlib_meat.hpp

    编辑:犰狳开发人员通常接受补丁。如果您想出解决方案,请将补丁或修改后的文件发送给他们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多