svml128_sincos_f?

计算输入向量的正弦值与余弦值。

接口定义

C interface:

void svml128_sincos_f32(float32x4_t src, float32x4_t *sindst, float32x4_t *cosdst);

void svml128_sincos_f64(float64x2_t src, float64x2_t *sindst ,float64x2_t *cosdst);

参数

参数名

类型

描述

输入/输出

src

  • 在svml128_sincos_f32中,src是单精度浮点类型。
  • 在svml128_sincos_f64中,src是双精度浮点类型。

表示输入向量的浮点值。

输入

sindst

  • 在svml128_sincos_f32中,sindst是单精度浮点类型。
  • 在svml128_sincos_f64中,sindst是双精度浮点类型。

表示输出向量的浮点值。

若为空指针,会提示空指针错误并返回。

输出

cosdst

  • 在svml128_sincos_f32中,cosdst是单精度浮点类型。
  • 在svml128_sincos_f64中,cosdst是双精度浮点类型。

表示输出向量的浮点值。

若为空指针,会提示空指针错误并返回。

输出

输出结果

依赖

C: "ksvml.h"

示例

C interface:

    float32x4_t src = {0.0f, 2.0f, INFINITY, NAN};
    float32x4_t dst = (float32x4_t*)malloc(4*sizeof(float32x4_t));
    float32x4_t dst2 = (float32x4_t*)malloc(4*sizeof(float32x4_t));
    vatan_neon_f32(src, dst, dst2);
    printf("%.15g  %.15g  %.15g  %.15g\n", dst[0], dst[1], dst[2], dst[3]); 
    printf("%.15g  %.15g  %.15g  %.15g\n", dst2[0], dst2[1], dst2[2], dst2[3]);
    /**
     *  Output dst:
     *     0  0.909297426825682  nan  -nan
     *     1  -0.416146836547142  nan  -nan
     *
     */