Mercurial > hg > octave-nkf > gnulib-hg
changeset 8843:dd750f34c273
New module 'float'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 19 May 2007 20:21:41 +0000 |
parents | 7605663b153e |
children | 3b533f98ba19 |
files | ChangeLog doc/headers/float.texi lib/float_.h m4/float_h.m4 modules/float modules/isnanl modules/isnanl-nolibm modules/mathl modules/printf-frexpl modules/signbit modules/vasnprintf |
diffstat | 11 files changed, 140 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2007-05-19 Bruno Haible <bruno@clisp.org> + + * lib/float_.h: New file. + * m4/float_h.m4: New file. + * modules/float: New file. + * modules/isnanl (Dependencies): Add float. + * modules/isnanl-nolibm (Dependencies): Likewise. + * modules/mathl (Dependencies): Likewise. + * modules/printf-frexpl (Dependencies): Likewise. + * modules/signbit (Dependencies): Likewise. + * modules/vasnprintf (Dependencies): Likewise. + * doc/headers/float.texi: Update. + 2007-05-19 Jim Meyering <jim@meyering.net> * lib/utimens.c (gl_futimens): Rename from futimens,
--- a/doc/headers/float.texi +++ b/doc/headers/float.texi @@ -3,10 +3,14 @@ POSIX specification: @url{http://www.opengroup.org/susv3xbd/float.h.html} -Gnulib module: --- +Gnulib module: float Portability problems fixed by Gnulib: @itemize +@item +The values of @code{LDBL_*} macros are incorrect on some platforms: +On BeOS, they are the same as the values of the @code{DBL_*} macros, although +@samp{long double} is a larger type than @samp{double}. @end itemize Portability problems not fixed by Gnulib:
new file mode 100644 --- /dev/null +++ b/lib/float_.h @@ -0,0 +1,59 @@ +/* A correct <float.h>. + + Copyright (C) 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_FLOAT_H +#define _GL_FLOAT_H + +#if @HAVE_INCLUDE_NEXT@ +# include_next <float.h> +#else +# include @ABSOLUTE_FLOAT_H@ +#endif + +/* 'long double' properties. */ +#if defined __i386__ && defined __BEOS__ +/* Number of mantissa units, in base FLT_RADIX. */ +# undef LDBL_MANT_DIG +# define LDBL_MANT_DIG 64 +/* Number of decimal digits that sufficient for representing a number. */ +# undef LDBL_DIG +# define LDBL_DIG 18 +/* x-1 where x is the smallest representable number > 1. */ +# undef LDBL_EPSILON +# define LDBL_EPSILON 1.0842021724855044340E-19L +/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ +# undef LDBL_MAX_EXP +# define LDBL_MAX_EXP 16384 +/* Minimum positive normalized number. */ +# undef LDBL_MIN +# define LDBL_MIN 3.3621031431120935063E-4932L +/* Maximum representable finite number. */ +# undef LDBL_MAX +# define LDBL_MAX 1.1897314953572317650E+4932L +/* Minimum e such that 10^e is in the range of normalized numbers. */ +# undef LDBL_MIN_10_EXP +# define LDBL_MIN_10_EXP (-4931) +/* Maximum e such that 10^e is in the range of representable finite numbers. */ +# undef LDBL_MAX_10_EXP +# define LDBL_MAX_10_EXP 4932 +#endif + +#endif /* _GL_FLOAT_H */
new file mode 100644 --- /dev/null +++ b/m4/float_h.m4 @@ -0,0 +1,21 @@ +# float_h.m4 serial 1 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FLOAT_H], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + FLOAT_H= + case "$host_os" in + beos*) + FLOAT_H=float.h + gl_ABSOLUTE_HEADER([float.h]) + ABSOLUTE_FLOAT_H=\"$gl_cv_absolute_float_h\" + AC_SUBST([ABSOLUTE_FLOAT_H]) + ;; + esac + AC_SUBST([FLOAT_H]) +])
new file mode 100644 --- /dev/null +++ b/modules/float @@ -0,0 +1,36 @@ +Description: +A correct <float.h>. + +Files: +lib/float_.h +m4/float_h.m4 + +Depends-on: +absolute-header + +configure.ac: +gl_FLOAT_H + +Makefile.am: +BUILT_SOURCES += $(FLOAT_H) + +# We need the following in order to create <float.h> when the system +# doesn't have one that works with the given compiler. +float.h: float_.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''ABSOLUTE_FLOAT_H''@|$(ABSOLUTE_FLOAT_H)|g' \ + -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \ + < $(srcdir)/float_.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += float.h float.h-t + +Include: +<float.h> + +License: +LGPL + +Maintainer: +all
--- a/modules/isnanl +++ b/modules/isnanl @@ -9,6 +9,7 @@ m4/isnanl.m4 Depends-on: +float fpieee configure.ac:
--- a/modules/isnanl-nolibm +++ b/modules/isnanl-nolibm @@ -9,6 +9,7 @@ m4/isnanl.m4 Depends-on: +float fpieee configure.ac:
--- a/modules/mathl +++ b/modules/mathl @@ -19,6 +19,7 @@ m4/mathl.m4 Depends-on: +float math frexpl isnanl
--- a/modules/printf-frexpl +++ b/modules/printf-frexpl @@ -11,6 +11,7 @@ m4/ldexpl.m4 Depends-on: +float math fpucw