使用LAPACK和时序

时间:2015-08-10 09:19:49

标签: c++ matrix lapack inversion

我在C ++上使用LAPACK来反转复杂的矩阵。具体来说,我使用的两个功能是:

zgetrf用于LU分解。

zgetri用于反转。

现在我的目标是优化我的代码,我对时间有疑问。使用带有LAPACK的通用矩阵求逆方法(如果你有更好/更快的函数可以使用请告诉我),函数的时间是否独立于矩阵中的值?

例如,反转单位矩阵比反转密集的矩阵更快吗?

同样,我想强调一点,关于复杂矩阵的一般LAPACK反演问我这个问题。我知道可以使用的各种三维和带状功能。

我假设矩阵中的所有元素都是复数双精度数。

谢谢, 凯文

1 个答案:

答案 0 :(得分:2)

正如Kieran Cooney所假设的那样,LAPACK比单个随机密集矩阵更快地反转单位矩阵数量级。使用下面的测试给出了以下结果(样本大小= 1,但证明了这一点):

  

调整大小
  信息:0
  总时间(随机)= 2389毫秒   信息:0
  总时间(身份)= 14毫秒。

<Button Grid.Row="0" Content="Button" Command="{Binding DataContext.CloseInstanceCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:CFDOpenPositionsView}}}" 
相关问题