Go to file
Carlos O'Donell e96e37676f Correctly compute ulp near zero.
The current value used for ulp near zero is wrong,
and this commit fixes it such that ulp(0) is the smallest
subnormal value nearest to zero, which makes the most
sense for testing values near zero. Note that this is not
what Java does; they use the nearest normal value, which
is less accurate than what we want for glibc. Note that
there is no correct implementation of ulp since there
is no strict mathmatical definition that is accepted by
all groups using IEEE 754.

Previously with the large ulp values near zero there
were tests that previously passed, but were in fact
billions of ulp away from the precise answer. With this
commit we now need to disable one of the cpow tests which
is revealed to be inaccurate (bug 14473).

---

2013-05-24  Carlos O'Donell  <carlos@redhat.com>

	* math/libm-test.inc (MAX_EXP): Define.
	(ULPDIFF): Define.
	(ulp): New function.
	(check_float_internal): Use ULPDIFF.
	(cpow_test): Disable failing test.
	(check_ulp): Test ulp() implemetnation.
	(main): Call check_ulp before starting tests.
2013-05-24 14:23:15 -04:00
argp
assert
benchtests Sort benchmark functions 2013-05-22 11:07:39 +05:30
bits
catgets
conf
conform
crypt Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
csu
ctype
debug Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
dirent
dlfcn
elf Update comments in ldconfig.c and dl-hwcaps.c. 2013-05-22 23:22:36 -04:00
gmon
gnulib
grp
gshadow
hesiod
hurd
iconv Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
iconvdata Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
include Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
inet Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
intl Fix _nl_find_msg malloc failure case, and callers. 2013-05-22 14:50:26 -04:00
io Fix poll stub implementation. 2013-05-06 15:23:51 -07:00
libidn Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
libio Initialize wide struct info. 2013-05-24 08:34:10 +02:00
locale Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
localedata Add yesstr and nostr to en_CA, es_AR, and es_ES 2013-05-02 23:24:21 -04:00
login Move getlogin_r_chk to login/ subdir. 2013-05-06 15:58:44 -07:00
mach
malloc Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
manual PowerPC: Add functions for shared resources hints. 2013-05-23 10:32:47 -05:00
math Correctly compute ulp near zero. 2013-05-24 14:23:15 -04:00
misc Only defined DEV_BSIZE if not already defined. 2013-05-08 00:00:46 +02:00
nis Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
nptl Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
nptl_db Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
nscd Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
nss Set EAI_SYSTEM only when h_errno is NETDB_INTERNAL 2013-05-21 21:54:41 +05:30
po
ports tile: improve detection for missing -mcmodel=large support 2013-05-24 14:02:31 -04:00
posix Test getaddrinfo return value 2013-05-21 17:21:05 +00:00
pwd
resolv Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
resource Fix stub setrlimit implementation. 2013-05-06 14:58:00 -07:00
rt
scripts Prevent optimizing out of benchmark function call 2013-05-17 19:10:33 +05:30
setjmp AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp 2013-05-21 10:52:46 +02:00
shadow
signal
socket
soft-fp MIPS: soft-fp NaN representation corrections 2013-05-16 23:33:55 +01:00
stdio-common
stdlib Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
streams
string Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
sunrpc Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
sysdeps PowerPC: Add functions for shared resources hints. 2013-05-23 10:32:47 -05:00
sysvipc
termios
time Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
timezone
wcsmbs Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
wctype
.gitattributes
.gitignore
abi-tags
aclocal.m4
BUGS
CANCEL-FCT-WAIVE
CANCEL-FILE-WAIVE
ChangeLog Correctly compute ulp near zero. 2013-05-24 14:23:15 -04:00
ChangeLog.1
ChangeLog.2
ChangeLog.3
ChangeLog.4
ChangeLog.5
ChangeLog.6
ChangeLog.7
ChangeLog.8
ChangeLog.9
ChangeLog.10
ChangeLog.11
ChangeLog.12
ChangeLog.13
ChangeLog.14
ChangeLog.15
ChangeLog.16
ChangeLog.17
config.h.in
config.make.in
configure
configure.in
CONFORMANCE
COPYING
COPYING.LIB
cppflags-iterator.mk
extra-lib.mk
extra-modules.mk
INSTALL
libc-abis
LICENSES
Makeconfig
Makefile
Makefile.in
Makerules
NAMESPACE
NEWS Initialize wide struct info. 2013-05-24 08:34:10 +02:00
o-iterator.mk
PROJECTS
README
Rules
shlib-versions
test-skeleton.c
version.h
Versions.def
WUR-REPORT

This directory contains the sources of the GNU C Library.
See the file "version.h" for what release version you have.

The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system.  It provides the
system API for all programs written in C and C-compatible languages such
as C++ and Objective C; the runtime facilities of other programming
languages use the C library to access the underlying operating system.

In GNU/Linux systems, the C library works with the Linux kernel to
implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.

The GNU C Library implements much of the POSIX.1 functionality in the
GNU/Hurd system, using configurations i[4567]86-*-gnu.  The current
GNU/Hurd support requires out-of-tree patches that will eventually be
incorporated into an official GNU C Library release.

When working with Linux kernels, this version of the GNU C Library
requires Linux kernel version 2.6.16 or later.

Also note that the shared version of the libgcc_s library must be
installed for the pthread library to work correctly.

The GNU C Library supports these configurations for using Linux kernels:

	i[4567]86-*-linux-gnu
	x86_64-*-linux-gnu	Can build either x86_64 or x32
	powerpc-*-linux-gnu	Hardware floating point required
	powerpc64-*-linux-gnu
	s390-*-linux-gnu
	s390x-*-linux-gnu
	sh[34]-*-linux-gnu
	sparc*-*-linux-gnu
	sparc64*-*-linux-gnu

The code for other CPU configurations supported by volunteers outside of
the core glibc maintenance effort is contained in the `ports' add-on,
located in the `ports' subdirectory of the source tree.

	aarch64*-*-linux-gnu
	alpha*-*-linux-gnu
	am33*-*-linux-gnu	Not currently functional
	arm-*-linux-gnueabi
	hppa-*-linux-gnu	Not currently functional without patches.
	ia64-*-linux-gnu
	m68k-*-linux-gnu
	mips-*-linux-gnu
	mips64-*-linux-gnu
	powerpc-*-linux-gnu	Software floating point (--without-fp)
	tilegx-*-linux-gnu
	tilepro-*-linux-gnu

If you are interested in doing a port, please contact the glibc
maintainers; see http://www.gnu.org/software/libc/ for more
information.

See the file INSTALL to find out how to configure, build, and install
the GNU C Library.  You might also consider reading the WWW pages for
the C library at http://www.gnu.org/software/libc/.

The GNU C Library is (almost) completely documented by the Texinfo manual
found in the `manual/' subdirectory.  The manual is still being updated
and contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like.  For
corrections to the manual, please file a bug in the `manual' component,
following the bug-reporting instructions below.  Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.

Please see http://www.gnu.org/software/libc/bugs.html for bug reporting
information.  We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.

The GNU C Library is free software.  See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
these additional notices to be distributed.  License copyright years may be
listed using range notation, e.g., 2000-2013, indicating that every year in
the range, inclusive, is a copyrightable year that would otherwise be listed
individually.