xref: /netbsd-src/sys/arch/vax/include/float.h (revision 95e1ffb15694e54f29f8baaa4232152b703c2a5a)
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