
- •2.1 Математические функции('math.H')
- •2.2 Версия библиотеки
- •2.3 Acos,acosf - арккосинус
- •2.4 Acosh, acoshf - обратный гиперболический косинус
- •2.5 Asin, asinf - арксинус
- •2.6 Asinh, asinhf - обратный гиперболический синус
- •2.7 Atan, atanf - арктангенс
- •2.8 Atan2, atan2f - арктангенс от y/X
- •2.9 Atanh, atanhf - обратный гиперболический тангенс
- •2.10 JN,jNf,yN,yNf - функции Бесселя
- •2.11 Сbrt,cbrtf - кубический корень
- •2.12 Copysign, copysignf - число с абсолютным значением х и со
- •2.13 Cosh, coshf - гиперболический косинус
- •2.14 Erf, erff, erfc, erfcf - функции ошибки
- •2.15 Exp, expf - экспонента
- •2.16 Expm1, expm1f - экспонента минус 1
- •2.17 Fabs, fabsf - абсолютное значение (модуль)
- •2.18 Floor, floorf, ceil, ceilf - наименьшее и наибольшее ближайшие целые
- •2.19 Fmod, fmodf - остаток от деления в виде числа с плавающей точкой
- •2.20 Frexp,frexpf - разбиение числа с плавающей точкой
- •2.22 Hypot, hypotf - расстояние от начала координат
- •2.23 Ilogb, ilogbf - получение показателя степени в представлении числа с плавающей точкой
- •2.24 Infinity, infinityf - представление бесконечности
- •2.25 Isnan, isnanf, isinf, isinff, finite, finitef - тест для чисел структуры exception
- •2.26 Ldexp, ldexpf - задание показателя
- •2.27 Log, logf - натуральные логарифмы
- •2.28 Log10, log10f - логарифмы по основанию 10
- •2.30 Matherr - изменяемый обработчик математических ошибок
- •2.31 Modf, modff - разбиение на дробную и целую части
- •2.32 Nan, nanf - представление бесконечности
- •2.33 Nextafter, nextafterf - получение ближайшего числа
- •2.34 Pow, powf - X в степени y
- •2.35 Rint, rintf, remainder, remainderf - округление и остаток
- •2.36 Scalbn, scalbnf - масштабирование
- •2.37 Sqrt, sqrt - арифметический квадратный корень
- •2.38 Sin, sinf, cos, cosf - синус и косинус
- •2.39 Sinh, sinhf - гиперболический синус
- •2.40 Tan, tanf - тангенс
- •2.41 Tanh, tanhf - гиперболический тангенс
http://security.opennet.ru/docs/RUS/mlib/m_lib_ru-2.html
2.1 Математические функции('math.H')
В этой части собрано множество разнообразных математических функций. Соответствующие им определения и объявления содержатся в 'math.h'. Обратим внимание на два определения из 'math.h', которые представляют собой определенный интерес.
Бесконечность в типе double определяется как HUGE_VAL; многие функции возвращают это значение при переполнении.
Структура exception используется при написании определенных Вами обработчиков ошибок для математических функций. Вы можете определить свой способ обработки ошибок для большинства этих функций, выбрав собственную версию matherr; см. описание функции matherr для выяснения подробностей.
Поскольку обработчик ошибок вызывает fputs, математические подпрограммы требуют заглушек (фиктивных модулей) или минимальных реализаций (имплементаций) для списка подпрограмм ОС, из fputs: close, fstat, isatty, lseek, read, sbrk, write. Cм. раздел "System Calls" в The Cygnum C Support Library, для получения помощи и примеров таких реализаций программ поддержки.
Альтернативные объявления математическик функций, позволяющие эффективнее использовать возможности машины, - но, как правило, хуже отслеживающие ошибки и могущие вызывать дополнительные трудности на некоторых машинах, - доступны при подключении 'fastmath.h' вместо 'math.h'.
2.2 Версия библиотеки
Существуют четыре различных версии программ математических библиотек: IEEE, POSIX, X/Open, и SVID. Версия может быть выбрана Вами в период прогона программы заданием глобальной переменной _LIB_VERSION, определенной в 'math.h'. Она может принимать значение одной из следующих констант, определенных в 'math.h': _IEEE_, _POSIX_, _XOPEN_, или _SVID_. Переменная _LIB_VERSION не является специальной для каждой части программы, и изменение ее сказывается на всех частях.
Версии библиотеки различаются только по принципу обработки ошибок.
В режиме IEEE функция matherr не вызывается, не печатается сообщение об ошибке, и не задается значение переменной errno.
В режиме POSIX переменной errno присваивается необходимое значение, но функция matherr не вызывается, и не выводится сообщение об ошибке.
В режиме X/Open переменная errno принимает соответствующее значение, вызывается функция matherr, но сообщение об ошибке не выводится.
В режиме SVID функции, в случае переполнения, не принимают значение бесконечности, а становятся равными 3.40282346638528860e+38, максимально возможному одноразрядному числу с плавающей точкой. Также переменной errno присваивается правильное значение, вызывается функция matherr, и, если matherr обращается в 0, то для некоторых ошибок выводится соответствующее сообщение. Например, в ответ на 'log(-1.0)' печатается сообщение об ошибке в стандартном виде вывода: log: DOMAIN error. По умолчанию реализуется режим X/Open.
2.3 Acos,acosf - арккосинус
#include <math.h>
double acos(double x);
float acosf(float x);
acos вычисляет арккосинус (arccos) от заданного аргумента. Аргумент для acos должен находиться в отрезке [-1,1].
acosf идентичен acos, различие состоит в типах (double и floats), с которыми проводятся вычисления.
acos и acosf возвращают значения в радианах на промежутке от 0 до pi.
Если х не в промежутке [-1,1], то возвращаемое значение есть NaN (not a number), глобальная переменная errno принимает значение EDOM, и в стандартном выводе выносится сообщение DOMAIN error.
Вы можете изменить обработку ошибок для этих функций, используя matherr.