New module 'printf-frexpl'.
authorBruno Haible <bruno@clisp.org>
Sun, 25 Feb 2007 14:28:50 +0000 (14:28 +0000)
committerBruno Haible <bruno@clisp.org>
Sun, 25 Feb 2007 14:28:50 +0000 (14:28 +0000)
ChangeLog
lib/printf-frexpl.c [new file with mode: 0644]
lib/printf-frexpl.h [new file with mode: 0644]
modules/printf-frexpl [new file with mode: 0644]

index 4d54ce5..67cc448 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2007-02-25  Bruno Haible  <bruno@clisp.org>
 
+       * modules/printf-frexpl: New file.
+       * lib/printf-frexpl.h: New file.
+       * lib/printf-frexpl.c: New file.
+       * m4/printf-frexpl.m4: New file.
+
+2007-02-25  Bruno Haible  <bruno@clisp.org>
+
        * modules/printf-frexp-tests: New file.
        * tests/test-printf-frexp.c: New file.
 
diff --git a/lib/printf-frexpl.c b/lib/printf-frexpl.c
new file mode 100644 (file)
index 0000000..d9a9283
--- /dev/null
@@ -0,0 +1,19 @@
+/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
+   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.  */
+
+#define USE_LONG_DOUBLE
+#include "printf-frexp.c"
diff --git a/lib/printf-frexpl.h b/lib/printf-frexpl.h
new file mode 100644 (file)
index 0000000..cf49689
--- /dev/null
@@ -0,0 +1,24 @@
+/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
+   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.  */
+
+/* Write a finite, positive number x as
+     x = mantissa * 2^exp
+   where exp >= LDBL_MIN_EXP - 1,
+         mantissa < 2.0,
+         if x is not a denormalized number then mantissa >= 1.0.
+   Store exp and return mantissa.  */
+extern long double printf_frexpl (long double x, int *exp);
diff --git a/modules/printf-frexpl b/modules/printf-frexpl
new file mode 100644 (file)
index 0000000..e2bfe1b
--- /dev/null
@@ -0,0 +1,31 @@
+Description:
+printf_frexpl() function: split a long double into fraction and mantissa,
+for hexadecimal printf, without requiring libm.
+
+Files:
+lib/printf-frexpl.h
+lib/printf-frexpl.c
+lib/printf-frexp.c
+m4/printf-frexpl.m4
+m4/longdouble.m4
+
+Depends-on:
+verify
+
+configure.ac:
+gl_FUNC_PRINTF_FREXPL
+
+Makefile.am:
+lib_SOURCES += printf-frexpl.c
+
+Include:
+#if HAVE_LONG_DOUBLE
+# include "printf-frexpl.h"
+#endif
+
+License:
+LGPL
+
+Maintainer:
+Bruno Haible
+