我正在寻找一些三角形解算器,我遇到了两个解算器。一个在BLAS:dtrsm中,另一个在LAPACK:dtrtrs中。从外观上看,两者似乎都有共同的功能,dtrsm有更多的功能(在解决系统之前缩放右手边)。
我想知道
1) 这些功能还有什么不同
2) 执行相同操作时,哪个更快
3) 如果(2)的答案不明显,什么时候建议使用dtrsm而不是dtrtrs,反之亦然?
-
除了缩放之外,
dtrsm
还可以求解三角矩阵被右乘为未知矩阵的系统(即,它可以求解XA=B和AX=B)。另一方面,如果A是奇异的,dtrsm
可能会无声地失败,而dtrtrs
会检查这种情况并报告错误。 -
在"典型"的LAPACK分布中,
dtrtrs
只是一个检查奇异性然后调用dtrsm
的包装器。因此,dtrsm
的略快,但对于任何合理大小的矩阵来说,这种差异都是微不足道的。