FREXP(3C)

НАЗВАНИЕ
frexp, ldexp, modf - манипуляции над компонентами вещественных чисел

СИНТАКСИС

	double frexp (value, eptr)
	double value;
	int *eptr;

	double ldexp (value, exp)
	double value;
	int exp;

	double modf (value, iptr)
	double value, *iptr;

ОПИСАНИЕ
Всякое ненулевое число может быть единственным образом записано в форме

	x * 2^n

где мантисса (x) находится в диапазоне 0.5 |x| < 1.0, а порядок (n) являет собой целое число. Для аргумента value, заданного как вещественное число двойной точности, функция frexp возвращает значение мантиссы с двойной точностью и помещает значение порядка по адресу, задаваемому указателем eptr. В случае value, равного 0, функция frexp оба результата выдает нулевыми.

Функция ldexp возвращает величину (value * 2^exp).

Функция modf возвращает дробную часть аргумента value (со знаком), а целую часть (получаемую отбрасыванием дробной) помещает по адресу, задаваемому указателем iptr.

ДИАГНОСТИКА
Если при обращении к функции ldexp возникнет переполнение, то будет возвращено, в зависимости от знака value, значение +HUGE или -HUGE [см. intro(3)], а переменной errno будет присвоено значение ERANGE. Если же результирующее число, напротив, окажется слишком малым, чтобы его можно было представить, то функцией ldexp будет возвращено нулевое значение, а переменной errno будет присвоено значение ERANGE.