float.h revision 139731
1172940Sjhb/*- 2172940Sjhb * Copyright (c) 1989 Regents of the University of California. 3172940Sjhb * All rights reserved. 4172940Sjhb * 5172940Sjhb * Redistribution and use in source and binary forms, with or without 6172940Sjhb * modification, are permitted provided that the following conditions 7172940Sjhb * are met: 8172940Sjhb * 1. Redistributions of source code must retain the above copyright 9172940Sjhb * notice, this list of conditions and the following disclaimer. 10172940Sjhb * 2. Redistributions in binary form must reproduce the above copyright 11172940Sjhb * notice, this list of conditions and the following disclaimer in the 12172940Sjhb * documentation and/or other materials provided with the distribution. 13172940Sjhb * 4. Neither the name of the University nor the names of its contributors 14172940Sjhb * may be used to endorse or promote products derived from this software 15172940Sjhb * without specific prior written permission. 16172940Sjhb * 17172940Sjhb * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18172940Sjhb * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19172940Sjhb * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20172940Sjhb * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21172940Sjhb * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22172940Sjhb * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23172940Sjhb * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24172940Sjhb * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25172940Sjhb * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26172940Sjhb * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27172940Sjhb * SUCH DAMAGE. 28172940Sjhb * 29172940Sjhb * from: @(#)float.h 7.1 (Berkeley) 5/8/90 30172940Sjhb * $FreeBSD: head/sys/amd64/include/float.h 139731 2005-01-05 20:17:21Z imp $ 31173957Sjhb */ 32173957Sjhb 33172940Sjhb#ifndef _MACHINE_FLOAT_H_ 34172940Sjhb#define _MACHINE_FLOAT_H_ 1 35172940Sjhb 36172940Sjhb#include <sys/cdefs.h> 37172940Sjhb 38172940Sjhb__BEGIN_DECLS 39172940Sjhbextern int __flt_rounds(void); 40172940Sjhb__END_DECLS 41172940Sjhb 42172940Sjhb#define FLT_RADIX 2 /* b */ 43172940Sjhb#define FLT_ROUNDS __flt_rounds() 44172940Sjhb#if __ISO_C_VISIBLE >= 1999 45239060Sae#define FLT_EVAL_METHOD (-1) /* i387 semantics are...interesting */ 46239060Sae#define DECIMAL_DIG 21 /* max precision in decimal digits */ 47172940Sjhb#endif 48172940Sjhb 49172940Sjhb#define FLT_MANT_DIG 24 /* p */ 50172940Sjhb#define FLT_EPSILON 1.19209290E-07F /* b**(1-p) */ 51172940Sjhb#define FLT_DIG 6 /* floor((p-1)*log10(b))+(b == 10) */ 52172940Sjhb#define FLT_MIN_EXP (-125) /* emin */ 53172940Sjhb#define FLT_MIN 1.17549435E-38F /* b**(emin-1) */ 54172940Sjhb#define FLT_MIN_10_EXP (-37) /* ceil(log10(b**(emin-1))) */ 55239060Sae#define FLT_MAX_EXP 128 /* emax */ 56239060Sae#define FLT_MAX 3.40282347E+38F /* (1-b**(-p))*b**emax */ 57172940Sjhb#define FLT_MAX_10_EXP 38 /* floor(log10((1-b**(-p))*b**emax)) */ 58172940Sjhb 59172940Sjhb#define DBL_MANT_DIG 53 60172940Sjhb#define DBL_EPSILON 2.2204460492503131E-16 61172940Sjhb#define DBL_DIG 15 62172940Sjhb#define DBL_MIN_EXP (-1021) 63172940Sjhb#define DBL_MIN 2.2250738585072014E-308 64172940Sjhb#define DBL_MIN_10_EXP (-307) 65172940Sjhb#define DBL_MAX_EXP 1024 66172940Sjhb#define DBL_MAX 1.7976931348623157E+308 67172940Sjhb#define DBL_MAX_10_EXP 308 68172940Sjhb 69172940Sjhb#define LDBL_MANT_DIG 64 70172940Sjhb#define LDBL_EPSILON 1.0842021724855044340E-19L 71172940Sjhb#define LDBL_DIG 18 72172940Sjhb#define LDBL_MIN_EXP (-16381) 73172940Sjhb#define LDBL_MIN 3.3621031431120935063E-4932L 74172940Sjhb#define LDBL_MIN_10_EXP (-4931) 75172940Sjhb#define LDBL_MAX_EXP 16384 76172940Sjhb#define LDBL_MAX 1.1897314953572317650E+4932L 77172940Sjhb#define LDBL_MAX_10_EXP 4932 78172940Sjhb#endif /* _MACHINE_FLOAT_H_ */ 79172940Sjhb