BLAS 3级矩阵/矩阵例程采用参数lda
,ldb
等,据我所知,它们可以传递“条纹”矩阵。例如,如果我有以下2 x 2列主矩阵:
|1 2|
|3 4|
|x x|
其中x是我要忽略的数据,我可以使用参数m = 2, n = 2, lda=3
(对于列主要矩阵)来表示。
我的问题是,可以使用BLAS例程复制此类矩阵吗?
如果步幅等于矩阵维数(即矩阵未跨越),则使用 vector copy 过程很简单,例如dcopy(m*n,A,1,B,1)
为此。 当矩阵元素不连续时(例如lda / stride!= m
我可以想到的一种方法是,以不断增加的偏移量反复调用dcopy
,同时使incrx
参数等于m。看来效率不高。另外,dgemm
的B = I,C = 0。
答案 0 :(得分:1)
请查看此文档:
http://www.netlib.org/lapack/explore-3.1.1-html/slacpy.f.html
SLACPY( UPLO, M, N, A, LDA, B, LDB )
例如,对于从A的全部或部分到B的单精度实数矩阵,上面的方法可以满足您的要求。它的使用相当困难。当然,您会找到所有风味D,C,Z的实现