名前空間
変種
操作

asin, asinf, asinl

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(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)
三角関数と双曲線関数
asin
(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)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <math.h> で定義
float       asinf( float arg );
(1) (C99以降)
double      asin( double arg );
(2)
long double asinl( long double arg );
(3) (C99以降)
_Decimal32  asind32( _Decimal32 arg );
(4) (C23以降)
_Decimal64  asind64( _Decimal64 arg );
(5) (C23以降)
_Decimal128 asind128( _Decimal128 arg );
(6) (C23以降)
ヘッダー <tgmath.h> で定義
#define asin( arg )
(7) (C99以降)
1-6) arg の主値(逆正弦)を計算します。
7) 型汎用マクロ:引数の型が long double の場合、(3)asinl)が呼び出されます。それ以外の場合で、引数が整数型または double 型の場合、(2)asin)が呼び出されます。それ以外の場合、(1)asinf)が呼び出されます。引数が複素数の場合、マクロは対応する複素数関数(casinfcasincasinl)を呼び出します。

関数 (4-6) は、実装が __STDC_IEC_60559_DFP__ を事前定義している場合(つまり、実装が10進浮動小数点数をサポートしている場合)にのみ宣言されます。

(C23以降)

目次

[編集] パラメータ

arg - floating-point value

[編集] 戻り値

エラーが発生しなかった場合、arg の逆正弦(arcsin(arg))が、[-
π
2
 ; +
π
2
]
の範囲で返されます。

領域エラーが発生した場合、実装定義の値が返される (サポートされている場合はNaN)。

アンダーフローによる範囲エラーが発生した場合、正確な結果 (丸め後) が返される。

[編集] エラー処理

エラーは math_errhandling で指定されたとおりに報告されます。

arg が範囲 [-1.0; 1.0] 外にある場合、定義域エラーが発生します。

実装が IEEE 浮動小数点演算 (IEC 60559) をサポートしている場合

  • 引数が ±0 の場合、変更されずに返されます。
  • もし |arg| > 1 であれば、定義域エラーが発生し、NaN が返されます。
  • 引数が NaN の場合、NaN が返されます。

[編集]

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
 
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
 
int main(void)
{
    printf("asin( 1.0) = %+f, 2*asin( 1.0)=%+f\n", asin(1), 2 * asin(1));
    printf("asin(-0.5) = %+f, 6*asin(-0.5)=%+f\n", asin(-0.5), 6 * asin(-0.5));
 
    // special values
    printf("asin(0.0) = %1f, asin(-0.0)=%f\n", asin(+0.0), asin(-0.0));
 
    // error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("asin(1.1) = %f\n", asin(1.1));
    if (errno == EDOM)
        perror("    errno == EDOM");
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

実行結果の例

asin( 1.0) = +1.570796, 2*asin( 1.0)=+3.141593
asin(-0.5) = -0.523599, 6*asin(-0.5)=-3.141593
asin(0.0) = 0.000000, asin(-0.0)=-0.000000
asin(1.1) = nan
    errno == EDOM: Numerical argument out of domain
    FE_INVALID raised

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12.4.2 The asin functions (p: TBD)
  • 7.25 Type-generic math <tgmath.h> (p: TBD)
  • F.10.1.2 The asin functions (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12.4.2 The asin functions (p: 174)
  • 7.25 型総称数学関数 <tgmath.h> (p: 272-273)
  • F.10.1.2 The asin functions (p: 378)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12.4.2 The asin functions (p: 238)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.1.2 The asin functions (p: 518)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12.4.2 The asin functions (p: 219)
  • 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
  • F.9.1.2 The asin functions (p: 456)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.5.2.2 The asin function

[編集] 関連項目

(C99)(C99)
アークコサインを計算する (arccos(x))
(関数) [編集]
(C99)(C99)
アークタンジェントを計算する (arctan(x))
(関数) [編集]
象限を決定するために符号を使用してアークタンジェントを計算する
(関数) [編集]
(C99)(C99)
サインを計算する (sin(x))
(関数) [編集]
(C99)(C99)(C99)
複素アークサインを計算する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)