Matrix 分布下/上三角矩阵上/下部分的就地恢复

Matrix 分布下/上三角矩阵上/下部分的就地恢复,matrix,copy,transpose,triangular,scalapack,Matrix,Copy,Transpose,Triangular,Scalapack,我想知道是否存在任何Scalapack例程可以将三角矩阵转换回普通矩阵,即将下/上部分复制到上/下部分-我还找不到它。 我知道使用p?geadd操作对角线有一个简单的方法,但是这个方法消耗的内存是理论上需要的两倍,我负担不起。。。 所以对我来说似乎很奇怪,Scalapack/PBLAS没有提供任何解决这个相对简单问题的例程。如果有人知道的比我多,请告诉我 -谢谢我找到了一个危险的解决方案: 删除C中缺少的三角形 执行pdgeadd('T',C,C) 将C的给定三角形的所有元素除以2 它可以工作,

我想知道是否存在任何Scalapack例程可以将三角矩阵转换回普通矩阵,即将下/上部分复制到上/下部分-我还找不到它。 我知道使用p?geadd操作对角线有一个简单的方法,但是这个方法消耗的内存是理论上需要的两倍,我负担不起。。。 所以对我来说似乎很奇怪,Scalapack/PBLAS没有提供任何解决这个相对简单问题的例程。如果有人知道的比我多,请告诉我


-谢谢

我找到了一个危险的解决方案:

  • 删除C中缺少的三角形
  • 执行pdgeadd('T',C,C)
  • 将C的给定三角形的所有元素除以2
  • 它可以工作,但我不知道是否有任何限制,因为理论上禁止使用a和C引用同一内存调用pdgeadd