view doc/posix-functions/logb.texi @ 16751:9d599e388a0f

logb: Provide replacement and workarounds. * lib/math.in.h (logb): Ensure declaration. Replace if REPLACE_LOGB is 1. * lib/logb.c: New file. * m4/logb.m4 (gl_FUNC_LOGB_WORKS): New macro. (gl_FUNC_LOGB): Invoke it. Set HAVE_LOGB, REPLACE_LOGB. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGB. * modules/math (Makefile.am): Substitute REPLACE_LOGB. * modules/logb (Files): Add lib/logb.c. (Depends-on): Add isfinite, frexp, isnand. (configure.ac): Compile the replacement code logb.c if needed. * tests/test-math-c++.cc: Check the declaration of logb. * doc/posix-functions/logb.texi: Mention the replacement and the bug with subnormal numbers.
author Bruno Haible <bruno@clisp.org>
date Tue, 03 Apr 2012 02:51:42 +0200
parents 6355dc4626b5
children
line wrap: on
line source

@node logb
@section @code{logb}
@findex logb

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/logb.html}

Gnulib module: logb

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
Minix 3.1.8, MSVC 9.
@item
This function is missing a declaration on some platforms:
Cygwin 1.5.x.
@item
This function produces wrong results for subnormal numbers on some platforms:
glibc 2.11/ppc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11 2011-11, Cygwin 1.5.x.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@end itemize