---
title: v?sincos
description: "计算输入弧度的正弦值和余弦值，输入为向量。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0198.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0198.html
indexId: 44cf92653537ab4dccbcec01ca05e0f72e92464e239655b683fe9bcb937d10c476
---
# v?sincos

计算输入弧度的正弦值和余弦值，输入为向量。

#### 接口定义

C interface：

void vssincos(const int len, const float* src, float* sindst, float* cosdst);

void vdsincos(const int len, const double* src, double* sindst, double* cosdst);

Fortran interface：

CALL VSSINCOS(LEN, SRC, SINDST, COSDST);

CALL VDSINCOS(LEN, SRC, SINDST, COSDST);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| len | 整型数 | 表示输入向量的元素个数。 len≤0时会提示len无效并返回。 | 输入 |
| src | 在vssincos中是单精度浮点类型。 在vdsincos中是双精度浮点类型。 | 输入向量src，向量长度为len。 若为空指针，会提示空指针错误并返回。 | 输入 |
| sindst | 在vssincos中是单精度浮点类型。 在vdsincos中是双精度浮点类型。 | 输出sindst，向量长度为len。 若为空指针，会提示空指针错误并返回。 | 输出 |
| cosdst | 在vssincos中是单精度浮点类型。 在vdsincos中是双精度浮点类型。 | 输出cosdst，向量长度为len。 若为空指针，会提示空指针错误并返回。 | 输出 |


#### 输出结果

- 每一个运算值返回弧度角x的正弦值sinx和余弦值cosx，sinx ∈ [-1, +1]，cosx ∈ [-1, +1]。
- 其他特殊值参考如下说明。| 输入弧度（src） | 输出正弦值（sindst） | 输出余弦值（cosdst） |
| --- | --- | --- |
| +0 | +0 | +1 |
| \-0 | \-0 | +1 |
| ±inf | nan | nan |
| nan | nan | nan |


#### 依赖

C: "kvml.h"


#### 示例

C interface：

```
int i, len = 4;
float src[len] = {0.0f, 2.0f, inf, nan};
float* sindst = (float*)malloc(sizeof(float) * len);
float* cosdst = (float*)malloc(sizeof(float) * len);
if (sindst == NULL || cosdst == NULL) {
printf("Malloc Failed!\n");
return 0;
}
vssin(len, src, sindst, cosdst);
/**
*  Output sindst:
*     0.0  0.909297406673431  nan  nan
*  Output cosdst:
*     1.0  -0.416146814823151  nan  nan
*
*/
```

Fortran interface：

```
INTEGER :: LEN = 4
REAL(4) SRC(4)
REAL(4) COSDST(4)
REAL(4) SINDST(4)
DATA SRC /1, 2, 3, 4/
CALL VSSINCOS(LEN, SRC, SINDST, COSDST)
!
! OUTPUT SINDST:
!     0.841470957, 0.909297407, 0.141120002, -0.756802440
! OUTPUT COSDST:
!     0.540302277, -0.416146815, -0.989992499, -0.653643608
!
```
