中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

sincos

同时计算输入弧度的正弦值和余弦值。

接口定义

C interface:

void sincosf(float x, float* sinx, float* cosx);

void sincosf_18(float x, float* sinx, float* cosx);

void sincos(double x, double* sinx, double* cosx);

void sincosl(long double x, long double* sinx, long double* cosx);

sincosf_18仅在高精度版本提供。

Fortran interface:

CALL SINCOSF(X, SINX, COSX);

CALL SINCOS(X, SINX, COSX);

参数

参数名

类型

描述

输入/输出

x

  • 在sincosf和sincosf_18中,x是单精度浮点类型。
  • 在sincos中,x是双精度浮点类型。
  • 在sincosl中,x是长双精度浮点类型。

表示弧度角的浮点值。

输入

sinx

  • 在sincosf和sincosf_18中,x是单精度浮点类型。
  • 在sincos中,x是双精度浮点类型。
  • 在sincosl中,x是长双精度浮点类型。

输出指针sinx。

若为空指针,会出现未定义的行为,接口不会对输出指针进行校验。

输出

cosx

  • 在sincosf和sincosf_18中,x是单精度浮点类型。
  • 在sincos中,x是双精度浮点类型。
  • 在sincosl中,x是长双精度浮点类型。

输出指针cosx。

若为空指针,会出现未定义的行为,接口不会对输出指针进行校验。

输出

返回值

  • 返回弧度角x的正弦数值sinx和余弦函数值cosx,sinx ∈ [-1, +1],cosx ∈ [-1, +1]。
  • 输入+0,返回正弦值+0和余弦值+1。
  • 输入-0,返回正弦值-0和余弦值+1。
  • 输入±∞,均返回nan。
  • 输入nan,均返回nan。

依赖

#include "km.h"

示例

C interface:

    double pi = acos(-1); 
    // typical usage 
    double a = pi/6, b = 1.0, c = -3*pi/4, d = pi/3; 
    // special handling 
    double e = INFINITY, f = -INFINITY, g = NAN; 
    // print result 
    double sinx, cosx; 
    sincos(a, &sinx, &cosx); 
    printf("sin(pi/6) = %.15f, cos(pi/6) = %.15f\n", sinx, cosx); 
    sincos(b, &sinx,&cosx); 
    printf("sin(1.0) = %.15f, cos(1.0) = %.15f\n", sinx, cosx); 
    sincos(c, &sinx,&cosx); 
    printf("sin(-3*pi/4) = %.15f, cos(-3*pi/4) = %.15f\n", sinx, cosx); 
    sincos(d, &sinx,&cosx); 
    printf("sin(pi/3) = %.15f, cos(pi/3) = %.15f\n", sinx, cosx); 
    sincos(e, &sinx,&cosx); 
    printf("sin(INFINITY) = %.15f, cos(INFINITY) = %.15f\n", sinx, cosx); 
    sincos(f, &sinx,&cosx); 
    printf("sin(-INFINITY) = %.15f, cos(-INFINITY) =  %.15f\n", sinx, cosx); 
    sincos(g, &sinx,&cosx); 
    printf("sin(NAN) = %.15f, cos(NAN) = %.15f\n", sinx, cosx); 
    /* 
     *  sin(pi/6) = 0.500000000000000, cos(pi/6) = 0.866025403784439 
     *  sin(1.0) = 0.841470984807897, cos(1.0) = 0.540302305868140 
     *  sin(-3*pi/4) = -0.707106781186548, cos(-3*pi/4) = -0.707106781186547 
     *  sin(pi/3) = 0.866025403784439, cos(pi/3) = 0.500000000000000 
     *  sin(INFINITY) = -nan, cos(INFINITY) = nan 
     *  sin(-INFINITY) = -nan, cos(-INFINITY) =  nan 
     *  sin(NAN) = nan, cos(NAN) = -nan 
     * 
     * */

Fortran interface:

    REAL(8) :: X = 1.0 
    REAL(8), TARGET :: SINX, COSX 
    TYPE(C_PTR) :: PSINX, PCOSX 
    PSINX = C_LOC(SINX) 
    PCOSX = C_LOC(COSX) 
    CALL SINCOS(X, PSINX, PCOSX) 
    PRINT*,  SINX, COSX 
    ! 
    ! OUTPUT 
    !     0.841470984807897 0.540302305868140 
    !
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词