Fix style bugs (mostly remove 'extern' from function prototypes)

Inspired by: conversation with bde
This commit is contained in:
Alexey Zelkin 2001-12-13 17:22:17 +00:00
parent 4b667ee0db
commit ef1ee63e3c
2 changed files with 196 additions and 192 deletions

View File

@ -15,7 +15,7 @@
*/ */
#ifndef _MATH_H_ #ifndef _MATH_H_
#define _MATH_H_ #define _MATH_H_
/* /*
* ANSI/POSIX * ANSI/POSIX
@ -97,168 +97,167 @@ struct exception {
#include <sys/cdefs.h> #include <sys/cdefs.h>
__BEGIN_DECLS
/* /*
* ANSI/POSIX * ANSI/POSIX
*/ */
extern double acos __P((double)); __BEGIN_DECLS
extern double asin __P((double)); double acos __P((double));
extern double atan __P((double)); double asin __P((double));
extern double atan2 __P((double, double)); double atan __P((double));
extern double cos __P((double)); double atan2 __P((double, double));
extern double sin __P((double)); double cos __P((double));
extern double tan __P((double)); double sin __P((double));
double tan __P((double));
extern double cosh __P((double)); double cosh __P((double));
extern double sinh __P((double)); double sinh __P((double));
extern double tanh __P((double)); double tanh __P((double));
extern double exp __P((double)); double exp __P((double));
extern double frexp __P((double, int *)); double frexp __P((double, int *));
extern double ldexp __P((double, int)); double ldexp __P((double, int));
extern double log __P((double)); double log __P((double));
extern double log10 __P((double)); double log10 __P((double));
extern double modf __P((double, double *)); double modf __P((double, double *));
extern double pow __P((double, double)); double pow __P((double, double));
extern double sqrt __P((double)); double sqrt __P((double));
extern double ceil __P((double)); double ceil __P((double));
extern double fabs __P((double)); double fabs __P((double));
extern double floor __P((double)); double floor __P((double));
extern double fmod __P((double, double)); double fmod __P((double, double));
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
extern double erf __P((double)); double erf __P((double));
extern double erfc __P((double)); double erfc __P((double));
extern double gamma __P((double)); double gamma __P((double));
extern double hypot __P((double, double)); double hypot __P((double, double));
extern int isinf __P((double)); int isinf __P((double));
extern int isnan __P((double)); int isnan __P((double));
extern int finite __P((double)); int finite __P((double));
extern double j0 __P((double)); double j0 __P((double));
extern double j1 __P((double)); double j1 __P((double));
extern double jn __P((int, double)); double jn __P((int, double));
extern double lgamma __P((double)); double lgamma __P((double));
extern double y0 __P((double)); double y0 __P((double));
extern double y1 __P((double)); double y1 __P((double));
extern double yn __P((int, double)); double yn __P((int, double));
#if !defined(_XOPEN_SOURCE) #if !defined(_XOPEN_SOURCE)
extern double acosh __P((double)); double acosh __P((double));
extern double asinh __P((double)); double asinh __P((double));
extern double atanh __P((double)); double atanh __P((double));
extern double cbrt __P((double)); double cbrt __P((double));
extern double logb __P((double)); double logb __P((double));
extern double nextafter __P((double, double)); double nextafter __P((double, double));
extern double remainder __P((double, double)); double remainder __P((double, double));
extern double scalb __P((double, double)); double scalb __P((double, double));
#ifndef __cplusplus #ifndef __cplusplus
extern int matherr __P((struct exception *)); int matherr __P((struct exception *));
#endif #endif
/* /*
* IEEE Test Vector * IEEE Test Vector
*/ */
extern double significand __P((double)); double significand __P((double));
/* /*
* Functions callable from C, intended to support IEEE arithmetic. * Functions callable from C, intended to support IEEE arithmetic.
*/ */
extern double copysign __P((double, double)); double copysign __P((double, double));
extern int ilogb __P((double)); int ilogb __P((double));
extern double rint __P((double)); double rint __P((double));
extern double scalbn __P((double, int)); double scalbn __P((double, int));
/* /*
* BSD math library entry points * BSD math library entry points
*/ */
extern double drem __P((double, double)); double drem __P((double, double));
extern double expm1 __P((double)); double expm1 __P((double));
extern double log1p __P((double)); double log1p __P((double));
/* /*
* Reentrant version of gamma & lgamma; passes signgam back by reference * Reentrant version of gamma & lgamma; passes signgam back by reference
* as the second argument; user must allocate space for signgam. * as the second argument; user must allocate space for signgam.
*/ */
#ifdef _REENTRANT #ifdef _REENTRANT
extern double gamma_r __P((double, int *)); double gamma_r __P((double, int *));
extern double lgamma_r __P((double, int *)); double lgamma_r __P((double, int *));
#endif /* _REENTRANT */ #endif /* _REENTRANT */
/* float versions of ANSI/POSIX functions */ /* float versions of ANSI/POSIX functions */
extern float acosf __P((float)); float acosf __P((float));
extern float asinf __P((float)); float asinf __P((float));
extern float atanf __P((float)); float atanf __P((float));
extern float atan2f __P((float, float)); float atan2f __P((float, float));
extern float cosf __P((float)); float cosf __P((float));
extern float sinf __P((float)); float sinf __P((float));
extern float tanf __P((float)); float tanf __P((float));
extern float coshf __P((float)); float coshf __P((float));
extern float sinhf __P((float)); float sinhf __P((float));
extern float tanhf __P((float)); float tanhf __P((float));
extern float expf __P((float)); float expf __P((float));
extern float frexpf __P((float, int *)); float frexpf __P((float, int *));
extern float ldexpf __P((float, int)); float ldexpf __P((float, int));
extern float logf __P((float)); float logf __P((float));
extern float log10f __P((float)); float log10f __P((float));
extern float modff __P((float, float *)); float modff __P((float, float *));
extern float powf __P((float, float)); float powf __P((float, float));
extern float sqrtf __P((float)); float sqrtf __P((float));
extern float ceilf __P((float)); float ceilf __P((float));
extern float fabsf __P((float)); float fabsf __P((float));
extern float floorf __P((float)); float floorf __P((float));
extern float fmodf __P((float, float)); float fmodf __P((float, float));
extern float erff __P((float)); float erff __P((float));
extern float erfcf __P((float)); float erfcf __P((float));
extern float gammaf __P((float)); float gammaf __P((float));
extern float hypotf __P((float, float)); float hypotf __P((float, float));
extern int isnanf __P((float)); int isnanf __P((float));
extern int finitef __P((float)); int finitef __P((float));
extern float j0f __P((float)); float j0f __P((float));
extern float j1f __P((float)); float j1f __P((float));
extern float jnf __P((int, float)); float jnf __P((int, float));
extern float lgammaf __P((float)); float lgammaf __P((float));
extern float y0f __P((float)); float y0f __P((float));
extern float y1f __P((float)); float y1f __P((float));
extern float ynf __P((int, float)); float ynf __P((int, float));
extern float acoshf __P((float)); float acoshf __P((float));
extern float asinhf __P((float)); float asinhf __P((float));
extern float atanhf __P((float)); float atanhf __P((float));
extern float cbrtf __P((float)); float cbrtf __P((float));
extern float logbf __P((float)); float logbf __P((float));
extern float nextafterf __P((float, float)); float nextafterf __P((float, float));
extern float remainderf __P((float, float)); float remainderf __P((float, float));
extern float scalbf __P((float, float)); float scalbf __P((float, float));
/* /*
* float version of IEEE Test Vector * float version of IEEE Test Vector
*/ */
extern float significandf __P((float)); float significandf __P((float));
/* /*
* Float versions of functions callable from C, intended to support * Float versions of functions callable from C, intended to support
* IEEE arithmetic. * IEEE arithmetic.
*/ */
extern float copysignf __P((float, float)); float copysignf __P((float, float));
extern int ilogbf __P((float)); int ilogbf __P((float));
extern float rintf __P((float)); float rintf __P((float));
extern float scalbnf __P((float, int)); float scalbnf __P((float, int));
/* /*
* float versions of BSD math library entry points * float versions of BSD math library entry points
*/ */
extern float dremf __P((float, float)); float dremf __P((float, float));
extern float expm1f __P((float)); float expm1f __P((float));
extern float log1pf __P((float)); float log1pf __P((float));
/* /*
* Float versions of reentrant version of gamma & lgamma; passes * Float versions of reentrant version of gamma & lgamma; passes
@ -266,12 +265,12 @@ extern float log1pf __P((float));
* allocate space for signgam. * allocate space for signgam.
*/ */
#ifdef _REENTRANT #ifdef _REENTRANT
extern float gammaf_r __P((float, int *)); float gammaf_r __P((float, int *));
extern float lgammaf_r __P((float, int *)); float lgammaf_r __P((float, int *));
#endif /* _REENTRANT */ #endif /* _REENTRANT */
#endif /* !_XOPEN_SOURCE */ #endif /* !_XOPEN_SOURCE */
#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */
__END_DECLS __END_DECLS
#endif /* _MATH_H_ */ #endif /* !_MATH_H_ */

View File

@ -15,24 +15,28 @@
*/ */
#ifndef _MATH_PRIVATE_H_ #ifndef _MATH_PRIVATE_H_
#define _MATH_PRIVATE_H_ #define _MATH_PRIVATE_H_
#include <sys/types.h> #include <sys/types.h>
#include <machine/endian.h> #include <machine/endian.h>
/* The original fdlibm code used statements like: /*
n0 = ((*(int*)&one)>>29)^1; * index of high word * * The original fdlibm code used statements like:
ix0 = *(n0+(int*)&x); * high word of x * * n0 = ((*(int*)&one)>>29)^1; * index of high word *
ix1 = *((1-n0)+(int*)&x); * low word of x * * ix0 = *(n0+(int*)&x); * high word of x *
to dig two 32 bit words out of the 64 bit IEEE floating point * ix1 = *((1-n0)+(int*)&x); * low word of x *
value. That is non-ANSI, and, moreover, the gcc instruction * to dig two 32 bit words out of the 64 bit IEEE floating point
scheduler gets it wrong. We instead use the following macros. * value. That is non-ANSI, and, moreover, the gcc instruction
Unlike the original code, we determine the endianness at compile * scheduler gets it wrong. We instead use the following macros.
time, not at run time; I don't see much benefit to selecting * Unlike the original code, we determine the endianness at compile
endianness at run time. */ * time, not at run time; I don't see much benefit to selecting
* endianness at run time.
*/
/* A union which permits us to convert between a double and two 32 bit /*
ints. */ * A union which permits us to convert between a double and two 32 bit
* ints.
*/
#if BYTE_ORDER == BIG_ENDIAN #if BYTE_ORDER == BIG_ENDIAN
@ -120,8 +124,10 @@ do { \
(d) = sl_u.value; \ (d) = sl_u.value; \
} while (0) } while (0)
/* A union which permits us to convert between a float and a 32 bit /*
int. */ * A union which permits us to convert between a float and a 32 bit
* int.
*/
typedef union typedef union
{ {
@ -149,76 +155,75 @@ do { \
} while (0) } while (0)
/* ieee style elementary functions */ /* ieee style elementary functions */
extern double __ieee754_sqrt __P((double)); double __ieee754_sqrt __P((double));
extern double __ieee754_acos __P((double)); double __ieee754_acos __P((double));
extern double __ieee754_acosh __P((double)); double __ieee754_acosh __P((double));
extern double __ieee754_log __P((double)); double __ieee754_log __P((double));
extern double __ieee754_atanh __P((double)); double __ieee754_atanh __P((double));
extern double __ieee754_asin __P((double)); double __ieee754_asin __P((double));
extern double __ieee754_atan2 __P((double,double)); double __ieee754_atan2 __P((double,double));
extern double __ieee754_exp __P((double)); double __ieee754_exp __P((double));
extern double __ieee754_cosh __P((double)); double __ieee754_cosh __P((double));
extern double __ieee754_fmod __P((double,double)); double __ieee754_fmod __P((double,double));
extern double __ieee754_pow __P((double,double)); double __ieee754_pow __P((double,double));
extern double __ieee754_lgamma_r __P((double,int *)); double __ieee754_lgamma_r __P((double,int *));
extern double __ieee754_gamma_r __P((double,int *)); double __ieee754_gamma_r __P((double,int *));
extern double __ieee754_lgamma __P((double)); double __ieee754_lgamma __P((double));
extern double __ieee754_gamma __P((double)); double __ieee754_gamma __P((double));
extern double __ieee754_log10 __P((double)); double __ieee754_log10 __P((double));
extern double __ieee754_sinh __P((double)); double __ieee754_sinh __P((double));
extern double __ieee754_hypot __P((double,double)); double __ieee754_hypot __P((double,double));
extern double __ieee754_j0 __P((double)); double __ieee754_j0 __P((double));
extern double __ieee754_j1 __P((double)); double __ieee754_j1 __P((double));
extern double __ieee754_y0 __P((double)); double __ieee754_y0 __P((double));
extern double __ieee754_y1 __P((double)); double __ieee754_y1 __P((double));
extern double __ieee754_jn __P((int,double)); double __ieee754_jn __P((int,double));
extern double __ieee754_yn __P((int,double)); double __ieee754_yn __P((int,double));
extern double __ieee754_remainder __P((double,double)); double __ieee754_remainder __P((double,double));
extern int __ieee754_rem_pio2 __P((double,double*)); int __ieee754_rem_pio2 __P((double,double*));
extern double __ieee754_scalb __P((double,double)); double __ieee754_scalb __P((double,double));
/* fdlibm kernel function */ /* fdlibm kernel function */
extern double __kernel_standard __P((double,double,int)); double __kernel_standard __P((double,double,int));
extern double __kernel_sin __P((double,double,int)); double __kernel_sin __P((double,double,int));
extern double __kernel_cos __P((double,double)); double __kernel_cos __P((double,double));
extern double __kernel_tan __P((double,double,int)); double __kernel_tan __P((double,double,int));
extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int*)); int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int*));
/* ieee style elementary float functions */ /* ieee style elementary float functions */
extern float __ieee754_sqrtf __P((float)); float __ieee754_sqrtf __P((float));
extern float __ieee754_acosf __P((float)); float __ieee754_acosf __P((float));
extern float __ieee754_acoshf __P((float)); float __ieee754_acoshf __P((float));
extern float __ieee754_logf __P((float)); float __ieee754_logf __P((float));
extern float __ieee754_atanhf __P((float)); float __ieee754_atanhf __P((float));
extern float __ieee754_asinf __P((float)); float __ieee754_asinf __P((float));
extern float __ieee754_atan2f __P((float,float)); float __ieee754_atan2f __P((float,float));
extern float __ieee754_expf __P((float)); float __ieee754_expf __P((float));
extern float __ieee754_coshf __P((float)); float __ieee754_coshf __P((float));
extern float __ieee754_fmodf __P((float,float)); float __ieee754_fmodf __P((float,float));
extern float __ieee754_powf __P((float,float)); float __ieee754_powf __P((float,float));
extern float __ieee754_lgammaf_r __P((float,int *)); float __ieee754_lgammaf_r __P((float,int *));
extern float __ieee754_gammaf_r __P((float,int *)); float __ieee754_gammaf_r __P((float,int *));
extern float __ieee754_lgammaf __P((float)); float __ieee754_lgammaf __P((float));
extern float __ieee754_gammaf __P((float)); float __ieee754_gammaf __P((float));
extern float __ieee754_log10f __P((float)); float __ieee754_log10f __P((float));
extern float __ieee754_sinhf __P((float)); float __ieee754_sinhf __P((float));
extern float __ieee754_hypotf __P((float,float)); float __ieee754_hypotf __P((float,float));
extern float __ieee754_j0f __P((float)); float __ieee754_j0f __P((float));
extern float __ieee754_j1f __P((float)); float __ieee754_j1f __P((float));
extern float __ieee754_y0f __P((float)); float __ieee754_y0f __P((float));
extern float __ieee754_y1f __P((float)); float __ieee754_y1f __P((float));
extern float __ieee754_jnf __P((int,float)); float __ieee754_jnf __P((int,float));
extern float __ieee754_ynf __P((int,float)); float __ieee754_ynf __P((int,float));
extern float __ieee754_remainderf __P((float,float)); float __ieee754_remainderf __P((float,float));
extern int __ieee754_rem_pio2f __P((float,float*)); int __ieee754_rem_pio2f __P((float,float*));
extern float __ieee754_scalbf __P((float,float)); float __ieee754_scalbf __P((float,float));
/* float versions of fdlibm kernel functions */ /* float versions of fdlibm kernel functions */
extern float __kernel_sinf __P((float,float,int)); float __kernel_sinf __P((float,float,int));
extern float __kernel_cosf __P((float,float)); float __kernel_cosf __P((float,float));
extern float __kernel_tanf __P((float,float,int)); float __kernel_tanf __P((float,float,int));
extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int*)); int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int*));
#if defined(__alpha__) || defined(__ia64__) #if defined(__alpha__) || defined(__ia64__)
#define __generic___ieee754_acos __ieee754_acos #define __generic___ieee754_acos __ieee754_acos
@ -247,4 +252,4 @@ extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int*));
#define __generic_tan tan #define __generic_tan tan
#endif #endif
#endif /* _MATH_PRIVATE_H_ */ #endif /* !_MATH_PRIVATE_H_ */