diff options
Diffstat (limited to 'man3/logb.3')
-rw-r--r-- | man3/logb.3 | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/man3/logb.3 b/man3/logb.3 new file mode 100644 index 000000000..88d8f22cb --- /dev/null +++ b/man3/logb.3 @@ -0,0 +1,101 @@ +.\" Copyright 2004 Andries Brouwer <aeb@cwi.nl>. +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" Inspired by a page by Walter Harms created 2002-08-10 +.\" +.TH LOGB 3 2004-10-31 "" "Linux Programmer's Manual" +.SH NAME +logb, logbf, logbl \- get exponent of a floating point value +.SH SYNOPSIS +.B #include <math.h> +.sp +.BI "double logb(double " x ); +.br +.BI "float logbf(float " x ); +.br +.BI "long double logbl(long double " x ); +.sp +Link with \-lm. +.SH DESCRIPTION +These functions extract the exponent of +.I x +and return it as a floating-point value. If +.B FLT_RADIX +is two, +.BI logb( x ) +is equal to +.BI floor(log2( x ))\fR, +except it's probably faster. +.LP +If +.I x +is de-normalized, +.B logb() +returns the exponent +.I x +would have if it were normalized. +.LP +If +.I x +is zero, -HUGE_VAL (resp. -HUGE_VALF, -HUGE_VALL) +is returned, and a pole error occurs. +If +.I x +is infinite, plus infinity is returned. +If +.I x +is NaN, NaN is returned. +.\" .SH "RETURN VALUE" +.\" These functions return the exponent part of their argument. +.SH ERRORS +In order to check for errors, set +.I errno +to zero and call +.I feclearexcept(FE_ALL_EXCEPT) +before calling these functions. On return, if +.I errno +is non-zero or +.I fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) +is non-zero, an error has occurred. +.LP +If an error occurs and +.I "(math_errhandling & MATH_ERRNO)" +is non-zero, then +.I errno is set to +.BR ERANGE . +If an error occurs and +.I "(math_errhandling & MATH_ERREXCEPT)" +is non-zero, then the divide-by-zero floating-point exception is raised. +.LP +A pole error occurs when +.I x +is zero. +.SH HISTORY +The +.B logb +function occurs in BSD 4.3. +.\" see IEEE.3 in the BSD 4.3 manual +.SH "CONFORMING TO" +ISO C99 +.SH "SEE ALSO" +.BR log (3), +.BR ilogb (3) |