Spec-Zone.ru › C

cos, cosf, cosl

Defined in header <math.h>
float       cosf( float arg );
(1) (since C99)
double      cos( double arg );
(2)
long double cosl( long double arg );
(3) (since C99)
_Decimal32  cosd32( _Decimal32 arg );
(4) (since C23)
_Decimal64  cosd64( _Decimal64 arg );
(5) (since C23)
_Decimal128 cosd128( _Decimal128 arg );
(6) (since C23)
Defined in header <tgmath.h>
#define cos( arg )
(7) (since C99)
1-6) Вычисляет косинус arg (измеренный в радианах).
7) Универсальный макрос для типов: если аргумент имеет тип long double, вызывается (3) (cosl). В противном случае, если аргумент имеет целочисленный тип или тип double, вызывается (2) (cos). В противном случае вызывается (1) (cosf). Если аргумент комплексный, макрос вызывает соответствующую комплексную функцию (ccosf, ccos, ccosl).

Функции (4-6) объявляются только в том случае, если реализация предварительно определяет __STDC_IEC_60559_DFP__ (т.е. реализация поддерживает десятичные числа с плавающей точкой).

(since C23)

Параметры

arg - значение с плавающей точкой, представляющее угол в радианах

Возвращаемое значение

Если ошибки не возникло, возвращается косинус arg (cos(arg)) в диапазоне [-1 ; +1].

Результат может иметь мало или совсем не иметь значения, если величина arg велика.

(до C99)

Если возникает ошибка области определения, возвращается значение, определённое реализацией (NaN, где это поддерживается).

Если возникает ошибка диапазона из-за понижения, возвращается правильный результат (после округления).

Обработка ошибок

Ошибки сообщаются, как указано в math_errhandling.

Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559):

  • если аргумент равен ±0, результат равен 1.0;
  • если аргумент равен ±∞, возвращается NaN и генерируется FE_INVALID;
  • если аргумент равен NaN, возвращается NaN.

Примечания

Случай, когда аргумент является бесконечным, не определен как ошибка области определения в C, но он определен как ошибка области определения в POSIX.domain error in POSIX.

Пример

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
 
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
 
int main(void)
{
    const double pi = acos(-1);
 
    // typical usage
    printf("cos(pi/3) = %f\n", cos(pi / 3));
    printf("cos(pi/2) = %f\n", cos(pi / 2));
    printf("cos(-3*pi/4) = %f\n", cos(-3 * pi / 4));
 
    // special values
    printf("cos(+0) = %f\n", cos(0.0));
    printf("cos(-0) = %f\n", cos(-0.0));
 
    // error handling
    feclearexcept(FE_ALL_EXCEPT);
    printf("cos(INFINITY) = %f\n", cos(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

Возможный вывод:

cos(pi/3) = 0.500000
cos(pi/2) = 0.000000
cos(-3*pi/4) = -0.707107
cos(+0) = 1.000000
cos(-0) = 1.000000
cos(INFINITY) = -nan
    FE_INVALID raised

Справочные материалы

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.12.4.5 Функции cos (p: TBD)
    • 7.25 Универсальные математические функции <tgmath.h> (p: TBD)
    • F.10.1.5 Функции cos (p: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.12.4.5 Функции cos (p: 174)
    • 7.25 Универсальные математические функции <tgmath.h> (p: 272-273)
    • F.10.1.5 Функции cos (p: 378)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12.4.5 Функции cos (p: 239)
    • 7.25 Универсальные математические функции <tgmath.h> (p: 373-375)
    • F.10.1.5 Функции cos (p: 519)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12.4.5 Функции cos (p: 220)
    • 7.22 Универсальные математические функции <tgmath.h> (p: 335-337)
    • F.9.1.5 Функции cos (p: 456)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 4.5.2.5 Функция cos

См. также

sinsinfsinl
(C99)(C99)
вычисляет синус (\({\small\sin{x} }\)sin(x))
(функция)
tantanftanl
(C99)(C99)
вычисляет тангенс (\({\small\tan{x} }\)tan(x))
(функция)
acosacosfacosl
(C99)(C99)
вычисляет арккосинус (\({\small\arccos{x} }\)arccos(x))
(функция)
ccosccosfccosl
(C99)(C99)(C99)
вычисляет комплексный косинус
(функция)
Документация C++ для cos

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/cos

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API