xref: /PHP-8.1/Zend/zend_strtod.h (revision d28f6e69)
1 /*
2    +----------------------------------------------------------------------+
3    | Zend Engine                                                          |
4    +----------------------------------------------------------------------+
5    | Copyright (c) Zend Technologies Ltd. (http://www.zend.com)           |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 2.00 of the Zend license,     |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.zend.com/license/2_00.txt.                                |
11    | If you did not receive a copy of the Zend license and are unable to  |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@zend.com so we can mail you a copy immediately.              |
14    +----------------------------------------------------------------------+
15    | Authors: Derick Rethans <derick@php.net>                             |
16    +----------------------------------------------------------------------+
17 */
18 
19 /* This is a header file for the strtod implementation by David M. Gay which
20  * can be found in zend_strtod.c */
21 #ifndef ZEND_STRTOD_H
22 #define ZEND_STRTOD_H
23 #include <zend.h>
24 
25 BEGIN_EXTERN_C()
26 ZEND_API void zend_freedtoa(char *s);
27 ZEND_API char *zend_dtoa(double _d, int mode, int ndigits, int *decpt, bool *sign, char **rve);
28 ZEND_API char *zend_gcvt(double value, int ndigit, char dec_point, char exponent, char *buf);
29 ZEND_API double zend_strtod(const char *s00, const char **se);
30 ZEND_API double zend_hex_strtod(const char *str, const char **endptr);
31 ZEND_API double zend_oct_strtod(const char *str, const char **endptr);
32 ZEND_API double zend_bin_strtod(const char *str, const char **endptr);
33 ZEND_API int zend_startup_strtod(void);
34 ZEND_API int zend_shutdown_strtod(void);
35 END_EXTERN_C()
36 
37 /* double limits */
38 #include <float.h>
39 #if defined(DBL_MANT_DIG) && defined(DBL_MIN_EXP)
40 #define ZEND_DOUBLE_MAX_LENGTH (3 + DBL_MANT_DIG - DBL_MIN_EXP)
41 #else
42 #define ZEND_DOUBLE_MAX_LENGTH 1080
43 #endif
44 
45 #endif
46