PFREXP 3CW "12 July 2007" "mathcw-1.00"

Table of contents


NAME

pfrexpf, pfrexp, pfrexpl, pfrexpw, pfrexpq, pfrexpll, pfrexpdf, pfrexpd, pfrexpdl, pfrexpdll - extract fraction and exponent from a pair-precision floating-point number

SYNOPSIS

cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ]

#include <mathcw.h>
#include <paircw.h>

extern void pfrexpf (float_pair result, const float_pair x, int *pn);

extern void pfrexp (double_pair result, const double_pair x, int *pn);

extern void pfrexpl (long_double_pair result, const long_double_pair x, int *pn);

extern void pfrexpw (__float80_pair result, const __float80_pair x, int *pn);

extern void pfrexpq (__float128_pair result, const __float128_pair x, int *pn);

extern void pfrexpll (long_long_double_pair result, const long_long_double_pair x, int *pn);

extern void pfrexpdf (decimal_float_pair result, const decimal_float_pair x, int *pn);

extern void pfrexpd (decimal_double_pair result, const decimal_double_pair x, int *pn);

extern void pfrexpdl (decimal_long_double_pair result, const decimal_long_double_pair x, int *pn);

extern void pfrexpdll (decimal_long_long_double_pair result, const decimal_long_long_double_pair x,
                      int *pn);

NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.


DESCRIPTION

For pfrexpf(), pfrexp(), pfrexpl(), and pfrexpll(), split the argument into the product of a fraction of magnitude in [1/2, 1) (or 0 if the argument is zero) with the same sign as the argument, and an integral power of two.

For pfrexpdf(), pfrexpd(), pfrexpdl(), and pfrexpdll(), split the argument into the product of a fraction of magnitude in [1/10, 1) (or 0 if the argument is zero) with the same sign as the argument, and an integral power of ten.

This operation is always exact, and the number can be recovered with a suitable member of the companion pldexp(), pldexpo(), or pldexph() function families.

No special variant of the pfrexp() family is strictly needed for octal or hexadecimal bases, since powers of those bases are also powers of two, but the companion pfrexph() and pfrexpo() function families are available for programmer convenience.


RETURN VALUES

None. The function result is stored in the first argument, result, and if the second argument is non-NULL, store the power-of-two-or-ten in the object that it points to.

ERRORS

None.

SEE ALSO

pabs(3CW), pacos(3CW), pacosh(3CW), padd(3CW), pasin(3CW), pasinh(3CW), patan(3CW), patan2(3CW), patanh(3CW), pcbrt(3CW), pcmp(3CW), pcon(3CW), pcopy(3CW), pcopysign(3CW), pcos(3CW), pcosh(3CW), pcotan(3CW), pdiv(3CW), pdot(3CW), peps(3CW), peval(3CW), pexp(3CW), pexp10(3CW), pexp16(3CW), pexp2(3CW), pexp8(3CW), pexpm1(3CW), pfdim(3CW), pfmax(3CW), pfmin(3CW), pfrexph(3CW), phigh(3CW), phypot(3CW), pierf(3CW), pierfc(3CW), pilogb(3CW), pin(3CW), pinfty(3CW), pipow(3CW), pisinf(3CW), pisnan(3CW), pisqnan(3CW), pissnan(3CW), pldexp(3CW), pldexph(3CW), plog(3CW), plog101p(3CW), plog1p(3CW), plow(3CW), pmul(3CW), pmul2(3CW), pneg(3CW), pout(3CW), pprosum(3CW), pqnan(3CW), pscalbln(3CW), pscalbn(3CW), pset(3CW), psignbit(3CW), psin(3CW), psinh(3CW), psnan(3CW), psplit(3CW), psqrt(3CW), psub(3CW), psum(3CW), psum2(3CW), ptan(3CW), ptanh(3CW).