名稱空間
變體
操作

sinpi, sinpif, sinpil, sinpid32, sinpid64, sinpid128

來自 cppreference.com
< c‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指數函式
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
冪函式
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角函式和雙曲函式
sinpi
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最近整數浮點數
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮點數操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子與量子指數
十進位制重新編碼函式
總序和載荷函式
分類
(C99)
(C99)
(C99)
(C23)
誤差函式和伽馬函式
(C99)
(C99)
(C99)
(C99)
型別
宏常量
特殊浮點值
(C99)(C23)
引數和返回值
錯誤處理
快速操作指示符
 
定義於標頭檔案 <math.h>
float       sinpif( float arg );
(1) (自 C23 起)
double      sinpi( double arg );
(2) (自 C23 起)
long double sinpil( long double arg );
(3) (自 C23 起)
_Decimal32  sinpid32( _Decimal32 arg );
(4) (自 C23 起)
_Decimal64  sinpid64( _Decimal64 arg );
(5) (自 C23 起)
_Decimal128 sinpid128( _Decimal128 arg );
(6) (自 C23 起)
定義於標頭檔案 <tgmath.h>
#define sinpi( arg )
(7) (自 C23 起)
1-6) 計算 π·arg 的正弦,以弧度測量,因此將 arg 視為半轉的測量。
7) 泛型宏:根據 arg 的型別呼叫正確的函式。如果引數具有整數型別,則呼叫 (2)

函式 (4-6) 僅當實現預定義 __STDC_IEC_60559_DFP__(即實現支援十進位制浮點數)時才宣告。

(自 C23 起)

目錄

[編輯] 引數

arg - 浮點值,其與 π 的乘積表示以弧度計量的角度

[編輯] 返回值

如果沒有發生錯誤,則返回 π·arg 的正弦(sin(π×arg)),範圍為 [-1, +1]

[編輯] 錯誤處理

錯誤按 math_errhandling 中指定的方式報告。

如果實現支援 IEEE 浮點算術 (IEC 60559)

  • 如果引數是 ±0,則原樣返回;
  • 如果引數是 ±∞,則返回 NaN 並引發 FE_INVALID
  • 如果引數為 NaN,則返回 NaN。

[編輯] 示例

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
 
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
 
#if __STDC_VERSION__ < 202311L
// A naive implementation of a subset of sinpi family
double sinpi(double arg)
{
    return sin(arg * (double)3.1415926535897932384626433);
}
#endif
 
int main(void)
{
    const double pi = acos(-1);
 
    // typical usage
    printf("sinpi(1) = %f, sin(pi) = %f\n", sinpi(1), sin(pi));
    printf("sinpi(0.5) = %f, sin(pi/2) = %f\n", sinpi(0.5), sin(pi / 2));
    printf("sinpi(-0.75) = %f, sin(-3*pi/4) = %f\n", sinpi(-0.75), sin(-3 * pi / 4));
 
    // special values
    printf("sinpi(+0) = %f\n", sinpi(0.0));
    printf("sinpi(-0) = %f\n", sinpi(-0.0));
 
    // error handling
    feclearexcept(FE_ALL_EXCEPT);
    printf("sinpi(INFINITY) = %f\n", sinpi(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

可能的輸出

sinpi(1) = 0.000000, sin(pi) = 0.000000
sinpi(0.5) = 1.000000, sin(pi/2) = 1.000000
sinpi(-0.75) = -0.707107, sin(-3*pi/4) = -0.707107
sinpi(+0) = 0.000000
sinpi(-0) = -0.000000
sinpi(INFINITY) = -nan
    FE_INVALID raised

[編輯] 參考文獻

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.12.4.13 sinpi 函式 (p: 247-248)
  • 7.27 泛型數學 <tgmath.h> (p: 387)

[編輯] 參閱

(C99)(C99)
計算正弦 (sin(x))
(函式) [編輯]