logb(), logbf()

Вычислить экспоненту, не зависящую от системы счисления

Прототип:

#include <math.h>
double logb( double x );
float logbf( float x );

Аргументы:

x
Число для которого требуется вычислить экспоненту, не зависящую от системы счисления.

Библиотека:

libm

Описание:

Функции logb() и logbf() вычисляют:

logᵣ |x|

и представляют результат в виде числа с плавающей точкой, для ненулевых конечных x, где r - основание системы счисления арифметики чисел с плавающей точкой устройства.

Возвращаемое значение:

Экспонента x в двоичной системе счисления, знаковое целое число, сконвертированное в число с плавающей точкой с двойной точностью (double).

Если x равен: logb() возвращает:
0.0 -HUGE_VAL (errno установлено в EDOM)
<0.0 -HUGE_VAL (errno может быть установлено в ERANGE)
±Inf +Inf


Note: В случае возникновения ошибки, эти функции возвращают 0, который также может быть и достоверным математическим результатом. Если вам необходимо проверить, возникла ли ошибка, установите errno в 0, вызовите функцию, и затем снова проверьте errno. Эти функции не изменяют errno в случае отсутствия ошибок.

Примеры:

#include <stdio.h>
#include <errno.h>
#include <inttypes.h>
#include <math.h>
#include <fpstatus.h>
int main( int argc, char** argv )
{
double a, b;
a = 0.5;
b = logb( a );
printf( "logb(%f) = %f (%f = 2^%f) \n", a, b, a, b );
return (0);
}

Код генерирует следующий вывод:

$ ./a.out logb(0.500000) = -1.000000 (0.500000 = 2^-1.000000)

Классификация:

ANSI, POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

ilogb(), log(), log10(), log1p()




Предыдущий раздел: Описание API математической библиотеки