annotate lib/printf-frexpl.h @ 11583:dc80f2cc1327

Second attempt to work around an AIX 5.3, 6.1 compiler bug with include_next.
author Eric Blake <ebb9@byu.net>
date Thu, 21 May 2009 16:48:12 +0200
parents bec01fc15c2f
children b5e42ef33b49
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8242
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2 Copyright (C) 2007 Free Software Foundation, Inc.
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8242
diff changeset
4 This program is free software: you can redistribute it and/or modify
8242
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8242
diff changeset
6 the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8242
diff changeset
7 (at your option) any later version.
8242
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 GNU General Public License for more details.
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8242
diff changeset
14 You should have received a copy of the GNU General Public License
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 8242
diff changeset
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
8242
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 /* Write a finite, positive number x as
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18 x = mantissa * 2^exp
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 where exp >= LDBL_MIN_EXP - 1,
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 mantissa < 2.0,
eea9fb26d6bf New module 'printf-frexpl'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 if x is not a denormalized number then mantissa >= 1.0.
9312
bec01fc15c2f Rename parameter 'exp' to 'expptr', to avoid gcc warnings.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
22 Store exp in *EXPPTR and return mantissa. */
bec01fc15c2f Rename parameter 'exp' to 'expptr', to avoid gcc warnings.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
23 extern long double printf_frexpl (long double x, int *expptr);