在调用lapack子例程之前,我们需要复制矩阵吗?

时间:2017-11-02 02:53:06

标签: c lapack

我正在解决一些问题,其中间步骤需要解决Ax = b线性系统。我打算用lapack来解决它,比如使用像DGESV这样的子程序。然而,我发现lapack将矩阵“A”转换为“PLU”(一些较低和较低的矩阵格式)。我希望“A”对我未来的运营完好无损。我是否需要在每次发送到lapack之前制作副本?复制“b”是可以的,但是,如果“A”很大,那么复制本身就很耗时。有没有办法避免它或lapack的其他功能,避免改变“A”。此外,如果复制是不可避免的,那么有没有一种有效的方法来实现它?我使用“C”作为编程语言。

1 个答案:

答案 0 :(得分:0)

LAPACK通常会尝试将结果存储在输入参数中,但是在这里你希望A保持不变。

LAPACK还在内部使用工作数组。通过将原始元素读取到工作数组,您基本上可以遵循类似的路径。从固定的源可能是一个文件或只是将其保存在内存中,解决问题获取系数然后检索原始元素并将它们放在同一个数组中。