summaryrefslogtreecommitdiffstats
path: root/man3/logb.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/logb.3')
-rw-r--r--man3/logb.3101
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)