Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Библиотека мат функ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
104.45 Кб
Скачать

2.15 Exp, expf - экспонента

#include <math.h>

double exp(double x);

float expf(float x);

х exp и expf вычисляют значение экспоненты от х, e (где e - основание натуральной системы логарифмов, приблизительно равное 2.71828).

Вы можете использовать функцию matherr (не-ANSI) для выбора обработчика ошибок для этих функций.

В случае успеха exp и expf возвращают вычисленное значение. Если результат слишком мал, возвращается значение 0. Если результат слишком велик, возвращается значение HUGE_VAL. В обоих случаях errno принимает значение ERANGE.

exp coответствует стандарту ANSI. expf является расширением.

2.16 Expm1, expm1f - экспонента минус 1

#include <math.h>

double expm1(double x);

float expm1f(float x);

expm1 и expm1f вычисляют значение экспоненты от х и вычитают 1, т. е. е в степени х, минус 1. (где e - основание натуральной системы логарифмов, приблизительно равное 2.71828). Результат остается точным даже для малых значениях х, в то время как использование exp(x)-1 вызвало бы потерю многих значащих цифр.

Ни expм1, ни expm1f не соответствуют стандарту ANSI и System V Interface Definition.

2.17 Fabs, fabsf - абсолютное значение (модуль)

#include <math.h>

double fabs(double x);

float fabsf(float x);

fabs и fabsf вычисляют ЁxЁ, абсолютное значение (модуль) от аргумента х. непосредственным обращением к битовому представлению аргумента.

Возвращается вычисленное значение. Никаких ошибок не возникает.

fabs coответствует стандарту ANSI. fabsf является расширением.

2.18 Floor, floorf, ceil, ceilf - наименьшее и наибольшее ближайшие целые

#include <math.h>

double floor(double x);

float floorf(float x);

double ceil(double x);

float ceilf(float x);

floor и floorf вычисляют ближайшее целое значение, не превосходящее х. ceil и ceilf вычисляют ближайшее целое значение, не меньшее х.

floor и ceil возвращают вычисленное значение типа double. floorf и ceilf возвращают вычисленное значение типа float.

floor и ceil coответствуют стандарту ANSI. floorf и ceilf являются расширениями.

2.19 Fmod, fmodf - остаток от деления в виде числа с плавающей точкой

#include <math.h>

double fmod(double x, double y);

float fmodf(float x, float y);

fmod и fmodf вычисляют остаток от деления х/у в формате плавающей точки (х ( mod y)).

Функция fmod возвращает значение x-i*y, для наибольшего такого i, что если y отличен от 0, результат имеет тот же знак, что и х, а по модулю не превосходит модуля y.

fmod(x,0) возвращает NaN, errno присваивается значение EDOM.

Вы можете изменить обработчик ошибок для этих функций, используя matherr.

fmod coответствует стандарту ANSI. fmodf является расширением.

2.20 Frexp,frexpf - разбиение числа с плавающей точкой

#include <math.h>

double frexp(double val, int *exp);

float frexpf(float val, int *exp);

Все ненулевые нормализованные числа можно представить в виде m*(2**p) . frexp разбивает переменную типа double val на мантиссу m и степень двойки р. В результате мантисса всегда будет больше 0.5 и меньше чем 1.0 (поскольку val не ноль). Степень двойки хранится в переменной *exp.

m и р вычисляются так что

р

val = m*2 .

Функция frexpf идентична с точностью до типов.

frexp возвращает мантиссу m. Если val = 0 или NaN, frexp присваивает *exp значение 0, и возвращает val.

frexp coответствует стандарту ANSI. frexpf является расширением.

2.21 gamma, gammaf, lgamma, lgammaf, gamma_r, gammaf_r, lgamma_r, lgammaf_r

#include <math.h>

double gamma(double x);

float gammaf(float x);

double lgamma(double x);

float lgammaf(float x);

double gamma_r(double x, int *signgamp);

float gammaf_r(float x, int *signgamp);

double lgamma_r(double x, int *signgamp);

float lgammaf_r(float x, int *signgamp);

gamma вычисляет ln(Г(х)), натуральный логарифм от гамма-функции от х. Гамма-функция (exp(gamma(x)) eсть обобщение факториала и использует то свойство, что Г(N) = N*Г(N-1). В соответствии с этим, значения гамма-функции растут очень быстро. gamma определяется как ln(Г(х)) а не как просто Г(х) для того чтобы расширить полезное поле представляемых результатов.

Знак результата сохраняется в глобальной переменной signgam, которая объявлена в math.h.

gammaf производит те же вычисления, что и gamma, но оперирует с переменными типа float.

lgamma и lgammaf - это альтернативные названия для gamma и gammaf. Они существуют в качестве напоминания о том, что вычисляется не сама гамма-функцию, а логарифм от нее.

Функции gamma_r, gammaf_r, lgamma_r и lgammaf_r подобны функциям gamma, gammaf, lgamma, lgammaf соответственно, но требуют лишний аргумент. Этот аргумент - указатель на целое число. Он используется для получения знака результата, и глобальная переменная signgam не используется. Эти функции могут быть использованы для входных заявок (но они, тем не менее, будут задавать значение глобальной переменной errno в случае возникновения ошибки).

Не путайте функцию gamma_r, которая запрашивает дополнительный аргумент, являющийся указателем на целое, с функцией _gamma_r, которая запрашивает дополнительный аргумент, являющийся указателем на структуру повторной входимости.

В случае успеха возвращается вычисленное значение.

Когда х - неположительное число, gamma возвращает HUGE_VAL, а errno принимает значение EDOM. Если происходит переполнение, gamma возвращает HUGE_VAL, а errno принимает значение ERANGE.

Вы можете изменить обработчик ошибок для этих функций, используя matherr.

Ни gamma, ни gammaf не являются ANSI C - функциями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]