1*95e1ffb1Schristos /* $NetBSD: float.h,v 1.10 2005/12/11 12:19:34 christos Exp $ */ 2d62187c0Scgd 38026fb53Sragge /* 48026fb53Sragge * Copyright (c) 1989 Regents of the University of California. 58026fb53Sragge * All rights reserved. 68026fb53Sragge * 78026fb53Sragge * Redistribution and use in source and binary forms, with or without 88026fb53Sragge * modification, are permitted provided that the following conditions 98026fb53Sragge * are met: 108026fb53Sragge * 1. Redistributions of source code must retain the above copyright 118026fb53Sragge * notice, this list of conditions and the following disclaimer. 128026fb53Sragge * 2. Redistributions in binary form must reproduce the above copyright 138026fb53Sragge * notice, this list of conditions and the following disclaimer in the 148026fb53Sragge * documentation and/or other materials provided with the distribution. 15aad01611Sagc * 3. Neither the name of the University nor the names of its contributors 168026fb53Sragge * may be used to endorse or promote products derived from this software 178026fb53Sragge * without specific prior written permission. 188026fb53Sragge * 198026fb53Sragge * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 208026fb53Sragge * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 218026fb53Sragge * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 228026fb53Sragge * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 238026fb53Sragge * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 248026fb53Sragge * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 258026fb53Sragge * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 268026fb53Sragge * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 278026fb53Sragge * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 288026fb53Sragge * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 298026fb53Sragge * SUCH DAMAGE. 308026fb53Sragge * 31d62187c0Scgd * @(#)float.h 7.2 (Berkeley) 6/28/90 328026fb53Sragge */ 338026fb53Sragge 34f0a5dd43Smycroft #ifndef _VAX_FLOAT_H_ 35f0a5dd43Smycroft #define _VAX_FLOAT_H_ 36f0a5dd43Smycroft 375a44ed37Skleink #include <sys/cdefs.h> 385a44ed37Skleink #include <sys/featuretest.h> 395a44ed37Skleink 408026fb53Sragge #define FLT_RADIX 2 /* b */ 418026fb53Sragge #define FLT_ROUNDS 1 /* FP addition rounds to nearest */ 428026fb53Sragge 435a44ed37Skleink #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \ 445a44ed37Skleink !defined(_XOPEN_SOURCE) || \ 455a44ed37Skleink ((__STDC_VERSION__ - 0) >= 199901L) || \ 465a44ed37Skleink ((_POSIX_C_SOURCE - 0) >= 200112L) || \ 475a44ed37Skleink ((_XOPEN_SOURCE - 0) >= 600) || \ 485a44ed37Skleink defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE) 495a44ed37Skleink #if __GNUC_PREREQ__(3, 3) 505a44ed37Skleink #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ 515a44ed37Skleink #else 525a44ed37Skleink #define FLT_EVAL_METHOD 0 /* evaluate all operations and 535a44ed37Skleink constants just to the range and 545a44ed37Skleink precision of the type */ 555a44ed37Skleink #endif /* GCC >= 3.3 */ 565a44ed37Skleink #endif /* !defined(_ANSI_SOURCE) && ... */ 575a44ed37Skleink 588026fb53Sragge #define FLT_MANT_DIG 24 /* p */ 59f0a5dd43Smycroft #define FLT_EPSILON 1.19209290E-7F /* b**(1-p) */ 608026fb53Sragge #define FLT_DIG 6 /* floor((p-1)*log10(b))+(b == 10) */ 61f0a5dd43Smycroft #define FLT_MIN_EXP (-127) /* emin */ 628026fb53Sragge #define FLT_MIN 2.93873588E-39F /* b**(emin-1) */ 63f0a5dd43Smycroft #define FLT_MIN_10_EXP (-38) /* ceil(log10(b**(emin-1))) */ 648026fb53Sragge #define FLT_MAX_EXP 127 /* emax */ 658026fb53Sragge #define FLT_MAX 1.70141173E+38F /* (1-b**(-p))*b**emax */ 668026fb53Sragge #define FLT_MAX_10_EXP 38 /* floor(log10((1-b**(-p))*b**emax)) */ 678026fb53Sragge 688026fb53Sragge #define DBL_MANT_DIG 56 69f0a5dd43Smycroft #define DBL_EPSILON 2.77555756156289135E-17 708026fb53Sragge #define DBL_DIG 16 71f0a5dd43Smycroft #define DBL_MIN_EXP (-127) 721163f713Smatt #define DBL_MIN 2.938735877055718770E-39 73f0a5dd43Smycroft #define DBL_MIN_10_EXP (-38) 748026fb53Sragge #define DBL_MAX_EXP 127 751163f713Smatt #define DBL_MAX 1.701411834604692294E+38 768026fb53Sragge #define DBL_MAX_10_EXP 38 778026fb53Sragge 788026fb53Sragge #define LDBL_MANT_DIG DBL_MANT_DIG 798026fb53Sragge #define LDBL_EPSILON DBL_EPSILON 808026fb53Sragge #define LDBL_DIG DBL_DIG 818026fb53Sragge #define LDBL_MIN_EXP DBL_MIN_EXP 828026fb53Sragge #define LDBL_MIN DBL_MIN 838026fb53Sragge #define LDBL_MIN_10_EXP DBL_MIN_10_EXP 848026fb53Sragge #define LDBL_MAX_EXP DBL_MAX_EXP 858026fb53Sragge #define LDBL_MAX DBL_MAX 868026fb53Sragge #define LDBL_MAX_10_EXP DBL_MAX_10_EXP 87f0a5dd43Smycroft 88c9432c83Skleink #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \ 89c9432c83Skleink !defined(_XOPEN_SOURCE) || \ 90c9432c83Skleink ((__STDC_VERSION__ - 0) >= 199901L) || \ 91c9432c83Skleink ((_POSIX_C_SOURCE - 0) >= 200112L) || \ 92c9432c83Skleink ((_XOPEN_SOURCE - 0) >= 600) || \ 93c9432c83Skleink defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE) 947caede41Skleink #define DECIMAL_DIG 18 /* ceil((1+p*log10(b))-(b==10) */ 95c9432c83Skleink #endif 96f0a5dd43Smycroft #endif /* _VAX_FLOAT_H_ */ 97