?copy
向量拷贝。
即
。x是源向量,y是目标向量。
接口定义
C interface:
void cblas_scopy(const BLASINT n, const float *x, const BLASINT incx, float *y, const BLASINT incy);
void cblas_dcopy(const BLASINT n, const double *x, const BLASINT incx, double *y, const BLASINT incy);
void cblas_ccopy(const BLASINT n, const void *x, const BLASINT incx, void *y, const BLASINT incy);
void cblas_zcopy(const BLASINT n, const void *x, const BLASINT incx, void *y, const BLASINT incy);
Fortran interface:
CALL SCOPY(N, X, INCX, Y, INCY)
CALL DCOPY(N, X, INCX, Y, INCY)
CALL CCOPY(N, X, INCX, Y, INCY)
CALL ZCOPY(N, X, INCX, Y, INCY)
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
n |
整型数 |
表示向量x和y的元素个数。 |
输入 |
x |
|
向量x,向量规模至少是(1+(n-1)*abs(incx))。 |
输入 |
incx |
整型数 |
表示x向量增长步长。 |
输入 |
y |
|
向量y,向量规模至少是(1+(n-1)*abs(incy))。 |
输出 |
incy |
整型数 |
表示y向量增长步。 |
输入 |
依赖
#include "kblas.h"
示例
C interface:
double y[5];
int n = 5, incx = 1, incy = 1;
/*
* x: 1, 2, 3, 4, 5
*/
double x[5] = {1, 2, 3, 4, 5};
cblas_dcopy(n, x, incx, y, incy);
/*
* Output y: 1, 2, 3, 4, 5
*/
Fortran interface:
REAL(8) :: Y(5)
INTEGER :: N=5
INTEGER :: INCX=1
INTEGER :: INCY=1
REAL(8) :: X(5)
DATA X /1, 2, 3, 4, 5/
CALL DCOPY(N, X, INCX, Y, INCY)
* Output Y : 1, 2, 3, 4, 5