diff options
author | martynas <> | 2008-09-07 20:36:10 +0000 |
---|---|---|
committer | martynas <> | 2008-09-07 20:36:10 +0000 |
commit | fe4b8d40f2a6b20c26c7ef61d14dd8cd5582a6ed (patch) | |
tree | 8b94bbd0fbccd3b996e0c26a613b6a38022f03a7 /src/lib/libc/stdlib/strtof.c | |
parent | f7077f2415e37a53ccd37311ae6190e7238fe3e7 (diff) | |
download | openbsd-fe4b8d40f2a6b20c26c7ef61d14dd8cd5582a6ed.tar.gz openbsd-fe4b8d40f2a6b20c26c7ef61d14dd8cd5582a6ed.tar.bz2 openbsd-fe4b8d40f2a6b20c26c7ef61d14dd8cd5582a6ed.zip |
- replace dtoa w/ David's gdtoa, version 2008-03-15
- provide proper dtoa locks
- use the real strtof implementation
- add strtold, __hdtoa, __hldtoa
- add %a/%A support
- don't lose precision in printf, don't round to double anymore
- implement extended-precision versions of libc functions: fpclassify,
isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is
fixed
- separate vax versions of strtof, and __hdtoa
- add complex math support. added functions: cacos, casin, catan,
ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp,
clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf,
casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf,
ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf,
cimagf, conjf, cprojf, crealf
- add fdim, fmax, fmin
- add log2. (adapted implementation e_log.c. could be more acruate
& faster, but it's good enough for now)
- remove wrappers & cruft in libm, supposed to work-around mistakes
in SVID, etc.; use ieee versions. fixes issues in python 2.6 for
djm@
- make _digittoint static
- proper definitions for i386, and amd64 in ieee.h
- sh, powerpc don't really have extended-precision
- add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h
for LDBL_*
- merge lead to frac for m{6,8}k, for gdtoa to work properly
- add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa
to use
- add EXT_IMPLICIT_NBIT definition, which indicates implicit
normalization bit
- add regression tests for libc: fpclassify and printf
- arith.h & gd_qnan.h definitions
- update ieee.h: hppa doesn't have quad-precision, hppa64 does
- add missing prototypes to gdtoaimp
- on 64-bit platforms make sure gdtoa doesn't use a long when it
really wants an int
- etc., what i may have forgotten...
- bump libm major, due to removed&changed symbols
- no libc bump, since this is riding on djm's libc major crank from
a day ago
discussed with / requested by / testing theo, sthen@, djm@, jsg@,
merdely@, jsing@, tedu@, brad@, jakemsr@, and others.
looks good to millert@
parts of the diff ok kettenis@
this commit does not include:
- man page changes
Diffstat (limited to 'src/lib/libc/stdlib/strtof.c')
-rw-r--r-- | src/lib/libc/stdlib/strtof.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/src/lib/libc/stdlib/strtof.c b/src/lib/libc/stdlib/strtof.c deleted file mode 100644 index 8c8db47ad8..0000000000 --- a/src/lib/libc/stdlib/strtof.c +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | /* $OpenBSD: strtof.c,v 1.1 2008/06/13 21:04:24 landry Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2008 Landry Breuil | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Permission to use, copy, modify, and distribute this software for any | ||
8 | * purpose with or without fee is hereby granted, provided that the above | ||
9 | * copyright notice and this permission notice appear in all copies. | ||
10 | * | ||
11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
15 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
16 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
17 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
18 | */ | ||
19 | |||
20 | #include <errno.h> | ||
21 | #include <limits.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <math.h> | ||
24 | |||
25 | float | ||
26 | strtof(const char *s00, char **se) | ||
27 | { | ||
28 | double d; | ||
29 | |||
30 | d = strtod(s00, se); | ||
31 | if (d > FLT_MAX) { | ||
32 | errno = ERANGE; | ||
33 | return (FLT_MAX); | ||
34 | } else if (d < -FLT_MAX) { | ||
35 | errno = ERANGE; | ||
36 | return (-FLT_MAX); | ||
37 | } | ||
38 | return ((float) d); | ||
39 | } | ||