---
title: ?copy
description: "向量拷贝。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0604.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0604.html
indexId: b2e0a0e71d9a6bb03ef4c22eeafabd162b9b9d2d0a13f4ad685275fc9e41ffc061
---
# ?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 | 在scopy中是单精度浮点类型。 在dcopy中是双精度浮点类型。 在ccopy中是单精度复数类型。 在zcopy中是双精度复数类型。 | 向量x，向量规模至少是(1+(n\-1)\*abs(incx))。 | 输入 |
| incx | 整型数 | 表示x向量增长步长。 | 输入 |
| y | 在scopy中是单精度浮点类型。 在dcopy中是双精度浮点类型。 在ccopy中是单精度复数类型。 在zcopy中是双精度复数类型。 | 向量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
```
