acos, acosf, acosl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<math.h>
|
||
|
float
acosf
(
float
arg
)
;
|
(1) | (начиная с C99) |
|
double
acos
(
double
arg
)
;
|
(2) | |
|
long
double
acosl
(
long
double
arg
)
;
|
(3) | (начиная с C99) |
|
_Decimal32 acosd32
(
_Decimal32 arg
)
;
|
(4) | (начиная с C23) |
|
_Decimal64 acosd64
(
_Decimal64 arg
)
;
|
(5) | (начиная с C23) |
|
_Decimal128 acosd128
(
_Decimal128 arg
)
;
|
(6) | (начиная с C23) |
|
Определено в заголовочном файле
<tgmath.h>
|
||
|
#define acos( arg )
|
(7) | (начиная с C99) |
acosl
) вызывается. В противном случае, если аргумент имеет целочисленный тип или тип
double
,
(2)
(
acos
) вызывается. В остальных случаях
(1)
(
acosf
) вызывается. Если аргумент является комплексным, то макрос вызывает соответствующую комплексную функцию (
cacosf
,
cacos
,
cacosl
).
|
Функции
(4-6)
объявляются тогда и только тогда, когда реализация предопределяет
|
(начиная с C23) |
Содержание |
Параметры
| arg | - | значение с плавающей точкой |
Возвращаемое значение
Если ошибок не возникает, возвращается арккосинус arg ( arccos(arg) ) в диапазоне [0 ; π] .
Если происходит ошибка области определения, возвращается значение, определяемое реализацией (NaN, если поддерживается).
Если происходит ошибка диапазона из-за потери значимости (underflow), возвращается корректный результат (после округления).
Обработка ошибок
Ошибки сообщаются, как указано в
math_errhandling
.
Ошибка области определения возникает, если
arg
находится вне диапазона
[-1.0; 1.0]
.
Если реализация поддерживает арифметику с плавающей запятой IEEE (IEC 60559):
-
Если аргумент равен
+1
, возвращается значение
+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("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
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.12.4.1 Функции acos (стр.: TBD)
-
- 7.25 Обобщённая математика <tgmath.h> (стр.: TBD)
-
- F.10.1.1 Функции acos (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.12.4.1 Функции acos (стр. 173)
-
- 7.25 Обобщённая математика <tgmath.h> (стр. 272-273)
-
- F.10.1.1 Функции acos (стр. 378)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.12.4.1 Функции acos (стр. 238)
-
- 7.25 Обобщённая математика <tgmath.h> (стр. 373-375)
-
- F.10.1.1 Функции acos (стр. 518)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.12.4.1 Функции acos (стр: 218)
-
- 7.22 Обобщённая математика <tgmath.h> (стр: 335-337)
-
- F.9.1.1 Функции acos (стр: 455)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.5.2.1 Функция acos
Смотрите также
|
(C99)
(C99)
|
вычисляет арксинус (
\({\small\arcsin{x} }\)
arcsin(x)
)
(функция) |
|
(C99)
(C99)
|
вычисляет арктангенс (
\({\small\arctan{x} }\)
arctan(x)
)
(функция) |
|
(C99)
(C99)
|
вычисляет арктангенс, используя знаки для определения квадрантов
(функция) |
|
(C99)
(C99)
|
вычисляет косинус (
\({\small\cos{x} }\)
cos(x)
)
(функция) |
|
(C99)
(C99)
(C99)
|
вычисляет комплексный арккосинус
(функция) |
|
C++ документация
для
acos
|
|