25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER START
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * The contents of this file are subject to the terms of the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Common Development and Distribution License (the "License").
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You may not use this file except in compliance with the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * or http://www.opensolaris.org/os/licensing.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * See the License for the specific language governing permissions
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * and limitations under the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER END
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Use is subject to license terms.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#ifndef _C_LIBM_PROTOS_H
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _C_LIBM_PROTOS_H
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe/*
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe * Many symbols used to be namespaced with __libm to prevent collisions. All
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe * but these two were otherwise scoped local and directly bound, so that
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe * collision could not occur.
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe *
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe * For reasons unknown, these two are global (but private).
1ec68d336ba97cd53f46053ac10401d16014d075Richard Lowe */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define __rem_pio2 __libm__rem_pio2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define __rem_pio2m __libm__rem_pio2m
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#ifndef _ASM
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#ifdef __STDC__
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define __P(p) p
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#else
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define __P(p) ()
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#endif
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#include <sys/ieeefp.h>
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double _SVID_libm_err __P((double, double, int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_cos __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_cos_ __P((double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_lgamma __P((double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_sin __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_sin_ __P((double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_sincos __P((double, double, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_sincos_ __P((double *, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_tan __P((double, double, int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_cexp __P((double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double __k_cexpl __P((long double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_clog_r __P((double, double, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double __k_clog_rl __P((long double, long double, long double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double __k_atan2 __P((double, double, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double __k_atan2l __P((long double, long double, long double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern int __rem_pio2 __P((double, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern int __rem_pio2m __P((double *, double *, int, int, int, const int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * entry points that are in-lined
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double copysign __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern int finite __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern enum fp_class_type fp_class __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double infinity __P((void));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern int isinf __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern int signbit __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * new C99 entry points
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double fdim __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double fma __P((double, double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double fmax __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double fmin __P((double, double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double frexp __P((double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double ldexp __P((double, int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double modf __P((double, double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double nan __P((const char *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double nearbyint __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double nexttoward __P((double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double remquo __P((double, double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double round __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double scalbln __P((double, long int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double tgamma __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern double trunc __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float fdimf __P((float, float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float fmaf __P((float, float, float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float fmaxf __P((float, float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float fminf __P((float, float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float frexpf __P((float, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float ldexpf __P((float, int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float modff __P((float, float *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float nanf __P((const char *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float nearbyintf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float nextafterf __P((float, float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float nexttowardf __P((float, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float remquof __P((float, float, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float roundf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float scalblnf __P((float, long int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float tgammaf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern float truncf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double frexpl(long double, int *);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double fdiml __P((long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double fmal __P((long double, long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double fmaxl __P((long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double fminl __P((long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double ldexpl __P((long double, int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double modfl __P((long double, long double *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double nanl __P((const char *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double nearbyintl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double nextafterl __P((long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double nexttowardl __P((long double, long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double remquol __P((long double, long double, int *));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double roundl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double scalblnl __P((long double, long int));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double tgammal __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long double truncl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lrint __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lrintf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lrintl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lround __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lroundf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long int lroundl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llrint __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llrintf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llrintl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llround __P((double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llroundf __P((float));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtisextern long long int llroundl __P((long double));
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#endif /* _ASM */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#endif /* _C_LIBM_PROTOS_H */