/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _ISO_MATH_C99_H
#define _ISO_MATH_C99_H
#include <sys/isa_defs.h>
#include <sys/feature_tests.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __P
#ifdef __STDC__
#define __P(p) p
#else
#define __P(p) ()
#endif
#endif /* !defined(__P) */
#if defined(__GNUC__)
/*
* C99 7.12.3 classification macros
*/
#if __GNUC__ >= 4
#else
#endif
(sizeof (__x_r) == sizeof (float) ? \
sizeof (__x_r) == sizeof (double) ? \
FP_SUBNORMAL; })
#if defined(_BIG_ENDIAN)
(int) (*(unsigned *) &__x_s >> 31); })
#elif defined(_LITTLE_ENDIAN)
(sizeof (__x_s) == sizeof (float) ? \
(int) (*(unsigned *) &__x_s >> 31) : \
sizeof (__x_s) == sizeof (double) ? \
#endif
/*
* C99 7.12.14 comparison macros
*/
#else /* defined(__GNUC__) */
/*
* C99 7.12.3 classification macros
*/
/*
* C99 7.12.14 comparison macros
*/
#endif /* defined(__GNUC__) */
#endif /* defined(_STDC_C99) || _XOPEN_SOURCE - 0 >= 600 || ... */
#if defined(__EXTENSIONS__) || defined(_STDC_C99) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
defined(__C99FEATURES__)
#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ - 0 == 0
typedef float float_t;
typedef double double_t;
typedef double float_t;
typedef double double_t;
typedef long double float_t;
typedef long double double_t;
typedef float float_t;
typedef double double_t;
typedef long double float_t;
typedef long double double_t;
#endif
#define FP_ZERO 0
extern double nexttoward __P((double, long double));
extern float nearbyintf __P((float));
extern float remainderf __P((float, float));
extern float nextafterf __P((float, float));
extern float nexttowardf __P((float, long double));
extern long double nearbyintl __P((long double));
extern long double remainderl __P((long double, long double));
extern long double nextafterl __P((long double, long double));
extern long double nexttowardl __P((long double, long double));
defined(__C99FEATURES__)
#endif
#if !defined(__cplusplus)
#pragma does_not_read_global_data(remquo)
defined(__C99FEATURES__)
#endif
#endif /* !defined(__cplusplus) */
#if defined(__MATHERR_ERRNO_DONTCARE)
#pragma no_side_effect(remainder)
defined(__C99FEATURES__)
#endif
#endif /* defined(__MATHERR_ERRNO_DONTCARE) */
#endif /* defined(__EXTENSIONS__) || defined(_STDC_C99) || ... */
#ifdef __cplusplus
}
#endif
#endif /* _ISO_MATH_C99_H */