acos, acosf, acosl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
 
定义于头文件 <math.h>
float       acosf( float arg );
(1) (C99 起)
double      acos( double arg );
(2)
long double acosl( long double arg );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define acos( arg )
(4) (C99 起)
1-3) 计算 arg 的弧(反)余弦主值。
4) 泛型宏:若参数拥有 long double 类型,则调用 acosl 。否则,若参数拥有整数类型或 double 类型,则调用 acos 。否则调用 acosf 。若参数为复数,则宏调用对应的复数函数( cacosfcacoscacosl )。

参数

arg - 浮点值

返回值

若不出现错误,则返回 arg 于范围 [0 ; π] 中的弧(反)余弦( arccos(arg) )。

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

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

错误处理

报告 math_errhandling 中指定的错误。

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

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

  • 若参数为 +1 ,则返回值 +0
  • |arg| > 1 ,则返回定义域错误并返回 NaN 。
  • 若参数为 NaN ,则返回 NaN 。

示例

#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fenv.h>
#include <string.h>
 
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("acos(-1) = %f\n", acos(-1));
    printf("acos(0.0) = %f 2*acos(0.0) = %f\n", acos(0), 2*acos(0));
    printf("acos(0.5) = %f 3*acos(0.5) = %f\n", acos(0.5), 3*acos(0.5));
    printf("acos(1) = %f\n", acos(1));
    // 错误处理
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("acos(1.1) = %f\n", acos(1.1));
    if(errno == EDOM) perror("    errno == EDOM");
    if(fetestexcept(FE_INVALID)) puts("    FE_INVALID raised");
}

可能的输出:

acos(-1) = 3.141593
acos(0.0) = 1.570796 2*acos(0.0) = 3.141593
acos(0.5) = 1.047198 3*acos(0.5) = 3.141593
acos(1) = 0.000000
acos(1.1) = nan
    errno == EDOM: Numerical argument out of domain
    FE_INVALID raised

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.4.1 The acos functions (p: 238)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.1.1 The acos functions (p: 518)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.4.1 The acos functions (p: 218)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.1.1 The acos functions (p: 455)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.2.1 The acos function

参阅

(C99)(C99)
计算反正弦 (arcsin(x)
(函数)
(C99)(C99)
计算反正切 (arctan(x)
(函数)
计算反正切,以符号确定象限
(函数)
(C99)(C99)
计算余弦 (cos(x)
(函数)
(C99)(C99)(C99)
计算复数反余弦
(函数)