std::asin

来自cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
指数函数
(C++11)
(C++11)
(C++11)
(C++11)
幂函数
(C++11)
(C++11)
三角与双曲函数
(C++11)
(C++11)
(C++11)
误差与伽马函数
(C++11)
(C++11)
(C++11)
(C++11)
临近整数的浮点运算
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
浮点操作函数
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
分类/比较
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
宏常量
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
 
定义于头文件 <cmath>
float       asin( float arg );
(1)
double      asin( double arg );
(2)
long double asin( long double arg );
(3)
double      asin( Integral arg );
(4) (C++11 起)

计算 arg 的弧(反)正弦主值。

4) 接受任何整数类型参数的重载集或函数模板。等价于 2) (将参数转型为 double )。

目录

[编辑] 参数

arg - 浮点或整数类型

[编辑] 返回值

若不出现错误,则返回 arg 在范围 [-
π
2
 ; +
π
2
]
中的弧(反)正弦( arcsin(arg) )。

若出现定义域错误,则返回实现定义值(受支持平台上为 NaN )。

若出现下溢所致的值域错误,则返回(舍入后的)正确结果。

[编辑] 错误处理

报告 math_errhandling 中指定的错误。

arg 在范围 [-1.0; 1.0] 外则出现定义域错误。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

  • 若参数为 ±0 ,则返回不修改的参数。
  • |arg| > 1 ,则出现定义域错误并返回 NaN 。
  • 若参数为 NaN ,则返回 NaN 。

[编辑] 示例

#include <cmath>
#include <iostream>
#include <cerrno>
#include <cfenv>
#include <cstring>
 
#pragma STDC FENV_ACCESS ON
int main()
{
    std::cout << "asin(1.0) = " << asin(1) << '\n'
              << "2*asin(1.0) = " << 2*asin(1) << '\n'
              << "asin(-0.5) = " << asin(-0.5) << '\n'
              << "6*asin(-0.5) =" << 6*asin(-0.5) << '\n';
    // 特殊值
    std::cout << "asin(0.0) = " << asin(0) << " asin(-0.0)=" << asin(-0.0) << '\n';
    // 错误处理
    errno = 0; std::feclearexcept(FE_ALL_EXCEPT);
    std::cout << "asin(1.1) = " << asin(1.1) << '\n';
    if(errno == EDOM)
        std::cout << "    errno == EDOM: " << std::strerror(errno) << '\n';
    if(std::fetestexcept(FE_INVALID))
        std::cout << "    FE_INVALID raised" << '\n';
}

可能的输出:

asin(1.0) = 1.5708
2*asin(1.0) = 3.14159
asin(-0.5) = -0.523599
6*asin(-0.5) = -3.14159
asin(0.0) = 0 asin(-0.0)=-0
asin(1.1) = nan
    errno == EDOM: Numerical argument out of domain
    FE_INVALID raised

[编辑] 参阅

计算弧(反)余弦( arccos(x)
(函数) [编辑]
计算弧(反)正切( arctan(x)
(函数) [编辑]
弧(反)正切,用符号确定象限
(函数) [编辑]
计算正弦( sin(x)
(函数) [编辑]
计算复数的弧(反)正弦( arcsin(z)
(函数模板) [编辑]
应用函数 std::asin 到 valarray 的每个元素
(函数模板) [编辑]
asinC 文档