B Математические функции: <math.h>
В заголовочном файле <math.h> описываются математические функции и определяются макросы.
Макросы EDOM и ERANGE (находящиеся в <errno.h>) задают отличные от нуля целочисленные константы, используемые для фиксации ошибки области и ошибки диапазона; HUGE_VAL определена как положительное значение типа double. Ошибка области возникает, если аргумент выходит за область значений, для которой определена функция. Фиксация ошибки области осуществляется присвоением errno значения EDOM; возвращаемое значение зависит от реализации. Ошибка диапазона возникает тогда, когда результат функции не может быть представлен в виде double. В случае переполнения функция возвращает HUGE_VAL с правильным знаком и в errno устанавливается значение ERANGE. Если результат оказывается меньше, чем возможно представить данным типом, функция возвращает нуль, а устанавливается ли в этом случае errno в ERANGE, зависит от реализации. Далее x и y имеют тип double, n - тип int, и все функции возвращают значения типа double. Углы в тригонометрических функциях задаются в радианах.
| sin(x) | синус x |
| cos(x) | косинус x |
| tan(x) | тангенс x |
| asin(x) | арксинус x в диапазоне [-pi/2,pi/2], x в диапазоне [-1,1] |
| acos(x) | арккосинус x в диапазоне [0, pi], x в диапазоне [-1,1] |
| atan(x) | арктангенс x в диапазоне [-pi/2, pi/2] |
| atan2(y,x) | арктангенс y/x в диапазоне [-pi, pi] |
| sinh(x) | гиперболический синус x |
| cosh(x) | гиперболический косинус x |
| tanh(x) | гиперболический тангенс x |
| exp(x) | Экспоненциальная функция ex |
| log(x) | натуральный логарифм ln(x), x > 0 |
| log10(x) | десятичный логарифм lg(x), x > 0 |
| pow(x,y) | xy, ошибка области, если x = 0 или y<=0 или x<0 и y – не целое |
| sqrt(x) | квадратный корень x, x >= 0 |
| ceil(x) | наименьшее целое в виде double, которое не меньше x |
| floor(x) | наибольшее целое в виде double, которое не больше x |
| fabs(x) | абсолютное значение |x| |
| ldexp(x, n) | x * 2n |
| frexp(x, int *еxр) | разбивает x на два сомножителя, первый из которых - нормализованная дробь в интервале [1/2, 1), которая возвращается, а второй - степень двойки, эта степень запоминается в *exp. Если x - нуль, то обе части результата равны нулю |
| modf(x,double *ip) | разбивается на целую и дробную части, обе имеют тот же знак, что и x. Целая часть запоминается в *ip, дробная часть выдается как результат |
| fmod(x, y) | остаток от деления x на y в виде числа с плавающей точкой. Знак результата совпадает со знаком x. Если y равен нулю, результат зависит от реализации |