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

2.28 Log10, log10f - логарифмы по основанию 10

#include <math.h>

double log10(double x);

float log10f(float x);

log10 возвращает значение логарифма по основанию 10 от х. Он определяется как ln(х)/ln(10).

logf идентичен с точностью до входных и выходных типов.

Обе функции возвращают вычисленные значения.

Для получения справки об ошибках, обратитесь к разделу, описывающему log.

log удовлетворяет стандарту ANSI C. logf является расширением.

2.29 log1p, log1pf - натуральные логарифмы oт (1+x)

#include <math.h>

double log1p(double x);

float log1pf(float x);

log1p возвращает значение ln(1+x), натурального логарифма от 1+х. Предпочтительнее использовать именно log1p а не log(1+x) для большей точности вычислений при достаточно малых x.

log1pf идентичен с точностью до входных и выходных типов.

Обе функции возвращают вычисленные значения, - каждый соответствующего типа.

Ни log1p, ни log1pf не входят в ANSI C и System V Interface Definition.

2.30 Matherr - изменяемый обработчик математических ошибок

#include <math.h>

int matherr(struct exception *e);

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

Когда matherr принимает ненулевое значение, сообщение об ошибке не выводится, и значение errno не изменяется. Вы можете подстроить под себя одно или оба этих обстоятельства в своей версии matherr, используя ту информацию, что содержится в структуре *e.

Ниже представлена структура exception (определенная в 'math.h'):

struct exception {

int type;

char *name;

double arj1, arj2, retval;

int err;

};

Поля структуры exception имеют следующие значения:

type

Тип произошедшей ошибки. Множество закодированных типов ошибок также находится в 'math.h'.

name

Указатель на строку, заканчивающуюся нулем, содержащую имя той функции из математической библиотеки, в которой произошла ошибка.

arj1, arj2

Аргументы, вызвавшие ошибку.

retval

Возвращаемое значение ошибки (то значение, которое будет иметь вызываемая функция).

err

Если не ноль, то это новое значение, присвоенное errno.

Типы ошибок, определенные в 'math.h' представлают собой возможные математические ошибки типа:

DOMAIN

Аргумент не в области определения функции; например log(-1.0).

SING

Предполагаемые вычисления привели бы к появлению особой точки, например pow(0.0, -2.0).

OVERFLOW

Вычисления привели бы к результату слишком большому для представления, например exp(1000.0).

UNDERFLOW

Вычисления привели бы к результату слишком маленькому для представления, например exp(-1000.0).

TLOSS

Полная потеря разрядности. Результат не имел бы значащих цифр, например sin(10e70).

PLOSS

Частичная потеря разрядности.

Библиотечное определение matherr возвращает 0 во всех случаях.

Вы можете изменить результат вызываемой функции совершив в matherr изменение e->retval; этот результат передается к источнику вызова.

Если функций matherr возвращает 0 (что означает неспособность разрешить ошибку), источник вызова присваивает errno необходимоеое значение и выводит сообщение об ошибке.

matherr - не ANSI-функция.

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