1*f24071e5Spatrick /* $OpenBSD: _float.h,v 1.1 2016/12/17 23:38:33 patrick Exp $ */ 2*f24071e5Spatrick 3*f24071e5Spatrick /* 4*f24071e5Spatrick * Copyright (c) 1992, 1993 5*f24071e5Spatrick * The Regents of the University of California. All rights reserved. 6*f24071e5Spatrick * 7*f24071e5Spatrick * This software was developed by the Computer Systems Engineering group 8*f24071e5Spatrick * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 9*f24071e5Spatrick * contributed to Berkeley. 10*f24071e5Spatrick * 11*f24071e5Spatrick * All advertising materials mentioning features or use of this software 12*f24071e5Spatrick * must display the following acknowledgement: 13*f24071e5Spatrick * This product includes software developed by the University of 14*f24071e5Spatrick * California, Lawrence Berkeley Laboratory. 15*f24071e5Spatrick * 16*f24071e5Spatrick * Redistribution and use in source and binary forms, with or without 17*f24071e5Spatrick * modification, are permitted provided that the following conditions 18*f24071e5Spatrick * are met: 19*f24071e5Spatrick * 1. Redistributions of source code must retain the above copyright 20*f24071e5Spatrick * notice, this list of conditions and the following disclaimer. 21*f24071e5Spatrick * 2. Redistributions in binary form must reproduce the above copyright 22*f24071e5Spatrick * notice, this list of conditions and the following disclaimer in the 23*f24071e5Spatrick * documentation and/or other materials provided with the distribution. 24*f24071e5Spatrick * 3. All advertising materials mentioning features or use of this software 25*f24071e5Spatrick * must display the following acknowledgement: 26*f24071e5Spatrick * This product includes software developed by the University of 27*f24071e5Spatrick * California, Berkeley and its contributors. 28*f24071e5Spatrick * 4. Neither the name of the University nor the names of its contributors 29*f24071e5Spatrick * may be used to endorse or promote products derived from this software 30*f24071e5Spatrick * without specific prior written permission. 31*f24071e5Spatrick * 32*f24071e5Spatrick * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 33*f24071e5Spatrick * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 34*f24071e5Spatrick * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35*f24071e5Spatrick * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 36*f24071e5Spatrick * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37*f24071e5Spatrick * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38*f24071e5Spatrick * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39*f24071e5Spatrick * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40*f24071e5Spatrick * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 41*f24071e5Spatrick * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 42*f24071e5Spatrick * SUCH DAMAGE. 43*f24071e5Spatrick */ 44*f24071e5Spatrick 45*f24071e5Spatrick #ifndef _MACHINE__FLOAT_H_ 46*f24071e5Spatrick #define _MACHINE__FLOAT_H_ 47*f24071e5Spatrick 48*f24071e5Spatrick #define __FLT_RADIX 2 /* b */ 49*f24071e5Spatrick #define __FLT_ROUNDS __flt_rounds() 50*f24071e5Spatrick #define __FLT_EVAL_METHOD 0 /* no promotions */ 51*f24071e5Spatrick 52*f24071e5Spatrick #define __FLT_MANT_DIG 24 /* p */ 53*f24071e5Spatrick #define __FLT_EPSILON 1.19209290E-7F /* b**(1-p) */ 54*f24071e5Spatrick #define __FLT_DIG 6 /* floor((p-1)*log10(b))+(b == 10) */ 55*f24071e5Spatrick #define __FLT_MIN_EXP (-125) /* emin */ 56*f24071e5Spatrick #define __FLT_MIN 1.17549435E-38F /* b**(emin-1) */ 57*f24071e5Spatrick #define __FLT_MIN_10_EXP (-37) /* ceil(log10(b**(emin-1))) */ 58*f24071e5Spatrick #define __FLT_MAX_EXP 128 /* emax */ 59*f24071e5Spatrick #define __FLT_MAX 3.40282347E+38F /* (1-b**(-p))*b**emax */ 60*f24071e5Spatrick #define __FLT_MAX_10_EXP 38 /* floor(log10((1-b**(-p))*b**emax)) */ 61*f24071e5Spatrick 62*f24071e5Spatrick #define __DBL_MANT_DIG 53 63*f24071e5Spatrick #define __DBL_EPSILON 2.2204460492503131E-16 64*f24071e5Spatrick #define __DBL_DIG 15 65*f24071e5Spatrick #define __DBL_MIN_EXP (-1021) 66*f24071e5Spatrick #define __DBL_MIN 2.2250738585072014E-308 67*f24071e5Spatrick #define __DBL_MIN_10_EXP (-307) 68*f24071e5Spatrick #define __DBL_MAX_EXP 1024 69*f24071e5Spatrick #define __DBL_MAX 1.7976931348623157E+308 70*f24071e5Spatrick #define __DBL_MAX_10_EXP 308 71*f24071e5Spatrick 72*f24071e5Spatrick #ifdef __LDBL_MANT_DIG__ 73*f24071e5Spatrick #define __LDBL_MANT_DIG __LDBL_MANT_DIG__ 74*f24071e5Spatrick #define __LDBL_EPSILON __LDBL_EPSILON__ 75*f24071e5Spatrick #define __LDBL_DIG __LDBL_DIG__ 76*f24071e5Spatrick #define __LDBL_MIN_EXP __LDBL_MIN_EXP__ 77*f24071e5Spatrick #define __LDBL_MIN __LDBL_MIN__ 78*f24071e5Spatrick #define __LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ 79*f24071e5Spatrick #define __LDBL_MAX_EXP __LDBL_MAX_EXP__ 80*f24071e5Spatrick #define __LDBL_MAX __LDBL_MAX__ 81*f24071e5Spatrick #define __LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ 82*f24071e5Spatrick #else 83*f24071e5Spatrick #define __LDBL_MANT_DIG DBL_MANT_DIG 84*f24071e5Spatrick #define __LDBL_EPSILON DBL_EPSILON 85*f24071e5Spatrick #define __LDBL_DIG DBL_DIG 86*f24071e5Spatrick #define __LDBL_MIN_EXP DBL_MIN_EXP 87*f24071e5Spatrick #define __LDBL_MIN DBL_MIN 88*f24071e5Spatrick #define __LDBL_MIN_10_EXP DBL_MIN_10_EXP 89*f24071e5Spatrick #define __LDBL_MAX_EXP DBL_MAX_EXP 90*f24071e5Spatrick #define __LDBL_MAX DBL_MAX 91*f24071e5Spatrick #define __LDBL_MAX_10_EXP DBL_MAX_10_EXP 92*f24071e5Spatrick #endif 93*f24071e5Spatrick 94*f24071e5Spatrick #define __DECIMAL_DIG 17 95*f24071e5Spatrick 96*f24071e5Spatrick #endif /* _MACHINE__FLOAT_H_ */ 97