sincos, sincosf, sincosl -
одновременное
вычисление
синуса и
косинуса
Math library (
libm,
-lm)
#define _GNU_SOURCE /* см. feature_test_macros(7) */
#include <math.h>
void sincos(double x, double *sin, double *cos);
void sincosf(float x, float *sin, float *cos);
void sincosl(long double x, long double *sin, long double *cos);
Некоторым
приложениям
необходимы
значения
синуса и
косинуса
одного и
того же
угла
x. Эти
функции
вычисляют
одновременно
оба
значения и
сохраняют
результаты
в
*sin и
*cos.
Использование
этой
функции
может быть
более
эффективно,
чем два
отдельных
вызова
sin(3) и
cos(3).
Если
x
имеет
значение NaN,
будет
возвращено
NaN для
*sin и
*cos.
Если
x
стремится
к плюс
бесконечности
или минус
бесконечности,
то будет
сгенерирована
ошибка
выхода за
пределы
области, а в
качестве
результата
в
*sin and
*cos будет
возвращено
NaN.
Эти
функции
возвращают
void.
Смотрите
math_error(7), чтобы
определить,
какие
ошибки
могут
возникать
при вызове
этих
функций.
Могут
возникать
следующие
ошибки:
- Ошибка
области: x
стремится
к
бесконечности
- Значение
errno
устанавливается
в EDOM (но см.
ДЕФЕКТЫ).
Возникает
исключение
неправильной
плавающей
запятой (
FE_INVALID).
These functions were added in glibc 2.1.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
sincos(), sincosf(), sincosl() |
Безвредность
в нитях |
MT-Safe |
Эти
функции
являются
расширениями
GNU.
Чтобы
увидеть
выгоду
sincos()
может
потребоваться
отключить
встроенные
оптимизации
gcc(1) с
помощью
следующих
флагов:
cc -O -lm -fno-builtin prog.c
Before glibc 2.22, the glibc implementation did not set
errno to
EDOM when a domain error occurred.
cos(3),
sin(3),
tan(3)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]