?lacpy
拷贝矩阵A的所有元素或部分元素到矩阵B。
接口定义
C Interface:
slacpy_(const char *uplo, const int *m, const int *n, const float *a, const int *lda, float *b, const int *ldb);
dlacpy_(const char *uplo, const int *m, const int *n, const double *a, const int *lda, double *b, const int *ldb);
clacpy_(const char *uplo, const int *m, const int *n, const float _Complex *a, const int *lda, float _Complex *b, const int *ldb);
zlacpy_(const char *uplo, const int *m, const int *n, const double _Complex *a, const int *lda, double _Complex *b, const int *ldb);
Fortran Interface:
SLACPY(UPLO, M, N, A, LDA, B, LDB);
DLACPY(UPLO, M, N, A, LDA, B, LDB);
CLACPY(UPLO, M, N, A, LDA, B, LDB);
ZLACPY(UPLO, M, N, A, LDA, B, LDB);
参数
参数 |
类型 |
说明 |
输入/输出 |
---|---|---|---|
uplo |
字符型 |
|
输入 |
m |
整数型 |
矩阵A的行数,m≥0。 |
输入 |
n |
整数型 |
矩阵A的列数,n≥0。 |
输入 |
a |
|
大小为lda*n。
|
输入 |
lda |
整数型 |
矩阵A的主维,lda≥max(1,m)。 |
输入 |
b |
|
大小为ldb*n。 退出时,在指定的uplo范围内,矩阵b=矩阵a。 |
输出 |
ldb |
整数型 |
矩阵b的主维,ldb≥max(1, m)。 |
输入 |
依赖
#include "klapack.h"
示例
C Interface:
const char uplo = 'F'; const int m = 4; const int n = 4; const int lda = 4; const int ldb = 4; double a[] = { 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 8.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0}; double *b = (double*)malloc(lda * n * sizeof(double)); dlacpy_(&uplo, &m, &n, a, &lda, b, &ldb); /* output */ * b * 1.000000 2.000000 8.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000
Fortran Interface:
CHARACTER :: uplo = "F" PARAMETER (n = 4) PARAMETER (m = 4) PARAMETER (lda = 4) PARAMETER (ldb = 4) REAL(8) :: a(lda, n) REAL(8) :: b(ldb, n) DATA a / 1.0, 1.0, 1.0, 1.0, $ 2.0, 2.0, 2.0, 2.0, $ 8.0, 3.0, 3.0, 3.0, $ 4.0, 4.0, 4.0, 4.0 / EXTERNAL DLACPY CALL DLACPY(uplo, m, n, a, lda, b, ldb); * * Output: * a output (stored in column-major) * 1.000000 2.000000 8.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000 * 1.000000 2.000000 3.000000 4.000000