URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/tags/gnu-src/newlib-1.18.0/newlib-1.18.0-or32-1.0rc1/newlib/libm/common
- from Rev 207 to Rev 345
- ↔ Reverse comparison
Rev 207 → Rev 345
/sf_pow10.c
0,0 → 1,47
/* sf_pow10.c -- float version of s_pow10.c. |
* Modification of sf_pow10.c by Yaakov Selkowitz 2007. |
*/ |
|
/* |
* ==================================================== |
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |
* |
* Developed at SunPro, a Sun Microsystems, Inc. business. |
* Permission to use, copy, modify, and distribute this |
* software is freely granted, provided that this notice |
* is preserved. |
* ==================================================== |
*/ |
|
/* |
* wrapper pow10f(x) |
*/ |
|
#undef pow10f |
#include "fdlibm.h" |
#include <errno.h> |
#include <math.h> |
|
#ifdef __STDC__ |
float pow10f(float x) /* wrapper pow10f */ |
#else |
float pow10f(x) /* wrapper pow10f */ |
float x; |
#endif |
{ |
return powf(10.0, x); |
} |
|
#ifdef _DOUBLE_IS_32BITS |
|
#ifdef __STDC__ |
double pow10(double x) |
#else |
double pow10(x) |
double x; |
#endif |
{ |
return (double) pow10f((float) x); |
} |
|
#endif /* defined(_DOUBLE_IS_32BITS) */ |
sf_pow10.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_isinfd.c
===================================================================
--- s_isinfd.c (nonexistent)
+++ s_isinfd.c (revision 345)
@@ -0,0 +1,23 @@
+/*
+ * __isinfd(x) returns 1 if x is infinity, else 0;
+ * no branching!
+ * Added by Cygnus Support.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+int
+_DEFUN (__isinfd, (x),
+ double x)
+{
+ __int32_t hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff;
+ hx |= (__uint32_t)(lx|(-lx))>>31;
+ hx = 0x7ff00000 - hx;
+ return 1 - (int)((__uint32_t)(hx|(-hx))>>31);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_isinfd.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: log10l.c
===================================================================
--- log10l.c (nonexistent)
+++ log10l.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+log10l (long double x)
+{
+ return log10(x);
+}
+#endif
+
log10l.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_isinf.c
===================================================================
--- sf_isinf.c (nonexistent)
+++ sf_isinf.c (revision 345)
@@ -0,0 +1,37 @@
+/*
+ * isinff(x) returns 1 if x is +-infinity, else 0;
+ *
+ * isinf is a macro in the C99 standard. It was previously
+ * implemented as isinf and isinff functions by newlib and are still declared
+ * as such in . Newlib supplies it here as a function if the user
+ * chooses to use or needs to link older code compiled with the
+ * previous declaration.
+ */
+
+#include "fdlibm.h"
+#include
+
+#undef isinff
+
+int
+_DEFUN (isinff, (x),
+ float x)
+{
+ __int32_t ix;
+ GET_FLOAT_WORD(ix,x);
+ ix &= 0x7fffffff;
+ return FLT_UWORD_IS_INFINITE(ix);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#undef isinf
+
+int
+_DEFUN (isinf, (x),
+ double x)
+{
+ return isinff((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_isinf.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_finite.c
===================================================================
--- s_finite.c (nonexistent)
+++ s_finite.c (revision 345)
@@ -0,0 +1,35 @@
+
+/* @(#)s_finite.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * finite(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ int finite(double x)
+#else
+ int finite(x)
+ double x;
+#endif
+{
+ __int32_t hx;
+ GET_HIGH_WORD(hx,x);
+ return (int)((__uint32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_finite.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fmodl.c
===================================================================
--- fmodl.c (nonexistent)
+++ fmodl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fmodl (long double x, long double y)
+{
+ return fmod(x, y);
+}
+#endif
+
fmodl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_fdim.c
===================================================================
--- s_fdim.c (nonexistent)
+++ s_fdim.c (revision 345)
@@ -0,0 +1,61 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+/*
+FUNCTION
+<>, <>--positive difference
+INDEX
+ fdim
+INDEX
+ fdimf
+
+ANSI_SYNOPSIS
+ #include
+ double fdim(double <[x]>, double <[y]>);
+ float fdimf(float <[x]>, float <[y]>);
+
+DESCRIPTION
+The <> functions determine the positive difference between their
+arguments, returning:
+. <[x]> - <[y]> if <[x]> > <[y]>, or
+ @ifnottex
+. +0 if <[x]> <= <[y]>, or
+ @end ifnottex
+ @tex
+. +0 if <[x]> $\leq$ <[y]>, or
+ @end tex
+. NAN if either argument is NAN.
+A range error may occur.
+
+RETURNS
+The <> functions return the positive difference value.
+
+PORTABILITY
+ANSI C, POSIX.
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fdim(double x, double y)
+#else
+ double fdim(x,y)
+ double x;
+ double y;
+#endif
+{
+ int c = __fpclassifyd(x);
+ if (c == FP_NAN) return(x);
+ if (__fpclassifyd(y) == FP_NAN) return(y);
+ if (c == FP_INFINITE)
+ return HUGE_VAL;
+
+ return x > y ? x - y : 0.0;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_fdim.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fdlibm.h
===================================================================
--- fdlibm.h (nonexistent)
+++ fdlibm.h (revision 345)
@@ -0,0 +1,363 @@
+
+/* @(#)fdlibm.h 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* REDHAT LOCAL: Include files. */
+#include
+#include
+#include
+
+/* REDHAT LOCAL: Default to XOPEN_MODE. */
+#define _XOPEN_MODE
+
+/* Most routines need to check whether a float is finite, infinite, or not a
+ number, and many need to know whether the result of an operation will
+ overflow. These conditions depend on whether the largest exponent is
+ used for NaNs & infinities, or whether it's used for finite numbers. The
+ macros below wrap up that kind of information:
+
+ FLT_UWORD_IS_FINITE(X)
+ True if a positive float with bitmask X is finite.
+
+ FLT_UWORD_IS_NAN(X)
+ True if a positive float with bitmask X is not a number.
+
+ FLT_UWORD_IS_INFINITE(X)
+ True if a positive float with bitmask X is +infinity.
+
+ FLT_UWORD_MAX
+ The bitmask of FLT_MAX.
+
+ FLT_UWORD_HALF_MAX
+ The bitmask of FLT_MAX/2.
+
+ FLT_UWORD_EXP_MAX
+ The bitmask of the largest finite exponent (129 if the largest
+ exponent is used for finite numbers, 128 otherwise).
+
+ FLT_UWORD_LOG_MAX
+ The bitmask of log(FLT_MAX), rounded down. This value is the largest
+ input that can be passed to exp() without producing overflow.
+
+ FLT_UWORD_LOG_2MAX
+ The bitmask of log(2*FLT_MAX), rounded down. This value is the
+ largest input than can be passed to cosh() without producing
+ overflow.
+
+ FLT_LARGEST_EXP
+ The largest biased exponent that can be used for finite numbers
+ (255 if the largest exponent is used for finite numbers, 254
+ otherwise) */
+
+#ifdef _FLT_LARGEST_EXPONENT_IS_NORMAL
+#define FLT_UWORD_IS_FINITE(x) 1
+#define FLT_UWORD_IS_NAN(x) 0
+#define FLT_UWORD_IS_INFINITE(x) 0
+#define FLT_UWORD_MAX 0x7fffffff
+#define FLT_UWORD_EXP_MAX 0x43010000
+#define FLT_UWORD_LOG_MAX 0x42b2d4fc
+#define FLT_UWORD_LOG_2MAX 0x42b437e0
+#define HUGE ((float)0X1.FFFFFEP128)
+#else
+#define FLT_UWORD_IS_FINITE(x) ((x)<0x7f800000L)
+#define FLT_UWORD_IS_NAN(x) ((x)>0x7f800000L)
+#define FLT_UWORD_IS_INFINITE(x) ((x)==0x7f800000L)
+#define FLT_UWORD_MAX 0x7f7fffffL
+#define FLT_UWORD_EXP_MAX 0x43000000
+#define FLT_UWORD_LOG_MAX 0x42b17217
+#define FLT_UWORD_LOG_2MAX 0x42b2d4fc
+#define HUGE ((float)3.40282346638528860e+38)
+#endif
+#define FLT_UWORD_HALF_MAX (FLT_UWORD_MAX-(1L<<23))
+#define FLT_LARGEST_EXP (FLT_UWORD_MAX>>23)
+
+/* Many routines check for zero and subnormal numbers. Such things depend
+ on whether the target supports denormals or not:
+
+ FLT_UWORD_IS_ZERO(X)
+ True if a positive float with bitmask X is +0. Without denormals,
+ any float with a zero exponent is a +0 representation. With
+ denormals, the only +0 representation is a 0 bitmask.
+
+ FLT_UWORD_IS_SUBNORMAL(X)
+ True if a non-zero positive float with bitmask X is subnormal.
+ (Routines should check for zeros first.)
+
+ FLT_UWORD_MIN
+ The bitmask of the smallest float above +0. Call this number
+ REAL_FLT_MIN...
+
+ FLT_UWORD_EXP_MIN
+ The bitmask of the float representation of REAL_FLT_MIN's exponent.
+
+ FLT_UWORD_LOG_MIN
+ The bitmask of |log(REAL_FLT_MIN)|, rounding down.
+
+ FLT_SMALLEST_EXP
+ REAL_FLT_MIN's exponent - EXP_BIAS (1 if denormals are not supported,
+ -22 if they are).
+*/
+
+#ifdef _FLT_NO_DENORMALS
+#define FLT_UWORD_IS_ZERO(x) ((x)<0x00800000L)
+#define FLT_UWORD_IS_SUBNORMAL(x) 0
+#define FLT_UWORD_MIN 0x00800000
+#define FLT_UWORD_EXP_MIN 0x42fc0000
+#define FLT_UWORD_LOG_MIN 0x42aeac50
+#define FLT_SMALLEST_EXP 1
+#else
+#define FLT_UWORD_IS_ZERO(x) ((x)==0)
+#define FLT_UWORD_IS_SUBNORMAL(x) ((x)<0x00800000L)
+#define FLT_UWORD_MIN 0x00000001
+#define FLT_UWORD_EXP_MIN 0x43160000
+#define FLT_UWORD_LOG_MIN 0x42cff1b5
+#define FLT_SMALLEST_EXP -22
+#endif
+
+#ifdef __STDC__
+#undef __P
+#define __P(p) p
+#else
+#define __P(p) ()
+#endif
+
+/*
+ * set X_TLOSS = pi*2**52, which is possibly defined in
+ * (one may replace the following line by "#include ")
+ */
+
+#define X_TLOSS 1.41484755040568800000e+16
+
+/* Functions that are not documented, and are not in . */
+
+#ifdef _SCALB_INT
+extern double scalb __P((double, int));
+#else
+extern double scalb __P((double, double));
+#endif
+extern double significand __P((double));
+
+/* ieee style elementary functions */
+extern double __ieee754_sqrt __P((double));
+extern double __ieee754_acos __P((double));
+extern double __ieee754_acosh __P((double));
+extern double __ieee754_log __P((double));
+extern double __ieee754_atanh __P((double));
+extern double __ieee754_asin __P((double));
+extern double __ieee754_atan2 __P((double,double));
+extern double __ieee754_exp __P((double));
+extern double __ieee754_cosh __P((double));
+extern double __ieee754_fmod __P((double,double));
+extern double __ieee754_pow __P((double,double));
+extern double __ieee754_lgamma_r __P((double,int *));
+extern double __ieee754_gamma_r __P((double,int *));
+extern double __ieee754_log10 __P((double));
+extern double __ieee754_sinh __P((double));
+extern double __ieee754_hypot __P((double,double));
+extern double __ieee754_j0 __P((double));
+extern double __ieee754_j1 __P((double));
+extern double __ieee754_y0 __P((double));
+extern double __ieee754_y1 __P((double));
+extern double __ieee754_jn __P((int,double));
+extern double __ieee754_yn __P((int,double));
+extern double __ieee754_remainder __P((double,double));
+extern __int32_t __ieee754_rem_pio2 __P((double,double*));
+#ifdef _SCALB_INT
+extern double __ieee754_scalb __P((double,int));
+#else
+extern double __ieee754_scalb __P((double,double));
+#endif
+
+/* fdlibm kernel function */
+extern double __kernel_standard __P((double,double,int));
+extern double __kernel_sin __P((double,double,int));
+extern double __kernel_cos __P((double,double));
+extern double __kernel_tan __P((double,double,int));
+extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const __int32_t*));
+
+/* Undocumented float functions. */
+#ifdef _SCALB_INT
+extern float scalbf __P((float, int));
+#else
+extern float scalbf __P((float, float));
+#endif
+extern float significandf __P((float));
+
+/* ieee style elementary float functions */
+extern float __ieee754_sqrtf __P((float));
+extern float __ieee754_acosf __P((float));
+extern float __ieee754_acoshf __P((float));
+extern float __ieee754_logf __P((float));
+extern float __ieee754_atanhf __P((float));
+extern float __ieee754_asinf __P((float));
+extern float __ieee754_atan2f __P((float,float));
+extern float __ieee754_expf __P((float));
+extern float __ieee754_coshf __P((float));
+extern float __ieee754_fmodf __P((float,float));
+extern float __ieee754_powf __P((float,float));
+extern float __ieee754_lgammaf_r __P((float,int *));
+extern float __ieee754_gammaf_r __P((float,int *));
+extern float __ieee754_log10f __P((float));
+extern float __ieee754_sinhf __P((float));
+extern float __ieee754_hypotf __P((float,float));
+extern float __ieee754_j0f __P((float));
+extern float __ieee754_j1f __P((float));
+extern float __ieee754_y0f __P((float));
+extern float __ieee754_y1f __P((float));
+extern float __ieee754_jnf __P((int,float));
+extern float __ieee754_ynf __P((int,float));
+extern float __ieee754_remainderf __P((float,float));
+extern __int32_t __ieee754_rem_pio2f __P((float,float*));
+#ifdef _SCALB_INT
+extern float __ieee754_scalbf __P((float,int));
+#else
+extern float __ieee754_scalbf __P((float,float));
+#endif
+
+/* float versions of fdlibm kernel functions */
+extern float __kernel_sinf __P((float,float,int));
+extern float __kernel_cosf __P((float,float));
+extern float __kernel_tanf __P((float,float,int));
+extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const __int32_t*));
+
+/* The original code used statements like
+ n0 = ((*(int*)&one)>>29)^1; * index of high word *
+ ix0 = *(n0+(int*)&x); * high word of x *
+ ix1 = *((1-n0)+(int*)&x); * low word of x *
+ to dig two 32 bit words out of the 64 bit IEEE floating point
+ value. That is non-ANSI, and, moreover, the gcc instruction
+ scheduler gets it wrong. We instead use the following macros.
+ Unlike the original code, we determine the endianness at compile
+ time, not at run time; I don't see much benefit to selecting
+ endianness at run time. */
+
+#ifndef __IEEE_BIG_ENDIAN
+#ifndef __IEEE_LITTLE_ENDIAN
+ #error Must define endianness
+#endif
+#endif
+
+/* A union which permits us to convert between a double and two 32 bit
+ ints. */
+
+#ifdef __IEEE_BIG_ENDIAN
+
+typedef union
+{
+ double value;
+ struct
+ {
+ __uint32_t msw;
+ __uint32_t lsw;
+ } parts;
+} ieee_double_shape_type;
+
+#endif
+
+#ifdef __IEEE_LITTLE_ENDIAN
+
+typedef union
+{
+ double value;
+ struct
+ {
+ __uint32_t lsw;
+ __uint32_t msw;
+ } parts;
+} ieee_double_shape_type;
+
+#endif
+
+/* Get two 32 bit ints from a double. */
+
+#define EXTRACT_WORDS(ix0,ix1,d) \
+do { \
+ ieee_double_shape_type ew_u; \
+ ew_u.value = (d); \
+ (ix0) = ew_u.parts.msw; \
+ (ix1) = ew_u.parts.lsw; \
+} while (0)
+
+/* Get the more significant 32 bit int from a double. */
+
+#define GET_HIGH_WORD(i,d) \
+do { \
+ ieee_double_shape_type gh_u; \
+ gh_u.value = (d); \
+ (i) = gh_u.parts.msw; \
+} while (0)
+
+/* Get the less significant 32 bit int from a double. */
+
+#define GET_LOW_WORD(i,d) \
+do { \
+ ieee_double_shape_type gl_u; \
+ gl_u.value = (d); \
+ (i) = gl_u.parts.lsw; \
+} while (0)
+
+/* Set a double from two 32 bit ints. */
+
+#define INSERT_WORDS(d,ix0,ix1) \
+do { \
+ ieee_double_shape_type iw_u; \
+ iw_u.parts.msw = (ix0); \
+ iw_u.parts.lsw = (ix1); \
+ (d) = iw_u.value; \
+} while (0)
+
+/* Set the more significant 32 bits of a double from an int. */
+
+#define SET_HIGH_WORD(d,v) \
+do { \
+ ieee_double_shape_type sh_u; \
+ sh_u.value = (d); \
+ sh_u.parts.msw = (v); \
+ (d) = sh_u.value; \
+} while (0)
+
+/* Set the less significant 32 bits of a double from an int. */
+
+#define SET_LOW_WORD(d,v) \
+do { \
+ ieee_double_shape_type sl_u; \
+ sl_u.value = (d); \
+ sl_u.parts.lsw = (v); \
+ (d) = sl_u.value; \
+} while (0)
+
+/* A union which permits us to convert between a float and a 32 bit
+ int. */
+
+typedef union
+{
+ float value;
+ __uint32_t word;
+} ieee_float_shape_type;
+
+/* Get a 32 bit int from a float. */
+
+#define GET_FLOAT_WORD(i,d) \
+do { \
+ ieee_float_shape_type gf_u; \
+ gf_u.value = (d); \
+ (i) = gf_u.word; \
+} while (0)
+
+/* Set a float from a 32 bit int. */
+
+#define SET_FLOAT_WORD(d,i) \
+do { \
+ ieee_float_shape_type sf_u; \
+ sf_u.word = (i); \
+ (d) = sf_u.value; \
+} while (0)
fdlibm.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lrintl.c
===================================================================
--- lrintl.c (nonexistent)
+++ lrintl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long int
+lrintl (long double x)
+{
+ return lrint(x);
+}
+#endif
+
lrintl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tanhl.c
===================================================================
--- tanhl.c (nonexistent)
+++ tanhl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+tanhl (long double x)
+{
+ return tanh(x);
+}
+#endif
+
tanhl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_isinff.c
===================================================================
--- sf_isinff.c (nonexistent)
+++ sf_isinff.c (revision 345)
@@ -0,0 +1,27 @@
+/*
+ * __isinff(x) returns 1 if x is +-infinity, else 0;
+ * Added by Cygnus Support.
+ */
+
+#include "fdlibm.h"
+
+int
+_DEFUN (__isinff, (x),
+ float x)
+{
+ __int32_t ix;
+ GET_FLOAT_WORD(ix,x);
+ ix &= 0x7fffffff;
+ return FLT_UWORD_IS_INFINITE(ix);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+int
+_DEFUN (__isinfd, (x),
+ double x)
+{
+ return __isinff((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_isinff.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_fdim.c
===================================================================
--- sf_fdim.c (nonexistent)
+++ sf_fdim.c (revision 345)
@@ -0,0 +1,39 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float fdimf(float x, float y)
+#else
+ float fdimf(x,y)
+ float x;
+ float y;
+#endif
+{
+ int c = __fpclassifyf(x);
+ if (c == FP_NAN) return(x);
+ if (__fpclassifyf(y) == FP_NAN) return(y);
+ if (c == FP_INFINITE)
+ return HUGE_VALF;
+
+ return x > y ? x - y : 0.0;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fdim(double x, double y)
+#else
+ double fdim(x,y)
+ double x;
+ double y;
+#endif
+{
+ return (double) fdimf((float) x, (float) y);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_fdim.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_round.c
===================================================================
--- s_round.c (nonexistent)
+++ s_round.c (revision 345)
@@ -0,0 +1,115 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>--round to integer, to nearest
+INDEX
+ round
+INDEX
+ roundf
+
+ANSI_SYNOPSIS
+ #include
+ double round(double <[x]>);
+ float roundf(float <[x]>);
+
+DESCRIPTION
+ The <> functions round their argument to the nearest integer
+ value in floating-point format, rounding halfway cases away from zero,
+ regardless of the current rounding direction. (While the "inexact"
+ floating-point exception behavior is unspecified by the C standard, the
+ <> functions are written so that "inexact" is not raised if the
+ result does not equal the argument, which behavior is as recommended by
+ IEEE 754 for its related functions.)
+
+RETURNS
+<[x]> rounded to an integral value.
+
+PORTABILITY
+ANSI C, POSIX
+
+SEEALSO
+<>, <>
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double round(double x)
+#else
+ double round(x)
+ double x;
+#endif
+{
+ /* Most significant word, least significant word. */
+ __int32_t msw, exponent_less_1023;
+ __uint32_t lsw;
+
+ EXTRACT_WORDS(msw, lsw, x);
+
+ /* Extract exponent field. */
+ exponent_less_1023 = ((msw & 0x7ff00000) >> 20) - 1023;
+
+ if (exponent_less_1023 < 20)
+ {
+ if (exponent_less_1023 < 0)
+ {
+ msw &= 0x80000000;
+ if (exponent_less_1023 == -1)
+ /* Result is +1.0 or -1.0. */
+ msw |= (1023 << 20);
+ lsw = 0;
+ }
+ else
+ {
+ __uint32_t exponent_mask = 0x000fffff >> exponent_less_1023;
+ if ((msw & exponent_mask) == 0 && lsw == 0)
+ /* x in an integral value. */
+ return x;
+
+ msw += 0x00080000 >> exponent_less_1023;
+ msw &= ~exponent_mask;
+ lsw = 0;
+ }
+ }
+ else if (exponent_less_1023 > 51)
+ {
+ if (exponent_less_1023 == 1024)
+ /* x is NaN or infinite. */
+ return x + x;
+ else
+ return x;
+ }
+ else
+ {
+ __uint32_t exponent_mask = 0xffffffff >> (exponent_less_1023 - 20);
+ __uint32_t tmp;
+
+ if ((lsw & exponent_mask) == 0)
+ /* x is an integral value. */
+ return x;
+
+ tmp = lsw + (1 << (51 - exponent_less_1023));
+ if (tmp < lsw)
+ msw += 1;
+ lsw = tmp;
+
+ lsw &= ~exponent_mask;
+ }
+ INSERT_WORDS(x, msw, lsw);
+
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_round.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lgammal.c
===================================================================
--- lgammal.c (nonexistent)
+++ lgammal.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+lgammal (long double x)
+{
+ return lgamma(x);
+}
+#endif
+
lgammal.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_expm1.c
===================================================================
--- s_expm1.c (nonexistent)
+++ s_expm1.c (revision 345)
@@ -0,0 +1,272 @@
+
+/* @(#)s_expm1.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---exponential minus 1
+INDEX
+ expm1
+INDEX
+ expm1f
+
+ANSI_SYNOPSIS
+ #include
+ double expm1(double <[x]>);
+ float expm1f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include
+ double expm1(<[x]>);
+ double <[x]>;
+
+ float expm1f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <> and <> calculate the exponential of <[x]>
+ and subtract 1, that is,
+ @ifnottex
+ e raised to the power <[x]> minus 1 (where e
+ @end ifnottex
+ @tex
+ $e^x - 1$ (where $e$
+ @end tex
+ is the base of the natural system of logarithms, approximately
+ 2.71828). The result is accurate even for small values of
+ <[x]>, where using <)-1>> would lose many
+ significant digits.
+
+RETURNS
+ e raised to the power <[x]>, minus 1.
+
+PORTABILITY
+ Neither <> nor <> is required by ANSI C or by
+ the System V Interface Definition (Issue 2).
+*/
+
+/* expm1(x)
+ * Returns exp(x)-1, the exponential of x minus 1.
+ *
+ * Method
+ * 1. Argument reduction:
+ * Given x, find r and integer k such that
+ *
+ * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658
+ *
+ * Here a correction term c will be computed to compensate
+ * the error in r when rounded to a floating-point number.
+ *
+ * 2. Approximating expm1(r) by a special rational function on
+ * the interval [0,0.34658]:
+ * Since
+ * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ...
+ * we define R1(r*r) by
+ * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r)
+ * That is,
+ * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
+ * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
+ * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
+ * We use a special Reme algorithm on [0,0.347] to generate
+ * a polynomial of degree 5 in r*r to approximate R1. The
+ * maximum error of this polynomial approximation is bounded
+ * by 2**-61. In other words,
+ * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
+ * where Q1 = -1.6666666666666567384E-2,
+ * Q2 = 3.9682539681370365873E-4,
+ * Q3 = -9.9206344733435987357E-6,
+ * Q4 = 2.5051361420808517002E-7,
+ * Q5 = -6.2843505682382617102E-9;
+ * (where z=r*r, and the values of Q1 to Q5 are listed below)
+ * with error bounded by
+ * | 5 | -61
+ * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2
+ * | |
+ *
+ * expm1(r) = exp(r)-1 is then computed by the following
+ * specific way which minimize the accumulation rounding error:
+ * 2 3
+ * r r [ 3 - (R1 + R1*r/2) ]
+ * expm1(r) = r + --- + --- * [--------------------]
+ * 2 2 [ 6 - r*(3 - R1*r/2) ]
+ *
+ * To compensate the error in the argument reduction, we use
+ * expm1(r+c) = expm1(r) + c + expm1(r)*c
+ * ~ expm1(r) + c + r*c
+ * Thus c+r*c will be added in as the correction terms for
+ * expm1(r+c). Now rearrange the term to avoid optimization
+ * screw up:
+ * ( 2 2 )
+ * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r )
+ * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
+ * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 )
+ * ( )
+ *
+ * = r - E
+ * 3. Scale back to obtain expm1(x):
+ * From step 1, we have
+ * expm1(x) = either 2^k*[expm1(r)+1] - 1
+ * = or 2^k*[expm1(r) + (1-2^-k)]
+ * 4. Implementation notes:
+ * (A). To save one multiplication, we scale the coefficient Qi
+ * to Qi*2^i, and replace z by (x^2)/2.
+ * (B). To achieve maximum accuracy, we compute expm1(x) by
+ * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf)
+ * (ii) if k=0, return r-E
+ * (iii) if k=-1, return 0.5*(r-E)-0.5
+ * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E)
+ * else return 1.0+2.0*(r-E);
+ * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
+ * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else
+ * (vii) return 2^k(1-((E+2^-k)-r))
+ *
+ * Special cases:
+ * expm1(INF) is INF, expm1(NaN) is NaN;
+ * expm1(-INF) is -1, and
+ * for finite argument, only expm1(0)=0 is exact.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ * For IEEE double
+ * if x > 7.09782712893383973096e+02 then expm1(x) overflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+one = 1.0,
+huge = 1.0e+300,
+tiny = 1.0e-300,
+o_threshold = 7.09782712893383973096e+02,/* 0x40862E42, 0xFEFA39EF */
+ln2_hi = 6.93147180369123816490e-01,/* 0x3fe62e42, 0xfee00000 */
+ln2_lo = 1.90821492927058770002e-10,/* 0x3dea39ef, 0x35793c76 */
+invln2 = 1.44269504088896338700e+00,/* 0x3ff71547, 0x652b82fe */
+ /* scaled coefficients related to expm1 */
+Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */
+Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */
+Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */
+Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */
+Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
+
+#ifdef __STDC__
+ double expm1(double x)
+#else
+ double expm1(x)
+ double x;
+#endif
+{
+ double y,hi,lo,c,t,e,hxs,hfx,r1;
+ __int32_t k,xsb;
+ __uint32_t hx;
+
+ GET_HIGH_WORD(hx,x);
+ xsb = hx&0x80000000; /* sign bit of x */
+ if(xsb==0) y=x; else y= -x; /* y = |x| */
+ hx &= 0x7fffffff; /* high word of |x| */
+
+ /* filter out huge and non-finite argument */
+ if(hx >= 0x4043687A) { /* if |x|>=56*ln2 */
+ if(hx >= 0x40862E42) { /* if |x|>=709.78... */
+ if(hx>=0x7ff00000) {
+ __uint32_t low;
+ GET_LOW_WORD(low,x);
+ if(((hx&0xfffff)|low)!=0)
+ return x+x; /* NaN */
+ else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
+ }
+ if(x > o_threshold) return huge*huge; /* overflow */
+ }
+ if(xsb!=0) { /* x < -56*ln2, return -1.0 with inexact */
+ if(x+tiny<0.0) /* raise inexact */
+ return tiny-one; /* return -1 */
+ }
+ }
+
+ /* argument reduction */
+ if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
+ if(xsb==0)
+ {hi = x - ln2_hi; lo = ln2_lo; k = 1;}
+ else
+ {hi = x + ln2_hi; lo = -ln2_lo; k = -1;}
+ } else {
+ k = invln2*x+((xsb==0)?0.5:-0.5);
+ t = k;
+ hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
+ lo = t*ln2_lo;
+ }
+ x = hi - lo;
+ c = (hi-x)-lo;
+ }
+ else if(hx < 0x3c900000) { /* when |x|<2**-54, return x */
+ t = huge+x; /* return x with inexact flags when x!=0 */
+ return x - (t-(huge+x));
+ }
+ else k = 0;
+
+ /* x is now in primary range */
+ hfx = 0.5*x;
+ hxs = x*hfx;
+ r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
+ t = 3.0-r1*hfx;
+ e = hxs*((r1-t)/(6.0 - x*t));
+ if(k==0) return x - (x*e-hxs); /* c is 0 */
+ else {
+ e = (x*(e-c)-c);
+ e -= hxs;
+ if(k== -1) return 0.5*(x-e)-0.5;
+ if(k==1) {
+ if(x < -0.25) return -2.0*(e-(x+0.5));
+ else return one+2.0*(x-e);
+ }
+ if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
+ __uint32_t high;
+ y = one-(e-x);
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ return y-one;
+ }
+ t = one;
+ if(k<20) {
+ __uint32_t high;
+ SET_HIGH_WORD(t,0x3ff00000 - (0x200000>>k)); /* t=1-2^-k */
+ y = t-(e-x);
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ } else {
+ __uint32_t high;
+ SET_HIGH_WORD(t,((0x3ff-k)<<20)); /* 2^-k */
+ y = x-(e+t);
+ y += one;
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ }
+ }
+ return y;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_expm1.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_copysign.c
===================================================================
--- s_copysign.c (nonexistent)
+++ s_copysign.c (revision 345)
@@ -0,0 +1,82 @@
+
+/* @(#)s_copysign.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+<>, <>---sign of <[y]>, magnitude of <[x]>
+
+INDEX
+ copysign
+INDEX
+ copysignf
+
+ANSI_SYNOPSIS
+ #include
+ double copysign (double <[x]>, double <[y]>);
+ float copysignf (float <[x]>, float <[y]>);
+
+TRAD_SYNOPSIS
+ #include
+ double copysign (<[x]>, <[y]>)
+ double <[x]>;
+ double <[y]>;
+
+ float copysignf (<[x]>, <[y]>)
+ float <[x]>;
+ float <[y]>;
+
+DESCRIPTION
+<> constructs a number with the magnitude (absolute value)
+of its first argument, <[x]>, and the sign of its second argument,
+<[y]>.
+
+<> does the same thing; the two functions differ only in
+the type of their arguments and result.
+
+RETURNS
+<> returns a <> with the magnitude of
+<[x]> and the sign of <[y]>.
+<> returns a <> with the magnitude of
+<[x]> and the sign of <[y]>.
+
+PORTABILITY
+<> is not required by either ANSI C or the System V Interface
+Definition (Issue 2).
+
+*/
+
+/*
+ * copysign(double x, double y)
+ * copysign(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double copysign(double x, double y)
+#else
+ double copysign(x,y)
+ double x,y;
+#endif
+{
+ __uint32_t hx,hy;
+ GET_HIGH_WORD(hx,x);
+ GET_HIGH_WORD(hy,y);
+ SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_copysign.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_exp10.c
===================================================================
--- s_exp10.c (nonexistent)
+++ s_exp10.c (revision 345)
@@ -0,0 +1,80 @@
+/* @(#)s_exp10.c 5.1 93/09/24 */
+/* Modified from s_exp2.c by Yaakov Selkowitz 2007. */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---exponential
+INDEX
+ exp10
+INDEX
+ exp10f
+
+ANSI_SYNOPSIS
+ #include
+ double exp10(double <[x]>);
+ float exp10f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include
+ double exp10(<[x]>);
+ double <[x]>;
+
+ float exp10f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <> and <> calculate 10 ^ <[x]>, that is,
+ @ifnottex
+ 10 raised to the power <[x]>.
+ @end ifnottex
+ @tex
+ $10^x$
+ @end tex
+
+ You can use the (non-ANSI) function <> to specify
+ error handling for these functions.
+
+RETURNS
+ On success, <> and <> return the calculated value.
+ If the result underflows, the returned value is <<0>>. If the
+ result overflows, the returned value is <>. In
+ either case, <> is set to <>.
+
+PORTABILITY
+ <> and <> are GNU extensions.
+
+*/
+
+/*
+ * wrapper exp10(x)
+ */
+
+#undef exp10
+#include "fdlibm.h"
+#include
+#include
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double exp10(double x) /* wrapper exp10 */
+#else
+ double exp10(x) /* wrapper exp10 */
+ double x;
+#endif
+{
+ return pow(10.0, x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
s_exp10.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tgammal.c
===================================================================
--- tgammal.c (nonexistent)
+++ tgammal.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+tgammal (long double x)
+{
+ return tgamma(x);
+}
+#endif
+
tgammal.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_copysign.c
===================================================================
--- sf_copysign.c (nonexistent)
+++ sf_copysign.c (revision 345)
@@ -0,0 +1,50 @@
+/* sf_copysign.c -- float version of s_copysign.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * copysignf(float x, float y)
+ * copysignf(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float copysignf(float x, float y)
+#else
+ float copysignf(x,y)
+ float x,y;
+#endif
+{
+ __uint32_t ix,iy;
+ GET_FLOAT_WORD(ix,x);
+ GET_FLOAT_WORD(iy,y);
+ SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double copysign(double x, double y)
+#else
+ double copysign(x,y)
+ double x,y;
+#endif
+{
+ return (double) copysignf((float) x, (float) y);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_copysign.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_fma.c
===================================================================
--- s_fma.c (nonexistent)
+++ s_fma.c (revision 345)
@@ -0,0 +1,56 @@
+/*
+FUNCTION
+<>, <>--floating multiply add
+INDEX
+ fma
+INDEX
+ fmaf
+
+ANSI_SYNOPSIS
+ #include
+ double fma(double <[x]>, double <[y]>, double <[z]>);
+ float fmaf(float <[x]>, float <[y]>, float <[z]>);
+
+DESCRIPTION
+The <> functions compute (<[x]> * <[y]>) + <[z]>, rounded as one ternary
+operation: they compute the value (as if) to infinite precision and round once
+to the result format, according to the rounding mode characterized by the value
+of FLT_ROUNDS. That is, they are supposed to do this: see below.
+
+RETURNS
+The <> functions return (<[x]> * <[y]>) + <[z]>, rounded as one ternary
+operation.
+
+BUGS
+This implementation does not provide the function that it should, purely
+returning "(<[x]> * <[y]>) + <[z]>;" with no attempt at all to provide the
+simulated infinite precision intermediates which are required. DO NOT USE THEM.
+
+If double has enough more precision than float, then <> should provide
+the expected numeric results, as it does use double for the calculation. But
+since this is not the case for all platforms, this manual cannot determine
+if it is so for your case.
+
+PORTABILITY
+ANSI C, POSIX.
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fma(double x, double y, double z)
+#else
+ double fma(x,y)
+ double x;
+ double y;
+ double z;
+#endif
+{
+ /* Implementation defined. */
+ return (x * y) + z;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_fma.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: rintl.c
===================================================================
--- rintl.c (nonexistent)
+++ rintl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+rintl (long double x)
+{
+ return rint(x);
+}
+#endif
+
rintl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_llrint.c
===================================================================
--- sf_llrint.c (nonexistent)
+++ sf_llrint.c (revision 345)
@@ -0,0 +1,101 @@
+/* lrintf adapted to be llrintf for Newlib, 2009 by Craig Howland. */
+/* @(#)sf_lrint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * llrintf(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to llrintf(x).
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+/* Adding a float, x, to 2^23 will cause the result to be rounded based on
+ the fractional part of x, according to the implementation's current rounding
+ mode. 2^23 is the smallest float that can be represented using all 23 significant
+ digits. */
+TWO23[2]={
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+#ifdef __STDC__
+ long long int llrintf(float x)
+#else
+ long long int llrintf(x)
+ float x;
+#endif
+{
+ __int32_t j0,sx;
+ __uint32_t i0;
+ float t;
+ volatile float w;
+ long long int result;
+
+ GET_FLOAT_WORD(i0,x);
+
+ /* Extract sign bit. */
+ sx = (i0 >> 31);
+
+ /* Extract exponent field. */
+ j0 = ((i0 & 0x7f800000) >> 23) - 127;
+
+ if (j0 < (int)(sizeof (long long int) * 8) - 1)
+ {
+ if (j0 < -1)
+ return 0;
+ else if (j0 >= 23)
+ result = (long long int) ((i0 & 0x7fffff) | 0x800000) << (j0 - 23);
+ else
+ {
+ w = TWO23[sx] + x;
+ t = w - TWO23[sx];
+ GET_FLOAT_WORD (i0, t);
+ /* Detect the all-zeros representation of plus and
+ minus zero, which fails the calculation below. */
+ if ((i0 & ~(1 << 31)) == 0)
+ return 0;
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ i0 &= 0x7fffff;
+ i0 |= 0x800000;
+ result = i0 >> (23 - j0);
+ }
+ }
+ else
+ {
+ return (long long int) x;
+ }
+ return sx ? -result : result;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ long long int llrint(double x)
+#else
+ long long int llrint(x)
+ double x;
+#endif
+{
+ return llrintf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_llrint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_nan.c
===================================================================
--- sf_nan.c (nonexistent)
+++ sf_nan.c (revision 345)
@@ -0,0 +1,24 @@
+/*
+ * nanf () returns a nan.
+ * Added by Cygnus Support.
+ */
+
+#include "fdlibm.h"
+
+ float nanf(const char *unused)
+{
+ float x;
+
+ SET_FLOAT_WORD(x,0x7fc00000);
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+ double nan(const char *arg)
+{
+ return (double) nanf(arg);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
+
sf_nan.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: truncl.c
===================================================================
--- truncl.c (nonexistent)
+++ truncl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+truncl (long double x)
+{
+ return trunc(x);
+}
+#endif
+
truncl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_llround.c
===================================================================
--- sf_llround.c (nonexistent)
+++ sf_llround.c (revision 345)
@@ -0,0 +1,55 @@
+/* lroundf adapted to be llroundf for Newlib, 2009 by Craig Howland. */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+long long int
+llroundf(float x)
+{
+ __int32_t exponent_less_127;
+ __uint32_t w;
+ long long int result;
+ __int32_t sign;
+
+ GET_FLOAT_WORD (w, x);
+ exponent_less_127 = ((w & 0x7f800000) >> 23) - 127;
+ sign = (w & 0x80000000) != 0 ? -1 : 1;
+ w &= 0x7fffff;
+ w |= 0x800000;
+
+ if (exponent_less_127 < (int)((8 * sizeof (long long int)) - 1))
+ {
+ if (exponent_less_127 < 0)
+ return exponent_less_127 < -1 ? 0 : sign;
+ else if (exponent_less_127 >= 23)
+ result = (long long int) w << (exponent_less_127 - 23);
+ else
+ {
+ w += 0x400000 >> exponent_less_127;
+ result = w >> (23 - exponent_less_127);
+ }
+ }
+ else
+ return (long long int) x;
+
+ return sign * result;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+long long int
+llround(double x)
+{
+ return llroundf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_llround.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: expl.c
===================================================================
--- expl.c (nonexistent)
+++ expl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+expl (long double x)
+{
+ return exp(x);
+}
+#endif
+
expl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_log1p.c
===================================================================
--- sf_log1p.c (nonexistent)
+++ sf_log1p.c (revision 345)
@@ -0,0 +1,121 @@
+/* sf_log1p.c -- float version of s_log1p.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
+ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
+two25 = 3.355443200e+07, /* 0x4c000000 */
+Lp1 = 6.6666668653e-01, /* 3F2AAAAB */
+Lp2 = 4.0000000596e-01, /* 3ECCCCCD */
+Lp3 = 2.8571429849e-01, /* 3E924925 */
+Lp4 = 2.2222198546e-01, /* 3E638E29 */
+Lp5 = 1.8183572590e-01, /* 3E3A3325 */
+Lp6 = 1.5313838422e-01, /* 3E1CD04F */
+Lp7 = 1.4798198640e-01; /* 3E178897 */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float log1pf(float x)
+#else
+ float log1pf(x)
+ float x;
+#endif
+{
+ float hfsq,f,c,s,z,R,u;
+ __int32_t k,hx,hu,ax;
+
+ GET_FLOAT_WORD(hx,x);
+ ax = hx&0x7fffffff;
+
+ k = 1;
+ if (!FLT_UWORD_IS_FINITE(hx)) return x+x;
+ if (hx < 0x3ed413d7) { /* x < 0.41422 */
+ if(ax>=0x3f800000) { /* x <= -1.0 */
+ if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=+inf */
+ else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
+ }
+ if(ax<0x31000000) { /* |x| < 2**-29 */
+ if(two25+x>zero /* raise inexact */
+ &&ax<0x24800000) /* |x| < 2**-54 */
+ return x;
+ else
+ return x - x*x*(float)0.5;
+ }
+ if(hx>0||hx<=((__int32_t)0xbe95f61f)) {
+ k=0;f=x;hu=1;} /* -0.2929>23)-127;
+ /* correction term */
+ c = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0);
+ c /= u;
+ } else {
+ u = x;
+ GET_FLOAT_WORD(hu,u);
+ k = (hu>>23)-127;
+ c = 0;
+ }
+ hu &= 0x007fffff;
+ if(hu<0x3504f7) {
+ SET_FLOAT_WORD(u,hu|0x3f800000);/* normalize u */
+ } else {
+ k += 1;
+ SET_FLOAT_WORD(u,hu|0x3f000000); /* normalize u/2 */
+ hu = (0x00800000-hu)>>2;
+ }
+ f = u-(float)1.0;
+ }
+ hfsq=(float)0.5*f*f;
+ if(hu==0) { /* |f| < 2**-20 */
+ if(f==zero) { if(k==0) return zero;
+ else {c += k*ln2_lo; return k*ln2_hi+c;}}
+ R = hfsq*((float)1.0-(float)0.66666666666666666*f);
+ if(k==0) return f-R; else
+ return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+ }
+ s = f/((float)2.0+f);
+ z = s*s;
+ R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
+ if(k==0) return f-(hfsq-s*(hfsq+R)); else
+ return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double log1p(double x)
+#else
+ double log1p(x)
+ double x;
+#endif
+{
+ return (double) log1pf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_log1p.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: nextafterl.c
===================================================================
--- nextafterl.c (nonexistent)
+++ nextafterl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+nextafterl (long double x, long double y)
+{
+ return nextafter(x, y);
+}
+#endif
+
nextafterl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_trunc.c
===================================================================
--- s_trunc.c (nonexistent)
+++ s_trunc.c (revision 345)
@@ -0,0 +1,98 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>--round to integer, towards zero
+INDEX
+ trunc
+INDEX
+ truncf
+
+ANSI_SYNOPSIS
+ #include
+ double trunc(double <[x]>);
+ float truncf(float <[x]>);
+
+DESCRIPTION
+ The <> functions round their argument to the integer value, in
+ floating format, nearest to but no larger in magnitude than the
+ argument, regardless of the current rounding direction. (While the
+ "inexact" floating-point exception behavior is unspecified by the C
+ standard, the <> functions are written so that "inexact" is not
+ raised if the result does not equal the argument, which behavior is as
+ recommended by IEEE 754 for its related functions.)
+
+RETURNS
+<[x]> truncated to an integral value.
+
+PORTABILITY
+ANSI C, POSIX
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double trunc(double x)
+#else
+ double trunc(x)
+ double x;
+#endif
+{
+ int signbit;
+ /* Most significant word, least significant word. */
+ int msw;
+ unsigned int lsw;
+ int exponent_less_1023;
+
+ EXTRACT_WORDS(msw, lsw, x);
+
+ /* Extract sign bit. */
+ signbit = msw & 0x80000000;
+
+ /* Extract exponent field. */
+ exponent_less_1023 = ((msw & 0x7ff00000) >> 20) - 1023;
+
+ if (exponent_less_1023 < 20)
+ {
+ /* All significant digits are in msw. */
+ if (exponent_less_1023 < 0)
+ {
+ /* -1 < x < 1, so result is +0 or -0. */
+ INSERT_WORDS(x, signbit, 0);
+ }
+ else
+ {
+ /* All relevant fraction bits are in msw, so lsw of the result is 0. */
+ INSERT_WORDS(x, signbit | (msw & ~(0x000fffff >> exponent_less_1023)), 0);
+ }
+ }
+ else if (exponent_less_1023 > 51)
+ {
+ if (exponent_less_1023 == 1024)
+ {
+ /* x is infinite, or not a number, so trigger an exception. */
+ return x + x;
+ }
+ /* All bits in the fraction fields of the msw and lsw are needed in the result. */
+ }
+ else
+ {
+ /* All fraction bits in msw are relevant. Truncate irrelevant
+ bits from lsw. */
+ INSERT_WORDS(x, msw, lsw & ~(0xffffffffu >> (exponent_less_1023 - 20)));
+ }
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_trunc.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_ilogb.c
===================================================================
--- s_ilogb.c (nonexistent)
+++ s_ilogb.c (revision 345)
@@ -0,0 +1,92 @@
+
+/* @(#)s_ilogb.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---get exponent of floating-point number
+INDEX
+ ilogb
+INDEX
+ ilogbf
+
+ANSI_SYNOPSIS
+ #include
+ int ilogb(double <[val]>);
+ int ilogbf(float <[val]>);
+
+TRAD_SYNOPSIS
+ #include
+ int ilogb(<[val]>)
+ double <[val]>;
+
+ int ilogbf(<[val]>)
+ float <[val]>;
+
+
+DESCRIPTION
+
+ All nonzero, normal numbers can be described as <[m]> *
+ 2**<[p]>. <> and <> examine the argument
+ <[val]>, and return <[p]>. The functions <> and
+ <> are similar to <> and <>, but also
+ return <[m]>.
+
+RETURNS
+
+<> and <> return the power of two used to form the
+floating-point argument. If <[val]> is <<0>>, they return <<-
+INT_MAX>> (<> is defined in limits.h). If <[val]> is
+infinite, or NaN, they return <>.
+
+PORTABILITY
+ Neither <> nor <> is required by ANSI C or by
+ the System V Interface Definition (Issue 2). */
+
+/* ilogb(double x)
+ * return the binary exponent of non-zero x
+ * ilogb(0) = 0x80000001
+ * ilogb(inf/NaN) = 0x7fffffff (no signal is raised)
+ */
+
+#include "fdlibm.h"
+#include
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ int ilogb(double x)
+#else
+ int ilogb(x)
+ double x;
+#endif
+{
+ __int32_t hx,lx,ix;
+
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff;
+ if(hx<0x00100000) {
+ if((hx|lx)==0)
+ return - INT_MAX; /* ilogb(0) = 0x80000001 */
+ else /* subnormal x */
+ if(hx==0) {
+ for (ix = -1043; lx>0; lx<<=1) ix -=1;
+ } else {
+ for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1;
+ }
+ return ix;
+ }
+ else if (hx<0x7ff00000) return (hx>>20)-1023;
+ else return INT_MAX;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_ilogb.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_lrint.c
===================================================================
--- sf_lrint.c (nonexistent)
+++ sf_lrint.c (revision 345)
@@ -0,0 +1,101 @@
+
+/* @(#)sf_lrint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * lrintf(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to lrintf(x).
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+/* Adding a float, x, to 2^23 will cause the result to be rounded based on
+ the fractional part of x, according to the implementation's current rounding
+ mode. 2^23 is the smallest float that can be represented using all 23 significant
+ digits. */
+TWO23[2]={
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+#ifdef __STDC__
+ long int lrintf(float x)
+#else
+ long int lrintf(x)
+ float x;
+#endif
+{
+ __int32_t j0,sx;
+ __uint32_t i0;
+ float t;
+ volatile float w;
+ long int result;
+
+ GET_FLOAT_WORD(i0,x);
+
+ /* Extract sign bit. */
+ sx = (i0 >> 31);
+
+ /* Extract exponent field. */
+ j0 = ((i0 & 0x7f800000) >> 23) - 127;
+
+ if (j0 < (int)(sizeof (long int) * 8) - 1)
+ {
+ if (j0 < -1)
+ return 0;
+ else if (j0 >= 23)
+ result = (long int) ((i0 & 0x7fffff) | 0x800000) << (j0 - 23);
+ else
+ {
+ w = TWO23[sx] + x;
+ t = w - TWO23[sx];
+ GET_FLOAT_WORD (i0, t);
+ /* Detect the all-zeros representation of plus and
+ minus zero, which fails the calculation below. */
+ if ((i0 & ~(1L << 31)) == 0)
+ return 0;
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ i0 &= 0x7fffff;
+ i0 |= 0x800000;
+ result = i0 >> (23 - j0);
+ }
+ }
+ else
+ {
+ return (long int) x;
+ }
+ return sx ? -result : result;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ long int lrint(double x)
+#else
+ long int lrint(x)
+ double x;
+#endif
+{
+ return lrintf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_lrint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: powl.c
===================================================================
--- powl.c (nonexistent)
+++ powl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+powl (long double x, long double y)
+{
+ return pow(x, y);
+}
+#endif
+
powl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: remainderl.c
===================================================================
--- remainderl.c (nonexistent)
+++ remainderl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+remainderl (long double x, long double p)
+{
+ return remainder(x, p);
+}
+#endif
+
remainderl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: remquol.c
===================================================================
--- remquol.c (nonexistent)
+++ remquol.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+remquol (long double x, long double y, int *quo)
+{
+ return remquo(x, y, quo);
+}
+#endif
+
remquol.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_lround.c
===================================================================
--- s_lround.c (nonexistent)
+++ s_lround.c (revision 345)
@@ -0,0 +1,109 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>, <>, <>--round to integer, to nearest
+INDEX
+ lround
+INDEX
+ lroundf
+INDEX
+ llround
+INDEX
+ llroundf
+
+ANSI_SYNOPSIS
+ #include
+ long int lround(double <[x]>);
+ long int lroundf(float <[x]>);
+ long long int llround(double <[x]>);
+ long long int llroundf(float <[x]>);
+
+DESCRIPTION
+ The <> and <> functions round their argument to the
+ nearest integer value, rounding halfway cases away from zero, regardless
+ of the current rounding direction. If the rounded value is outside the
+ range of the return type, the numeric result is unspecified (depending
+ upon the floating-point implementation, not the library). A range
+ error may occur if the magnitude of x is too large.
+
+RETURNS
+<[x]> rounded to an integral value as an integer.
+
+SEEALSO
+See the <> functions for the return being the same floating-point type
+as the argument. <>, <>.
+
+PORTABILITY
+ANSI C, POSIX
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ long int lround(double x)
+#else
+ long int lround(x)
+ double x;
+#endif
+{
+ __int32_t sign, exponent_less_1023;
+ /* Most significant word, least significant word. */
+ __uint32_t msw, lsw;
+ long int result;
+
+ EXTRACT_WORDS(msw, lsw, x);
+
+ /* Extract sign. */
+ sign = ((msw & 0x80000000) ? -1 : 1);
+ /* Extract exponent field. */
+ exponent_less_1023 = ((msw & 0x7ff00000) >> 20) - 1023;
+ msw &= 0x000fffff;
+ msw |= 0x00100000;
+
+ if (exponent_less_1023 < 20)
+ {
+ if (exponent_less_1023 < 0)
+ {
+ if (exponent_less_1023 < -1)
+ return 0;
+ else
+ return sign;
+ }
+ else
+ {
+ msw += 0x80000 >> exponent_less_1023;
+ result = msw >> (20 - exponent_less_1023);
+ }
+ }
+ else if (exponent_less_1023 < (8 * sizeof (long int)) - 1)
+ {
+ if (exponent_less_1023 >= 52)
+ result = ((long int) msw << (exponent_less_1023 - 20)) | (lsw << (exponent_less_1023 - 52));
+ else
+ {
+ unsigned int tmp = lsw + (0x80000000 >> (exponent_less_1023 - 20));
+ if (tmp < lsw)
+ ++msw;
+ result = ((long int) msw << (exponent_less_1023 - 20)) | (tmp >> (52 - exponent_less_1023));
+ }
+ }
+ else
+ /* Result is too large to be represented by a long int. */
+ return (long int)x;
+
+ return sign * result;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_lround.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: isgreater.c
===================================================================
--- isgreater.c (nonexistent)
+++ isgreater.c (revision 345)
@@ -0,0 +1,75 @@
+/* isgreater.c: This file contains no source code, but rather only the
+ * man-page comments. All of the documented "functions" are actually macros
+ * defined in math.h (q.v.). */
+/*
+FUNCTION
+<>, <>, <>, <>, <>, and <>--comparison macros
+INDEX
+ isgreater
+INDEX
+ isgreaterequal
+INDEX
+ isless
+INDEX
+ islessequal
+INDEX
+ islessgreater
+INDEX
+ isunordered
+
+ANSI_SYNOPSIS
+ #include
+ int isgreater(real-floating <[x]>, real-floating <[y]>);
+ int isgreaterequal(real-floating <[x]>, real-floating <[y]>);
+ int isless(real-floating <[x]>, real-floating <[y]>);
+ int islessequal(real-floating <[x]>, real-floating <[y]>);
+ int islessgreater(real-floating <[x]>, real-floating <[y]>);
+ int isunordered(real-floating <[x]>, real-floating <[y]>);
+
+DESCRIPTION
+<>, <>, <>, <>,
+<>, and <> are macros defined for use in
+comparing floating-point numbers without raising any floating-point
+exceptions.
+
+The relational operators (i.e. <, >, <=, and >=) support the usual mathematical
+relationships between numeric values. For any ordered pair of numeric
+values exactly one of the relationships--less, greater, and equal--is
+true. Relational operators may raise the "invalid" floating-point
+exception when argument values are NaNs. For a NaN and a numeric value, or
+for two NaNs, just the unordered relationship is true (i.e., if one or both
+of the arguments a NaN, the relationship is called unordered). The specified
+macros are quiet (non floating-point exception raising) versions of the
+relational operators, and other comparison macros that facilitate writing
+efficient code that accounts for NaNs without suffering the "invalid"
+floating-point exception. In the synopses shown, "real-floating" indicates
+that the argument is an expression of real floating type.
+
+Please note that saying that the macros do not raise floating-point
+exceptions, it is referring to the function that they are performing. It
+is certainly possible to give them an expression which causes an exception.
+For example:
+o+
+o NaN < 1.0
+ causes an "invalid" exception,
+o isless(NaN, 1.0)
+ does not, and
+o isless(NaN*0., 1.0)
+ causes an exception due to the "NaN*0.", but not from the
+resultant reduced comparison of isless(NaN, 1.0).
+o-
+
+RETURNS
+@comment Formatting note: "$@" forces a new line
+No floating-point exceptions are raised for any of the macros.@*
+The <> macro returns the value of (x) > (y).@*
+The <> macro returns the value of (x) >= (y).@*
+The <> macro returns the value of (x) < (y).@*
+The <> macro returns the value of (x) <= (y).@*
+The <> macro returns the value of (x) < (y) || (x) > (y).@*
+The <> macro returns 1 if either of its arguments is NaN and 0 otherwise.
+
+PORTABILITY
+C99, POSIX.
+
+*/
isgreater.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_pow10.c
===================================================================
--- s_pow10.c (nonexistent)
+++ s_pow10.c (revision 345)
@@ -0,0 +1,79 @@
+/* @(#)s_pow10.c 5.1 93/09/24 */
+/* Modification from s_exp10.c Yaakov Selkowitz 2007. */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---exponential
+INDEX
+ pow10
+INDEX
+ pow10f
+
+ANSI_SYNOPSIS
+ #include
+ double pow10(double <[x]>);
+ float pow10f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include
+ double pow10(<[x]>);
+ double <[x]>;
+
+ float pow10f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <> and <> calculate 10 ^ <[x]>, that is,
+ @ifnottex
+ 10 raised to the power <[x]>.
+ @end ifnottex
+ @tex
+ $10^x$
+ @end tex
+
+ You can use the (non-ANSI) function <> to specify
+ error handling for these functions.
+
+RETURNS
+ On success, <> and <> return the calculated value.
+ If the result underflows, the returned value is <<0>>. If the
+ result overflows, the returned value is <>. In
+ either case, <> is set to <>.
+
+PORTABILITY
+ <> and <> are GNU extensions.
+*/
+
+/*
+ * wrapper pow10(x)
+ */
+
+#undef pow10
+#include "fdlibm.h"
+#include
+#include
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double pow10(double x) /* wrapper pow10 */
+#else
+ double pow10(x) /* wrapper pow10 */
+ double x;
+#endif
+{
+ return pow(10.0, x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
s_pow10.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_scalbn.c
===================================================================
--- sf_scalbn.c (nonexistent)
+++ sf_scalbn.c (revision 345)
@@ -0,0 +1,86 @@
+/* sf_scalbn.c -- float version of s_scalbn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+#include
+#include
+
+#if INT_MAX > 50000
+#define OVERFLOW_INT 50000
+#else
+#define OVERFLOW_INT 30000
+#endif
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two25 = 3.355443200e+07, /* 0x4c000000 */
+twom25 = 2.9802322388e-08, /* 0x33000000 */
+huge = 1.0e+30,
+tiny = 1.0e-30;
+
+#ifdef __STDC__
+ float scalbnf (float x, int n)
+#else
+ float scalbnf (x,n)
+ float x; int n;
+#endif
+{
+ __int32_t k,ix;
+ __uint32_t hx;
+
+ GET_FLOAT_WORD(ix,x);
+ hx = ix&0x7fffffff;
+ k = hx>>23; /* extract exponent */
+ if (FLT_UWORD_IS_ZERO(hx))
+ return x;
+ if (!FLT_UWORD_IS_FINITE(hx))
+ return x+x; /* NaN or Inf */
+ if (FLT_UWORD_IS_SUBNORMAL(hx)) {
+ x *= two25;
+ GET_FLOAT_WORD(ix,x);
+ k = ((ix&0x7f800000)>>23) - 25;
+ if (n< -50000) return tiny*x; /*underflow*/
+ }
+ k = k+n;
+ if (k > FLT_LARGEST_EXP) return huge*copysignf(huge,x); /* overflow */
+ if (k > 0) /* normal result */
+ {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
+ if (k < FLT_SMALLEST_EXP) {
+ if (n > OVERFLOW_INT) /* in case integer overflow in n+k */
+ return huge*copysignf(huge,x); /*overflow*/
+ else return tiny*copysignf(tiny,x); /*underflow*/
+ }
+ k += 25; /* subnormal result */
+ SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
+ return x*twom25;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double scalbn(double x, int n)
+#else
+ double scalbn(x,n)
+ double x;
+ int n;
+#endif
+{
+ return (double) scalbnf((float) x, n);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_scalbn.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_isinf.c
===================================================================
--- s_isinf.c (nonexistent)
+++ s_isinf.c (revision 345)
@@ -0,0 +1,29 @@
+/*
+ * isinf(x) returns 1 if x is infinity, else 0;
+ * no branching!
+ *
+ * isinf is a macro in the C99 standard. It was previously
+ * implemented as a function by newlib and is declared as such in
+ * . Newlib supplies it here as a function if the user
+ * chooses to use or needs to link older code compiled with the
+ * previous declaration.
+ */
+
+#include "fdlibm.h"
+#include
+
+#ifndef _DOUBLE_IS_32BITS
+
+int
+_DEFUN (isinf, (x),
+ double x)
+{
+ __int32_t hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff;
+ hx |= (__uint32_t)(lx|(-lx))>>31;
+ hx = 0x7ff00000 - hx;
+ return 1 - (int)((__uint32_t)(hx|(-hx))>>31);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_isinf.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: log1pl.c
===================================================================
--- log1pl.c (nonexistent)
+++ log1pl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+log1pl (long double x)
+{
+ return log1p(x);
+}
+#endif
+
log1pl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tanl.c
===================================================================
--- tanl.c (nonexistent)
+++ tanl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+tanl (long double x)
+{
+ return tan(x);
+}
+#endif
+
tanl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_modf.c
===================================================================
--- s_modf.c (nonexistent)
+++ s_modf.c (revision 345)
@@ -0,0 +1,131 @@
+
+/* @(#)s_modf.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---split fractional and integer parts
+
+INDEX
+ modf
+INDEX
+ modff
+
+ANSI_SYNOPSIS
+ #include
+ double modf(double <[val]>, double *<[ipart]>);
+ float modff(float <[val]>, float *<[ipart]>);
+
+TRAD_SYNOPSIS
+ #include
+ double modf(<[val]>, <[ipart]>)
+ double <[val]>;
+ double *<[ipart]>;
+
+ float modff(<[val]>, <[ipart]>)
+ float <[val]>;
+ float *<[ipart]>;
+
+DESCRIPTION
+ <> splits the double <[val]> apart into an integer part
+ and a fractional part, returning the fractional part and
+ storing the integer part in <<*<[ipart]>>>. No rounding
+ whatsoever is done; the sum of the integer and fractional
+ parts is guaranteed to be exactly equal to <[val]>. That
+ is, if <[realpart]> = modf(<[val]>, &<[intpart]>); then
+ `<<<[realpart]>+<[intpart]>>>' is the same as <[val]>.
+ <> is identical, save that it takes and returns
+ <> rather than <> values.
+
+RETURNS
+ The fractional part is returned. Each result has the same
+ sign as the supplied argument <[val]>.
+
+PORTABILITY
+ <> is ANSI C. <> is an extension.
+
+QUICKREF
+ modf ansi pure
+ modff - pure
+
+*/
+
+/*
+ * modf(double x, double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ * Bit twiddling.
+ *
+ * Exception:
+ * No exception.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double one = 1.0;
+#else
+static double one = 1.0;
+#endif
+
+#ifdef __STDC__
+ double modf(double x, double *iptr)
+#else
+ double modf(x, iptr)
+ double x,*iptr;
+#endif
+{
+ __int32_t i0,i1,j0;
+ __uint32_t i;
+ EXTRACT_WORDS(i0,i1,x);
+ j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
+ if(j0<20) { /* integer part in high x */
+ if(j0<0) { /* |x|<1 */
+ INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */
+ return x;
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) { /* x is integral */
+ __uint32_t high;
+ *iptr = x;
+ GET_HIGH_WORD(high,x);
+ INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */
+ return x;
+ } else {
+ INSERT_WORDS(*iptr,i0&(~i),0);
+ return x - *iptr;
+ }
+ }
+ } else if (j0>51) { /* no fraction part */
+ __uint32_t high;
+ *iptr = x*one;
+ GET_HIGH_WORD(high,x);
+ INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */
+ return x;
+ } else { /* fraction part in low x */
+ i = ((__uint32_t)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) { /* x is integral */
+ __uint32_t high;
+ *iptr = x;
+ GET_HIGH_WORD(high,x);
+ INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */
+ return x;
+ } else {
+ INSERT_WORDS(*iptr,i0,i1&(~i));
+ return x - *iptr;
+ }
+ }
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_modf.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: atanhl.c
===================================================================
--- atanhl.c (nonexistent)
+++ atanhl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+atanhl (long double x)
+{
+ return atanh(x);
+}
+#endif
+
atanhl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: copysignl.c
===================================================================
--- copysignl.c (nonexistent)
+++ copysignl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+copysignl (long double x, long double y)
+{
+ return copysign(x, y);
+}
+#endif
+
copysignl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ilogbl.c
===================================================================
--- ilogbl.c (nonexistent)
+++ ilogbl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+int
+ilogbl (long double x)
+{
+ return ilogb(x);
+}
+#endif
+
ilogbl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_cbrt.c
===================================================================
--- s_cbrt.c (nonexistent)
+++ s_cbrt.c (revision 345)
@@ -0,0 +1,123 @@
+
+/* @(#)s_cbrt.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+FUNCTION
+ <>, <>---cube root
+
+INDEX
+ cbrt
+INDEX
+ cbrtf
+
+ANSI_SYNOPSIS
+ #include
+ double cbrt(double <[x]>);
+ float cbrtf(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include
+ double cbrt(<[x]>);
+ float cbrtf(<[x]>);
+
+DESCRIPTION
+ <> computes the cube root of the argument.
+
+RETURNS
+ The cube root is returned.
+
+PORTABILITY
+ <> is in System V release 4. <> is an extension.
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+/* cbrt(x)
+ * Return cube root of x
+ */
+#ifdef __STDC__
+static const __uint32_t
+#else
+static __uint32_t
+#endif
+ B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */
+ B2 = 696219795; /* B2 = (664-0.03306235651)*2**20 */
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+C = 5.42857142857142815906e-01, /* 19/35 = 0x3FE15F15, 0xF15F15F1 */
+D = -7.05306122448979611050e-01, /* -864/1225 = 0xBFE691DE, 0x2532C834 */
+E = 1.41428571428571436819e+00, /* 99/70 = 0x3FF6A0EA, 0x0EA0EA0F */
+F = 1.60714285714285720630e+00, /* 45/28 = 0x3FF9B6DB, 0x6DB6DB6E */
+G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
+
+#ifdef __STDC__
+ double cbrt(double x)
+#else
+ double cbrt(x)
+ double x;
+#endif
+{
+ __int32_t hx;
+ double r,s,t=0.0,w;
+ __uint32_t sign;
+ __uint32_t high,low;
+
+ GET_HIGH_WORD(hx,x);
+ sign=hx&0x80000000; /* sign= sign(x) */
+ hx ^=sign;
+ if(hx>=0x7ff00000) return(x+x); /* cbrt(NaN,INF) is itself */
+ GET_LOW_WORD(low,x);
+ if((hx|low)==0)
+ return(x); /* cbrt(0) is itself */
+
+ SET_HIGH_WORD(x,hx); /* x <- |x| */
+ /* rough cbrt to 5 bits */
+ if(hx<0x00100000) /* subnormal number */
+ {SET_HIGH_WORD(t,0x43500000); /* set t= 2**54 */
+ t*=x; GET_HIGH_WORD(high,t); SET_HIGH_WORD(t,high/3+B2);
+ }
+ else
+ SET_HIGH_WORD(t,hx/3+B1);
+
+
+ /* new cbrt to 23 bits, may be implemented in single precision */
+ r=t*t/x;
+ s=C+r*t;
+ t*=G+F/(s+E+D/s);
+
+ /* chopped to 20 bits and make it larger than cbrt(x) */
+ GET_HIGH_WORD(high,t);
+ INSERT_WORDS(t,high+0x00000001,0);
+
+
+ /* one step newton iteration to 53 bits with error less than 0.667 ulps */
+ s=t*t; /* t*t is exact */
+ r=x/s;
+ w=t+t;
+ r=(r-t)/(w+r); /* r-s is exact */
+ t=t+t*r;
+
+ /* retore the sign bit */
+ GET_HIGH_WORD(high,t);
+ SET_HIGH_WORD(t,high|sign);
+ return(t);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_cbrt.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sinhl.c
===================================================================
--- sinhl.c (nonexistent)
+++ sinhl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+sinhl (long double x)
+{
+ return sinh(x);
+}
+#endif
+
sinhl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_modf.c
===================================================================
--- sf_modf.c (nonexistent)
+++ sf_modf.c (revision 345)
@@ -0,0 +1,73 @@
+/* sf_modf.c -- float version of s_modf.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0;
+#else
+static float one = 1.0;
+#endif
+
+#ifdef __STDC__
+ float modff(float x, float *iptr)
+#else
+ float modff(x, iptr)
+ float x,*iptr;
+#endif
+{
+ __int32_t i0,j0;
+ __uint32_t i;
+ GET_FLOAT_WORD(i0,x);
+ j0 = ((i0>>23)&0xff)-0x7f; /* exponent of x */
+ if(j0<23) { /* integer part in x */
+ if(j0<0) { /* |x|<1 */
+ SET_FLOAT_WORD(*iptr,i0&0x80000000); /* *iptr = +-0 */
+ return x;
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) { /* x is integral */
+ __uint32_t ix;
+ *iptr = x;
+ GET_FLOAT_WORD(ix,x);
+ SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */
+ return x;
+ } else {
+ SET_FLOAT_WORD(*iptr,i0&(~i));
+ return x - *iptr;
+ }
+ }
+ } else { /* no fraction part */
+ __uint32_t ix;
+ *iptr = x*one;
+ GET_FLOAT_WORD(ix,x);
+ SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */
+ return x;
+ }
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double modf(double x, double *iptr)
+#else
+ double modf(x, iptr)
+ double x,*iptr;
+#endif
+{
+ return (double) modff((float) x, (float *) iptr);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_modf.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_fmax.c
===================================================================
--- s_fmax.c (nonexistent)
+++ s_fmax.c (revision 345)
@@ -0,0 +1,52 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+/*
+FUNCTION
+<>, <>--maximum
+INDEX
+ fmax
+INDEX
+ fmaxf
+
+ANSI_SYNOPSIS
+ #include
+ double fmax(double <[x]>, double <[y]>);
+ float fmaxf(float <[x]>, float <[y]>);
+
+DESCRIPTION
+The <> functions determine the maximum numeric value of their arguments.
+NaN arguments are treated as missing data: if one argument is a NaN and the
+other numeric, then the <> functions choose the numeric value.
+
+RETURNS
+The <> functions return the maximum numeric value of their arguments.
+
+PORTABILITY
+ANSI C, POSIX.
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fmax(double x, double y)
+#else
+ double fmax(x,y)
+ double x;
+ double y;
+#endif
+{
+ if (__fpclassifyd(x) == FP_NAN)
+ return y;
+ if (__fpclassifyd(y) == FP_NAN)
+ return x;
+
+ return x > y ? x : y;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_fmax.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: scalbnl.c
===================================================================
--- scalbnl.c (nonexistent)
+++ scalbnl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+scalbnl (long double x, int n)
+{
+ return scalbn(x, n);
+}
+#endif
+
scalbnl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_cbrt.c
===================================================================
--- sf_cbrt.c (nonexistent)
+++ sf_cbrt.c (revision 345)
@@ -0,0 +1,94 @@
+/* sf_cbrt.c -- float version of s_cbrt.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+#include "fdlibm.h"
+
+/* cbrtf(x)
+ * Return cube root of x
+ */
+#ifdef __STDC__
+static const __uint32_t
+#else
+static __uint32_t
+#endif
+ B1 = 709958130, /* B1 = (84+2/3-0.03306235651)*2**23 */
+ B2 = 642849266; /* B2 = (76+2/3-0.03306235651)*2**23 */
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+C = 5.4285717010e-01, /* 19/35 = 0x3f0af8b0 */
+D = -7.0530611277e-01, /* -864/1225 = 0xbf348ef1 */
+E = 1.4142856598e+00, /* 99/70 = 0x3fb50750 */
+F = 1.6071428061e+00, /* 45/28 = 0x3fcdb6db */
+G = 3.5714286566e-01; /* 5/14 = 0x3eb6db6e */
+
+#ifdef __STDC__
+ float cbrtf(float x)
+#else
+ float cbrtf(x)
+ float x;
+#endif
+{
+ __int32_t hx;
+ float r,s,t;
+ __uint32_t sign;
+ __uint32_t high;
+
+ GET_FLOAT_WORD(hx,x);
+ sign=hx&0x80000000; /* sign= sign(x) */
+ hx ^=sign;
+ if(!FLT_UWORD_IS_FINITE(hx))
+ return(x+x); /* cbrt(NaN,INF) is itself */
+ if(FLT_UWORD_IS_ZERO(hx))
+ return(x); /* cbrt(0) is itself */
+
+ SET_FLOAT_WORD(x,hx); /* x <- |x| */
+ /* rough cbrt to 5 bits */
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) /* subnormal number */
+ {SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */
+ t*=x; GET_FLOAT_WORD(high,t); SET_FLOAT_WORD(t,high/3+B2);
+ }
+ else
+ SET_FLOAT_WORD(t,hx/3+B1);
+
+
+ /* new cbrt to 23 bits */
+ r=t*t/x;
+ s=C+r*t;
+ t*=G+F/(s+E+D/s);
+
+ /* retore the sign bit */
+ GET_FLOAT_WORD(high,t);
+ SET_FLOAT_WORD(t,high|sign);
+ return(t);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double cbrt(double x)
+#else
+ double cbrt(x)
+ double x;
+#endif
+{
+ return (double) cbrtf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_cbrt.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_fmax.c
===================================================================
--- sf_fmax.c (nonexistent)
+++ sf_fmax.c (revision 345)
@@ -0,0 +1,38 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float fmaxf(float x, float y)
+#else
+ float fmaxf(x,y)
+ float x;
+ float y;
+#endif
+{
+ if (__fpclassifyf(x) == FP_NAN)
+ return y;
+ if (__fpclassifyf(y) == FP_NAN)
+ return x;
+
+ return x > y ? x : y;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fmax(double x, double y)
+#else
+ double fmax(x,y)
+ double x;
+ double y;
+#endif
+{
+ return (double) fmaxf((float) x, (float) y);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_fmax.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_matherr.c
===================================================================
--- s_matherr.c (nonexistent)
+++ s_matherr.c (revision 345)
@@ -0,0 +1,123 @@
+
+/* @(#)s_matherr.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+
+FUNCTION
+ <>---modifiable math error handler
+
+INDEX
+ matherr
+
+ANSI_SYNOPSIS
+ #include
+ int matherr(struct exception *<[e]>);
+
+TRAD_SYNOPSIS
+ #include
+ int matherr(*<[e]>)
+ struct exception *<[e]>;
+
+DESCRIPTION
+<> is called whenever a math library function generates an error.
+You can replace <> by your own subroutine to customize
+error treatment. The customized <> must return 0 if
+it fails to resolve the error, and non-zero if the error is resolved.
+
+When <> returns a nonzero value, no error message is printed
+and the value of <> is not modified. You can accomplish either
+or both of these things in your own <> using the information
+passed in the structure <<*<[e]>>>.
+
+This is the <> structure (defined in `<>'):
+. struct exception {
+. int type;
+. char *name;
+. double arg1, arg2, retval;
+. int err;
+. };
+
+The members of the exception structure have the following meanings:
+o+
+o type
+The type of mathematical error that occured; macros encoding error
+types are also defined in `<>'.
+
+o name
+a pointer to a null-terminated string holding the
+name of the math library function where the error occurred.
+
+o arg1, arg2
+The arguments which caused the error.
+
+o retval
+The error return value (what the calling function will return).
+
+o err
+If set to be non-zero, this is the new value assigned to <>.
+o-
+
+The error types defined in `<>' represent possible mathematical
+errors as follows:
+
+o+
+o DOMAIN
+An argument was not in the domain of the function; e.g. <>.
+
+o SING
+The requested calculation would result in a singularity; e.g. <>
+
+o OVERFLOW
+A calculation would produce a result too large to represent; e.g.
+<>.
+
+o UNDERFLOW
+A calculation would produce a result too small to represent; e.g.
+<>.
+
+o TLOSS
+Total loss of precision. The result would have no significant digits;
+e.g. <>.
+
+o PLOSS
+Partial loss of precision.
+o-
+
+
+RETURNS
+The library definition for <> returns <<0>> in all cases.
+
+You can change the calling function's result from a customized <>
+by modifying <retval>>, which propagates backs to the caller.
+
+If <> returns <<0>> (indicating that it was not able to resolve
+the error) the caller sets <> to an appropriate value, and prints
+an error message.
+
+PORTABILITY
+<> is not ANSI C.
+*/
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ int matherr(struct exception *x)
+#else
+ int matherr(x)
+ struct exception *x;
+#endif
+{
+ int n=0;
+ if(x->arg1!=x->arg1) return 0;
+ return n;
+}
s_matherr.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_fpclassify.c
===================================================================
--- s_fpclassify.c (nonexistent)
+++ s_fpclassify.c (revision 345)
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002, 2007 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+int
+__fpclassifyd (double x)
+{
+ __uint32_t msw, lsw;
+
+ EXTRACT_WORDS(msw,lsw,x);
+
+ if ((msw == 0x00000000 && lsw == 0x00000000) ||
+ (msw == 0x80000000 && lsw == 0x00000000))
+ return FP_ZERO;
+ else if ((msw >= 0x00100000 && msw <= 0x7fefffff) ||
+ (msw >= 0x80100000 && msw <= 0xffefffff))
+ return FP_NORMAL;
+ else if ((msw >= 0x00000000 && msw <= 0x000fffff) ||
+ (msw >= 0x80000000 && msw <= 0x800fffff))
+ /* zero is already handled above */
+ return FP_SUBNORMAL;
+ else if ((msw == 0x7ff00000 && lsw == 0x00000000) ||
+ (msw == 0xfff00000 && lsw == 0x00000000))
+ return FP_INFINITE;
+ else
+ return FP_NAN;
+}
s_fpclassify.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_nextafter.c
===================================================================
--- sf_nextafter.c (nonexistent)
+++ sf_nextafter.c (revision 345)
@@ -0,0 +1,79 @@
+/* sf_nextafter.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float nextafterf(float x, float y)
+#else
+ float nextafterf(x,y)
+ float x,y;
+#endif
+{
+ __int32_t hx,hy,ix,iy;
+
+ GET_FLOAT_WORD(hx,x);
+ GET_FLOAT_WORD(hy,y);
+ ix = hx&0x7fffffff; /* |x| */
+ iy = hy&0x7fffffff; /* |y| */
+
+ if(FLT_UWORD_IS_NAN(ix) ||
+ FLT_UWORD_IS_NAN(iy))
+ return x+y;
+ if(x==y) return x; /* x=y, return x */
+ if(FLT_UWORD_IS_ZERO(ix)) { /* x == 0 */
+ SET_FLOAT_WORD(x,(hy&0x80000000)|FLT_UWORD_MIN);
+ y = x*x;
+ if(y==x) return y; else return x; /* raise underflow flag */
+ }
+ if(hx>=0) { /* x > 0 */
+ if(hx>hy) { /* x > y, x -= ulp */
+ hx -= 1;
+ } else { /* x < y, x += ulp */
+ hx += 1;
+ }
+ } else { /* x < 0 */
+ if(hy>=0||hx>hy){ /* x < y, x -= ulp */
+ hx -= 1;
+ } else { /* x > y, x += ulp */
+ hx += 1;
+ }
+ }
+ hy = hx&0x7f800000;
+ if(hy>FLT_UWORD_MAX) return x+x; /* overflow */
+ if(hy<0x00800000) { /* underflow */
+ y = x*x;
+ if(y!=x) { /* raise underflow flag */
+ SET_FLOAT_WORD(y,hx);
+ return y;
+ }
+ }
+ SET_FLOAT_WORD(x,hx);
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double nextafter(double x, double y)
+#else
+ double nextafter(x,y)
+ double x,y;
+#endif
+{
+ return (double) nextafterf((float) x, (float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_nextafter.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: erfl.c
===================================================================
--- erfl.c (nonexistent)
+++ erfl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+erfl (long double x)
+{
+ return erf(x);
+}
+#endif
+
erfl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: scalblnl.c
===================================================================
--- scalblnl.c (nonexistent)
+++ scalblnl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+scalblnl (long double x, long n)
+{
+ return scalbln(x, n);
+}
+#endif
+
scalblnl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_fma.c
===================================================================
--- sf_fma.c (nonexistent)
+++ sf_fma.c (revision 345)
@@ -0,0 +1,42 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float fmaf(float x, float y, float z)
+#else
+ float fmaf(x,y,z)
+ float x;
+ float y;
+ float z;
+#endif
+{
+ /* NOTE: The floating-point exception behavior of this is not as
+ * required. But since the basic function is not really done properly,
+ * it is not worth bothering to get the exceptions right, either. */
+ /* Let the implementation handle this. */ /* <= NONSENSE! */
+ /* In floating-point implementations in which double is larger than float,
+ * computing as double should provide the desired function. Otherwise,
+ * the behavior will not be as specified in the standards. */
+ return (float) (((double) x * (double) y) + (double) z);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fma(double x, double y, double z)
+#else
+ double fma(x,y,z)
+ double x;
+ double y;
+ double z;
+#endif
+{
+ return (double) fmaf((float) x, (float) y, (float) z);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_fma.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: atanl.c
===================================================================
--- atanl.c (nonexistent)
+++ atanl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+atanl (long double x)
+{
+ return atan(x);
+}
+#endif
+
atanl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_remquo.c
===================================================================
--- sf_remquo.c (nonexistent)
+++ sf_remquo.c (revision 345)
@@ -0,0 +1,130 @@
+/* Adapted for Newlib, 2009. (Allow for int < 32 bits; return *quo=0 during
+ * errors to make test scripts easier.) */
+/* @(#)e_fmod.c 1.3 95/01/18 */
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include
+#include "fdlibm.h"
+
+/* For quotient, return either all 31 bits that can from calculation (using
+ * int32_t), or as many as can fit into an int that is smaller than 32 bits. */
+#if INT_MAX > 0x7FFFFFFFL
+ #define QUO_MASK 0x7FFFFFFF
+# else
+ #define QUO_MASK INT_MAX
+#endif
+
+static const float Zero[] = {0.0, -0.0,};
+
+/*
+ * Return the IEEE remainder and set *quo to the last n bits of the
+ * quotient, rounded to the nearest integer. We choose n=31--if that many fit--
+ * we wind up computing all the integer bits of the quotient anyway as
+ * a side-effect of computing the remainder by the shift and subtract
+ * method. In practice, this is far more bits than are needed to use
+ * remquo in reduction algorithms.
+ */
+float
+remquof(float x, float y, int *quo)
+{
+ __int32_t n,hx,hy,hz,ix,iy,sx,i;
+ __uint32_t q,sxy;
+
+ GET_FLOAT_WORD(hx,x);
+ GET_FLOAT_WORD(hy,y);
+ sxy = (hx ^ hy) & 0x80000000;
+ sx = hx&0x80000000; /* sign of x */
+ hx ^=sx; /* |x| */
+ hy &= 0x7fffffff; /* |y| */
+
+ /* purge off exception values */
+ if(hy==0||hx>=0x7f800000||hy>0x7f800000) { /* y=0,NaN;or x not finite */
+ *quo = 0; /* Not necessary, but return consistent value */
+ return (x*y)/(x*y);
+ }
+ if(hx>31]; /* |x|=|y| return x*0*/
+ }
+
+ /* determine ix = ilogb(x) */
+ if(hx<0x00800000) { /* subnormal x */
+ for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1;
+ } else ix = (hx>>23)-127;
+
+ /* determine iy = ilogb(y) */
+ if(hy<0x00800000) { /* subnormal y */
+ for (iy = -126,i=(hy<<8); i>0; i<<=1) iy -=1;
+ } else iy = (hy>>23)-127;
+
+ /* set up {hx,lx}, {hy,ly} and align y to x */
+ if(ix >= -126)
+ hx = 0x00800000|(0x007fffff&hx);
+ else { /* subnormal x, shift x to normal */
+ n = -126-ix;
+ hx <<= n;
+ }
+ if(iy >= -126)
+ hy = 0x00800000|(0x007fffff&hy);
+ else { /* subnormal y, shift y to normal */
+ n = -126-iy;
+ hy <<= n;
+ }
+
+ /* fix point fmod */
+ n = ix - iy;
+ q = 0;
+ while(n--) {
+ hz=hx-hy;
+ if(hz<0) hx = hx << 1;
+ else {hx = hz << 1; q++;}
+ q <<= 1;
+ }
+ hz=hx-hy;
+ if(hz>=0) {hx=hz;q++;}
+
+ /* convert back to floating value and restore the sign */
+ if(hx==0) { /* return sign(x)*0 */
+ *quo = (sxy ? -q : q);
+ return Zero[(__uint32_t)sx>>31];
+ }
+ while(hx<0x00800000) { /* normalize x */
+ hx <<= 1;
+ iy -= 1;
+ }
+ if(iy>= -126) { /* normalize output */
+ hx = ((hx-0x00800000)|((iy+127)<<23));
+ } else { /* subnormal output */
+ n = -126 - iy;
+ hx >>= n;
+ }
+fixup:
+ SET_FLOAT_WORD(x,hx);
+ y = fabsf(y);
+ if (y < 0x1p-125f) {
+ if (x+x>y || (x+x==y && (q & 1))) {
+ q++;
+ x-=y;
+ }
+ } else if (x>0.5f*y || (x==0.5f*y && (q & 1))) {
+ q++;
+ x-=y;
+ }
+ GET_FLOAT_WORD(hx,x);
+ SET_FLOAT_WORD(x,hx^sx);
+ q &= 0x7fffffff;
+ *quo = (sxy ? -q : q);
+ return x;
+}
sf_remquo.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_log1p.c
===================================================================
--- s_log1p.c (nonexistent)
+++ s_log1p.c (revision 345)
@@ -0,0 +1,217 @@
+
+/* @(#)s_log1p.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+<>, <>---log of <<1 + <[x]>>>
+
+INDEX
+ log1p
+INDEX
+ log1pf
+
+ANSI_SYNOPSIS
+ #include
+ double log1p(double <[x]>);
+ float log1pf(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include
+ double log1p(<[x]>)
+ double <[x]>;
+
+ float log1pf(<[x]>)
+ float <[x]>;
+
+DESCRIPTION
+<> calculates
+@tex
+$ln(1+x)$,
+@end tex
+the natural logarithm of <<1+<[x]>>>. You can use <> rather
+than `<)>>' for greater precision when <[x]> is very
+small.
+
+<> calculates the same thing, but accepts and returns
+<> values rather than <>.
+
+RETURNS
+<> returns a <>, the natural log of <<1+<[x]>>>.
+<> returns a <>, the natural log of <<1+<[x]>>>.
+
+PORTABILITY
+Neither <> nor <> is required by ANSI C or by the System V
+Interface Definition (Issue 2).
+
+*/
+
+/* double log1p(double x)
+ *
+ * Method :
+ * 1. Argument Reduction: find k and f such that
+ * 1+x = 2^k * (1+f),
+ * where sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ * Note. If k=0, then f=x is exact. However, if k!=0, then f
+ * may not be representable exactly. In that case, a correction
+ * term is need. Let u=1+x rounded. Let c = (1+x)-u, then
+ * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u),
+ * and add back the correction term c/u.
+ * (Note: when x > 2**53, one can simply return log(x))
+ *
+ * 2. Approximation of log1p(f).
+ * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ * = 2s + s*R
+ * We use a special Reme algorithm on [0,0.1716] to generate
+ * a polynomial of degree 14 to approximate R The maximum error
+ * of this polynomial approximation is bounded by 2**-58.45. In
+ * other words,
+ * 2 4 6 8 10 12 14
+ * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s
+ * (the values of Lp1 to Lp7 are listed in the program)
+ * and
+ * | 2 14 | -58.45
+ * | Lp1*s +...+Lp7*s - R(z) | <= 2
+ * | |
+ * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ * In order to guarantee error in log below 1ulp, we compute log
+ * by
+ * log1p(f) = f - (hfsq - s*(hfsq+R)).
+ *
+ * 3. Finally, log1p(x) = k*ln2 + log1p(f).
+ * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ * Here ln2 is split into two floating point number:
+ * ln2_hi + ln2_lo,
+ * where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ * log1p(x) is NaN with signal if x < -1 (including -INF) ;
+ * log1p(+INF) is +INF; log1p(-1) is -INF with signal;
+ * log1p(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ *
+ * Note: Assuming log() return accurate answer, the following
+ * algorithm can be used to compute log1p(x) to within a few ULP:
+ *
+ * u = 1+x;
+ * if(u==1.0) return x ; else
+ * return log(u)*(x/(u-1.0));
+ *
+ * See HP-15C Advanced Functions Handbook, p.193.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
+ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
+two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */
+Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
+Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */
+Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */
+Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
+Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */
+Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */
+Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
+
+#ifdef __STDC__
+static const double zero = 0.0;
+#else
+static double zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ double log1p(double x)
+#else
+ double log1p(x)
+ double x;
+#endif
+{
+ double hfsq,f,c,s,z,R,u;
+ __int32_t k,hx,hu,ax;
+
+ GET_HIGH_WORD(hx,x);
+ ax = hx&0x7fffffff;
+
+ k = 1;
+ if (hx < 0x3FDA827A) { /* x < 0.41422 */
+ if(ax>=0x3ff00000) { /* x <= -1.0 */
+ if(x==-1.0) return -two54/zero; /* log1p(-1)=+inf */
+ else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
+ }
+ if(ax<0x3e200000) { /* |x| < 2**-29 */
+ if(two54+x>zero /* raise inexact */
+ &&ax<0x3c900000) /* |x| < 2**-54 */
+ return x;
+ else
+ return x - x*x*0.5;
+ }
+ if(hx>0||hx<=((__int32_t)0xbfd2bec3)) {
+ k=0;f=x;hu=1;} /* -0.2929= 0x7ff00000) return x+x;
+ if(k!=0) {
+ if(hx<0x43400000) {
+ u = 1.0+x;
+ GET_HIGH_WORD(hu,u);
+ k = (hu>>20)-1023;
+ c = (k>0)? 1.0-(u-x):x-(u-1.0);/* correction term */
+ c /= u;
+ } else {
+ u = x;
+ GET_HIGH_WORD(hu,u);
+ k = (hu>>20)-1023;
+ c = 0;
+ }
+ hu &= 0x000fffff;
+ if(hu<0x6a09e) {
+ SET_HIGH_WORD(u,hu|0x3ff00000); /* normalize u */
+ } else {
+ k += 1;
+ SET_HIGH_WORD(u,hu|0x3fe00000); /* normalize u/2 */
+ hu = (0x00100000-hu)>>2;
+ }
+ f = u-1.0;
+ }
+ hfsq=0.5*f*f;
+ if(hu==0) { /* |f| < 2**-20 */
+ if(f==zero) { if(k==0) return zero;
+ else {c += k*ln2_lo; return k*ln2_hi+c;}}
+ R = hfsq*(1.0-0.66666666666666666*f);
+ if(k==0) return f-R; else
+ return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+ }
+ s = f/(2.0+f);
+ z = s*s;
+ R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
+ if(k==0) return f-(hfsq-s*(hfsq+R)); else
+ return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_log1p.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: cbrtl.c
===================================================================
--- cbrtl.c (nonexistent)
+++ cbrtl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+cbrtl (long double x)
+{
+ return cbrt(x);
+}
+#endif
+
cbrtl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_lrint.c
===================================================================
--- s_lrint.c (nonexistent)
+++ s_lrint.c (revision 345)
@@ -0,0 +1,145 @@
+
+/* @(#)s_lrint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>, <>, <>--round to integer
+INDEX
+ lrint
+INDEX
+ lrintf
+INDEX
+ llrint
+INDEX
+ llrintf
+
+ANSI_SYNOPSIS
+ #include
+ long int lrint(double <[x]>);
+ long int lrintf(float <[x]>);
+ long long int llrint(double <[x]>);
+ long long int llrintf(float <[x]>);
+
+DESCRIPTION
+The <> and <> functions round their argument to the nearest
+integer value, using the current rounding direction. If the rounded value is
+outside the range of the return type, the numeric result is unspecified. A
+range error may occur if the magnitude of <[x]> is too large.
+The "inexact" floating-point exception is raised in implementations that
+support it when the result differs in value from the argument (i.e., when
+a fraction actually has been truncated).
+
+RETURNS
+<[x]> rounded to an integral value, using the current rounding direction.
+
+SEEALSO
+<>
+
+PORTABILITY
+ANSI C, POSIX
+
+*/
+
+/*
+ * lrint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to lrint(x).
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+
+/* Adding a double, x, to 2^52 will cause the result to be rounded based on
+ the fractional part of x, according to the implementation's current rounding
+ mode. 2^52 is the smallest double that can be represented using all 52 significant
+ digits. */
+TWO52[2]={
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+#ifdef __STDC__
+ long int lrint(double x)
+#else
+ long int lrint(x)
+ double x;
+#endif
+{
+ __int32_t i0,j0,sx;
+ __uint32_t i1;
+ double t;
+ volatile double w;
+ long int result;
+
+ EXTRACT_WORDS(i0,i1,x);
+
+ /* Extract sign bit. */
+ sx = (i0>>31)&1;
+
+ /* Extract exponent field. */
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+
+ if(j0 < 20)
+ {
+ if(j0 < -1)
+ return 0;
+ else
+ {
+ w = TWO52[sx] + x;
+ t = w - TWO52[sx];
+ GET_HIGH_WORD(i0, t);
+ /* Detect the all-zeros representation of plus and
+ minus zero, which fails the calculation below. */
+ if ((i0 & ~(1L << 31)) == 0)
+ return 0;
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+ i0 &= 0x000fffff;
+ i0 |= 0x00100000;
+ result = i0 >> (20 - j0);
+ }
+ }
+ else if (j0 < (int)(8 * sizeof (long int)) - 1)
+ {
+ if (j0 >= 52)
+ result = ((long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) |
+ (i1 << (j0 - 52));
+ else
+ {
+ w = TWO52[sx] + x;
+ t = w - TWO52[sx];
+ EXTRACT_WORDS (i0, i1, t);
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+ i0 &= 0x000fffff;
+ i0 |= 0x00100000;
+ result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
+ }
+ }
+ else
+ {
+ return (long int) x;
+ }
+
+ return sx ? -result : result;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_lrint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: llrintl.c
===================================================================
--- llrintl.c (nonexistent)
+++ llrintl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long long int
+llrintl (long double x)
+{
+ return llrint(x);
+}
+#endif
+
llrintl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: nanl.c
===================================================================
--- nanl.c (nonexistent)
+++ nanl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+nanl (const char *tagp)
+{
+ return nan(tagp);
+}
+#endif
+
nanl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: Makefile.am
===================================================================
--- Makefile.am (nonexistent)
+++ Makefile.am (revision 345)
@@ -0,0 +1,80 @@
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \
+ s_cbrt.c s_exp10.c s_expm1.c s_ilogb.c s_infconst.c \
+ s_infinity.c s_isinf.c s_isinfd.c s_isnan.c s_isnand.c \
+ s_log1p.c s_nan.c s_nextafter.c s_pow10.c \
+ s_rint.c s_logb.c s_log2.c s_matherr.c s_lib_ver.c \
+ s_fdim.c s_fma.c s_fmax.c s_fmin.c s_fpclassify.c \
+ s_lrint.c s_llrint.c \
+ s_lround.c s_llround.c s_nearbyint.c s_remquo.c s_round.c s_scalbln.c \
+ s_signbit.c s_trunc.c
+
+fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \
+ sf_cbrt.c sf_exp10.c sf_expm1.c sf_ilogb.c \
+ sf_infinity.c sf_isinf.c sf_isinff.c sf_isnan.c sf_isnanf.c \
+ sf_log1p.c sf_nan.c sf_nextafter.c sf_pow10.c \
+ sf_rint.c sf_logb.c sf_log2.c \
+ sf_fdim.c sf_fma.c sf_fmax.c sf_fmin.c sf_fpclassify.c \
+ sf_lrint.c sf_llrint.c \
+ sf_lround.c sf_llround.c sf_nearbyint.c sf_remquo.c sf_round.c \
+ sf_scalbln.c sf_trunc.c
+
+lsrc = atanl.c cosl.c sinl.c tanl.c tanhl.c frexpl.c modfl.c ceill.c fabsl.c \
+ floorl.c log1pl.c expm1l.c acosl.c asinl.c atan2l.c coshl.c sinhl.c \
+ expl.c ldexpl.c logl.c log10l.c powl.c sqrtl.c fmodl.c hypotl.c \
+ copysignl.c nanl.c ilogbl.c asinhl.c cbrtl.c nextafterl.c rintl.c \
+ scalbnl.c exp2l.c scalblnl.c tgammal.c nearbyintl.c lrintl.c llrintl.c \
+ roundl.c lroundl.c llroundl.c truncl.c remquol.c fdiml.c fmaxl.c fminl.c \
+ fmal.c acoshl.c atanhl.c remainderl.c lgammal.c erfl.c erfcl.c
+
+libcommon_la_LDFLAGS = -Xcompiler -nostdlib
+
+if USE_LIBTOOL
+noinst_LTLIBRARIES = libcommon.la
+libcommon_la_SOURCES = $(src) $(fsrc)
+if HAVE_LONG_DOUBLE
+libcommon_la_SOURCES += $(lsrc)
+endif # HAVE_LONG_DOUBLE
+noinst_DATA = objectlist.awk.in
+else
+noinst_LIBRARIES = lib.a
+lib_a_SOURCES = $(src) $(fsrc)
+if HAVE_LONG_DOUBLE
+lib_a_SOURCES += $(lsrc)
+endif # HAVE_LONG_DOUBLE
+lib_a_CFLAGS = $(AM_CFLAGS)
+noinst_DATA =
+endif # USE_LIBTOOL
+
+include $(srcdir)/../../Makefile.shared
+
+chobj = s_cbrt.def s_copysign.def s_exp10.def s_expm1.def s_ilogb.def \
+ s_infinity.def s_isnan.def s_log1p.def s_matherr.def s_modf.def \
+ s_nan.def s_nextafter.def s_pow10.def s_scalbn.def \
+ s_fdim.def s_fma.def s_fmax.def s_fmin.def \
+ s_logb.def s_log2.def s_lrint.def s_lround.def s_nearbyint.def \
+ s_remquo.def s_rint.def s_round.def s_signbit.def s_trunc.def \
+ isgreater.def
+
+SUFFIXES = .def
+
+CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str
+
+.c.def:
+ $(CHEW) < $< > $*.def 2> $*.ref
+ touch stmp-def
+
+TARGETDOC = ../tmp.texi
+
+doc: $(chobj)
+
+CLEANFILES = $(chobj) *.ref
+
+# A partial dependency list.
+
+$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h
Makefile.am
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ldexpl.c
===================================================================
--- ldexpl.c (nonexistent)
+++ ldexpl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+ldexpl (long double value, int exp)
+{
+ return ldexp(value, exp);
+}
+#endif
+
ldexpl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: erfcl.c
===================================================================
--- erfcl.c (nonexistent)
+++ erfcl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+erfcl (long double x)
+{
+ return erfc(x);
+}
+#endif
+
erfcl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: cosl.c
===================================================================
--- cosl.c (nonexistent)
+++ cosl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+cosl (long double x)
+{
+ return cos(x);
+}
+#endif
+
cosl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_scalbln.c
===================================================================
--- s_scalbln.c (nonexistent)
+++ s_scalbln.c (revision 345)
@@ -0,0 +1,64 @@
+/* @(#)s_scalbn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n computed by exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+huge = 1.0e+300,
+tiny = 1.0e-300;
+
+#ifdef __STDC__
+ double scalbln (double x, long int n)
+#else
+ double scalbln (x,n)
+ double x; long int n;
+#endif
+{
+ __int32_t k,hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ k = (hx&0x7ff00000)>>20; /* extract exponent */
+ if (k==0) { /* 0 or subnormal x */
+ if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
+ x *= two54;
+ GET_HIGH_WORD(hx,x);
+ k = ((hx&0x7ff00000)>>20) - 54;
+ }
+ if (k==0x7ff) return x+x; /* NaN or Inf */
+ k = k+n;
+ if (n> 50000 || k > 0x7fe)
+ return huge*copysign(huge,x); /* overflow */
+ if (n< -50000) return tiny*copysign(tiny,x); /*underflow*/
+ if (k > 0) /* normal result */
+ {SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
+ if (k <= -54)
+ return tiny*copysign(tiny,x); /*underflow*/
+ k += 54; /* subnormal result */
+ SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
+ return x*twom54;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_scalbln.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: Makefile.in
===================================================================
--- Makefile.in (nonexistent)
+++ Makefile.in (revision 345)
@@ -0,0 +1,1373 @@
+# Makefile.in generated by automake 1.11 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_TRUE@am__append_1 = $(lsrc)
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_FALSE@am__append_2 = $(lsrc)
+DIST_COMMON = $(srcdir)/../../Makefile.shared $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am
+subdir = common
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
+ $(top_srcdir)/../../ltoptions.m4 \
+ $(top_srcdir)/../../ltsugar.m4 \
+ $(top_srcdir)/../../ltversion.m4 \
+ $(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/../acinclude.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+lib_a_AR = $(AR) $(ARFLAGS)
+lib_a_LIBADD =
+am__objects_1 = lib_a-s_finite.$(OBJEXT) lib_a-s_copysign.$(OBJEXT) \
+ lib_a-s_modf.$(OBJEXT) lib_a-s_scalbn.$(OBJEXT) \
+ lib_a-s_cbrt.$(OBJEXT) lib_a-s_exp10.$(OBJEXT) \
+ lib_a-s_expm1.$(OBJEXT) lib_a-s_ilogb.$(OBJEXT) \
+ lib_a-s_infconst.$(OBJEXT) lib_a-s_infinity.$(OBJEXT) \
+ lib_a-s_isinf.$(OBJEXT) lib_a-s_isinfd.$(OBJEXT) \
+ lib_a-s_isnan.$(OBJEXT) lib_a-s_isnand.$(OBJEXT) \
+ lib_a-s_log1p.$(OBJEXT) lib_a-s_nan.$(OBJEXT) \
+ lib_a-s_nextafter.$(OBJEXT) lib_a-s_pow10.$(OBJEXT) \
+ lib_a-s_rint.$(OBJEXT) lib_a-s_logb.$(OBJEXT) \
+ lib_a-s_log2.$(OBJEXT) lib_a-s_matherr.$(OBJEXT) \
+ lib_a-s_lib_ver.$(OBJEXT) lib_a-s_fdim.$(OBJEXT) \
+ lib_a-s_fma.$(OBJEXT) lib_a-s_fmax.$(OBJEXT) \
+ lib_a-s_fmin.$(OBJEXT) lib_a-s_fpclassify.$(OBJEXT) \
+ lib_a-s_lrint.$(OBJEXT) lib_a-s_llrint.$(OBJEXT) \
+ lib_a-s_lround.$(OBJEXT) lib_a-s_llround.$(OBJEXT) \
+ lib_a-s_nearbyint.$(OBJEXT) lib_a-s_remquo.$(OBJEXT) \
+ lib_a-s_round.$(OBJEXT) lib_a-s_scalbln.$(OBJEXT) \
+ lib_a-s_signbit.$(OBJEXT) lib_a-s_trunc.$(OBJEXT)
+am__objects_2 = lib_a-sf_finite.$(OBJEXT) lib_a-sf_copysign.$(OBJEXT) \
+ lib_a-sf_modf.$(OBJEXT) lib_a-sf_scalbn.$(OBJEXT) \
+ lib_a-sf_cbrt.$(OBJEXT) lib_a-sf_exp10.$(OBJEXT) \
+ lib_a-sf_expm1.$(OBJEXT) lib_a-sf_ilogb.$(OBJEXT) \
+ lib_a-sf_infinity.$(OBJEXT) lib_a-sf_isinf.$(OBJEXT) \
+ lib_a-sf_isinff.$(OBJEXT) lib_a-sf_isnan.$(OBJEXT) \
+ lib_a-sf_isnanf.$(OBJEXT) lib_a-sf_log1p.$(OBJEXT) \
+ lib_a-sf_nan.$(OBJEXT) lib_a-sf_nextafter.$(OBJEXT) \
+ lib_a-sf_pow10.$(OBJEXT) lib_a-sf_rint.$(OBJEXT) \
+ lib_a-sf_logb.$(OBJEXT) lib_a-sf_log2.$(OBJEXT) \
+ lib_a-sf_fdim.$(OBJEXT) lib_a-sf_fma.$(OBJEXT) \
+ lib_a-sf_fmax.$(OBJEXT) lib_a-sf_fmin.$(OBJEXT) \
+ lib_a-sf_fpclassify.$(OBJEXT) lib_a-sf_lrint.$(OBJEXT) \
+ lib_a-sf_llrint.$(OBJEXT) lib_a-sf_lround.$(OBJEXT) \
+ lib_a-sf_llround.$(OBJEXT) lib_a-sf_nearbyint.$(OBJEXT) \
+ lib_a-sf_remquo.$(OBJEXT) lib_a-sf_round.$(OBJEXT) \
+ lib_a-sf_scalbln.$(OBJEXT) lib_a-sf_trunc.$(OBJEXT)
+am__objects_3 = lib_a-atanl.$(OBJEXT) lib_a-cosl.$(OBJEXT) \
+ lib_a-sinl.$(OBJEXT) lib_a-tanl.$(OBJEXT) \
+ lib_a-tanhl.$(OBJEXT) lib_a-frexpl.$(OBJEXT) \
+ lib_a-modfl.$(OBJEXT) lib_a-ceill.$(OBJEXT) \
+ lib_a-fabsl.$(OBJEXT) lib_a-floorl.$(OBJEXT) \
+ lib_a-log1pl.$(OBJEXT) lib_a-expm1l.$(OBJEXT) \
+ lib_a-acosl.$(OBJEXT) lib_a-asinl.$(OBJEXT) \
+ lib_a-atan2l.$(OBJEXT) lib_a-coshl.$(OBJEXT) \
+ lib_a-sinhl.$(OBJEXT) lib_a-expl.$(OBJEXT) \
+ lib_a-ldexpl.$(OBJEXT) lib_a-logl.$(OBJEXT) \
+ lib_a-log10l.$(OBJEXT) lib_a-powl.$(OBJEXT) \
+ lib_a-sqrtl.$(OBJEXT) lib_a-fmodl.$(OBJEXT) \
+ lib_a-hypotl.$(OBJEXT) lib_a-copysignl.$(OBJEXT) \
+ lib_a-nanl.$(OBJEXT) lib_a-ilogbl.$(OBJEXT) \
+ lib_a-asinhl.$(OBJEXT) lib_a-cbrtl.$(OBJEXT) \
+ lib_a-nextafterl.$(OBJEXT) lib_a-rintl.$(OBJEXT) \
+ lib_a-scalbnl.$(OBJEXT) lib_a-exp2l.$(OBJEXT) \
+ lib_a-scalblnl.$(OBJEXT) lib_a-tgammal.$(OBJEXT) \
+ lib_a-nearbyintl.$(OBJEXT) lib_a-lrintl.$(OBJEXT) \
+ lib_a-llrintl.$(OBJEXT) lib_a-roundl.$(OBJEXT) \
+ lib_a-lroundl.$(OBJEXT) lib_a-llroundl.$(OBJEXT) \
+ lib_a-truncl.$(OBJEXT) lib_a-remquol.$(OBJEXT) \
+ lib_a-fdiml.$(OBJEXT) lib_a-fmaxl.$(OBJEXT) \
+ lib_a-fminl.$(OBJEXT) lib_a-fmal.$(OBJEXT) \
+ lib_a-acoshl.$(OBJEXT) lib_a-atanhl.$(OBJEXT) \
+ lib_a-remainderl.$(OBJEXT) lib_a-lgammal.$(OBJEXT) \
+ lib_a-erfl.$(OBJEXT) lib_a-erfcl.$(OBJEXT)
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_FALSE@am__objects_4 = \
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_FALSE@ $(am__objects_3)
+@USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1) \
+@USE_LIBTOOL_FALSE@ $(am__objects_2) $(am__objects_4)
+lib_a_OBJECTS = $(am_lib_a_OBJECTS)
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libcommon_la_LIBADD =
+am__objects_5 = s_finite.lo s_copysign.lo s_modf.lo s_scalbn.lo \
+ s_cbrt.lo s_exp10.lo s_expm1.lo s_ilogb.lo s_infconst.lo \
+ s_infinity.lo s_isinf.lo s_isinfd.lo s_isnan.lo s_isnand.lo \
+ s_log1p.lo s_nan.lo s_nextafter.lo s_pow10.lo s_rint.lo \
+ s_logb.lo s_log2.lo s_matherr.lo s_lib_ver.lo s_fdim.lo \
+ s_fma.lo s_fmax.lo s_fmin.lo s_fpclassify.lo s_lrint.lo \
+ s_llrint.lo s_lround.lo s_llround.lo s_nearbyint.lo \
+ s_remquo.lo s_round.lo s_scalbln.lo s_signbit.lo s_trunc.lo
+am__objects_6 = sf_finite.lo sf_copysign.lo sf_modf.lo sf_scalbn.lo \
+ sf_cbrt.lo sf_exp10.lo sf_expm1.lo sf_ilogb.lo sf_infinity.lo \
+ sf_isinf.lo sf_isinff.lo sf_isnan.lo sf_isnanf.lo sf_log1p.lo \
+ sf_nan.lo sf_nextafter.lo sf_pow10.lo sf_rint.lo sf_logb.lo \
+ sf_log2.lo sf_fdim.lo sf_fma.lo sf_fmax.lo sf_fmin.lo \
+ sf_fpclassify.lo sf_lrint.lo sf_llrint.lo sf_lround.lo \
+ sf_llround.lo sf_nearbyint.lo sf_remquo.lo sf_round.lo \
+ sf_scalbln.lo sf_trunc.lo
+am__objects_7 = atanl.lo cosl.lo sinl.lo tanl.lo tanhl.lo frexpl.lo \
+ modfl.lo ceill.lo fabsl.lo floorl.lo log1pl.lo expm1l.lo \
+ acosl.lo asinl.lo atan2l.lo coshl.lo sinhl.lo expl.lo \
+ ldexpl.lo logl.lo log10l.lo powl.lo sqrtl.lo fmodl.lo \
+ hypotl.lo copysignl.lo nanl.lo ilogbl.lo asinhl.lo cbrtl.lo \
+ nextafterl.lo rintl.lo scalbnl.lo exp2l.lo scalblnl.lo \
+ tgammal.lo nearbyintl.lo lrintl.lo llrintl.lo roundl.lo \
+ lroundl.lo llroundl.lo truncl.lo remquol.lo fdiml.lo fmaxl.lo \
+ fminl.lo fmal.lo acoshl.lo atanhl.lo remainderl.lo lgammal.lo \
+ erfl.lo erfcl.lo
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_TRUE@am__objects_8 = \
+@HAVE_LONG_DOUBLE_TRUE@@USE_LIBTOOL_TRUE@ $(am__objects_7)
+@USE_LIBTOOL_TRUE@am_libcommon_la_OBJECTS = $(am__objects_5) \
+@USE_LIBTOOL_TRUE@ $(am__objects_6) $(am__objects_8)
+libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS)
+libcommon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libcommon_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_LIBTOOL_TRUE@am_libcommon_la_rpath =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(lib_a_SOURCES) $(libcommon_la_SOURCES)
+DATA = $(noinst_DATA)
+ETAGS = etags
+CTAGS = ctags
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBM_MACHINE_LIB = @LIBM_MACHINE_LIB@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+READELF = @READELF@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aext = @aext@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libm_machine_dir = @libm_machine_dir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lpfx = @lpfx@
+lt_ECHO = @lt_ECHO@
+machine_dir = @machine_dir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+newlib_basedir = @newlib_basedir@
+oext = @oext@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sys_dir = @sys_dir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = cygnus
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \
+ s_cbrt.c s_exp10.c s_expm1.c s_ilogb.c s_infconst.c \
+ s_infinity.c s_isinf.c s_isinfd.c s_isnan.c s_isnand.c \
+ s_log1p.c s_nan.c s_nextafter.c s_pow10.c \
+ s_rint.c s_logb.c s_log2.c s_matherr.c s_lib_ver.c \
+ s_fdim.c s_fma.c s_fmax.c s_fmin.c s_fpclassify.c \
+ s_lrint.c s_llrint.c \
+ s_lround.c s_llround.c s_nearbyint.c s_remquo.c s_round.c s_scalbln.c \
+ s_signbit.c s_trunc.c
+
+fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \
+ sf_cbrt.c sf_exp10.c sf_expm1.c sf_ilogb.c \
+ sf_infinity.c sf_isinf.c sf_isinff.c sf_isnan.c sf_isnanf.c \
+ sf_log1p.c sf_nan.c sf_nextafter.c sf_pow10.c \
+ sf_rint.c sf_logb.c sf_log2.c \
+ sf_fdim.c sf_fma.c sf_fmax.c sf_fmin.c sf_fpclassify.c \
+ sf_lrint.c sf_llrint.c \
+ sf_lround.c sf_llround.c sf_nearbyint.c sf_remquo.c sf_round.c \
+ sf_scalbln.c sf_trunc.c
+
+lsrc = atanl.c cosl.c sinl.c tanl.c tanhl.c frexpl.c modfl.c ceill.c fabsl.c \
+ floorl.c log1pl.c expm1l.c acosl.c asinl.c atan2l.c coshl.c sinhl.c \
+ expl.c ldexpl.c logl.c log10l.c powl.c sqrtl.c fmodl.c hypotl.c \
+ copysignl.c nanl.c ilogbl.c asinhl.c cbrtl.c nextafterl.c rintl.c \
+ scalbnl.c exp2l.c scalblnl.c tgammal.c nearbyintl.c lrintl.c llrintl.c \
+ roundl.c lroundl.c llroundl.c truncl.c remquol.c fdiml.c fmaxl.c fminl.c \
+ fmal.c acoshl.c atanhl.c remainderl.c lgammal.c erfl.c erfcl.c
+
+libcommon_la_LDFLAGS = -Xcompiler -nostdlib
+@USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libcommon.la
+@USE_LIBTOOL_TRUE@libcommon_la_SOURCES = $(src) $(fsrc) \
+@USE_LIBTOOL_TRUE@ $(am__append_1)
+@USE_LIBTOOL_FALSE@noinst_DATA =
+@USE_LIBTOOL_TRUE@noinst_DATA = objectlist.awk.in
+@USE_LIBTOOL_FALSE@noinst_LIBRARIES = lib.a
+@USE_LIBTOOL_FALSE@lib_a_SOURCES = $(src) $(fsrc) $(am__append_2)
+@USE_LIBTOOL_FALSE@lib_a_CFLAGS = $(AM_CFLAGS)
+chobj = s_cbrt.def s_copysign.def s_exp10.def s_expm1.def s_ilogb.def \
+ s_infinity.def s_isnan.def s_log1p.def s_matherr.def s_modf.def \
+ s_nan.def s_nextafter.def s_pow10.def s_scalbn.def \
+ s_fdim.def s_fma.def s_fmax.def s_fmin.def \
+ s_logb.def s_log2.def s_lrint.def s_lround.def s_nearbyint.def \
+ s_remquo.def s_rint.def s_round.def s_signbit.def s_trunc.def \
+ isgreater.def
+
+SUFFIXES = .def
+CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str
+TARGETDOC = ../tmp.texi
+CLEANFILES = $(chobj) *.ref
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .def .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../Makefile.shared $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus common/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --cygnus common/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
+ -rm -f lib.a
+ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
+ $(RANLIB) lib.a
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES)
+ $(libcommon_la_LINK) $(am_libcommon_la_rpath) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(COMPILE) -c $<
+
+.c.obj:
+ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(LTCOMPILE) -c -o $@ $<
+
+lib_a-s_finite.o: s_finite.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_finite.o `test -f 's_finite.c' || echo '$(srcdir)/'`s_finite.c
+
+lib_a-s_finite.obj: s_finite.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_finite.obj `if test -f 's_finite.c'; then $(CYGPATH_W) 's_finite.c'; else $(CYGPATH_W) '$(srcdir)/s_finite.c'; fi`
+
+lib_a-s_copysign.o: s_copysign.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_copysign.o `test -f 's_copysign.c' || echo '$(srcdir)/'`s_copysign.c
+
+lib_a-s_copysign.obj: s_copysign.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_copysign.obj `if test -f 's_copysign.c'; then $(CYGPATH_W) 's_copysign.c'; else $(CYGPATH_W) '$(srcdir)/s_copysign.c'; fi`
+
+lib_a-s_modf.o: s_modf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_modf.o `test -f 's_modf.c' || echo '$(srcdir)/'`s_modf.c
+
+lib_a-s_modf.obj: s_modf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_modf.obj `if test -f 's_modf.c'; then $(CYGPATH_W) 's_modf.c'; else $(CYGPATH_W) '$(srcdir)/s_modf.c'; fi`
+
+lib_a-s_scalbn.o: s_scalbn.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbn.o `test -f 's_scalbn.c' || echo '$(srcdir)/'`s_scalbn.c
+
+lib_a-s_scalbn.obj: s_scalbn.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbn.obj `if test -f 's_scalbn.c'; then $(CYGPATH_W) 's_scalbn.c'; else $(CYGPATH_W) '$(srcdir)/s_scalbn.c'; fi`
+
+lib_a-s_cbrt.o: s_cbrt.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cbrt.o `test -f 's_cbrt.c' || echo '$(srcdir)/'`s_cbrt.c
+
+lib_a-s_cbrt.obj: s_cbrt.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cbrt.obj `if test -f 's_cbrt.c'; then $(CYGPATH_W) 's_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/s_cbrt.c'; fi`
+
+lib_a-s_exp10.o: s_exp10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_exp10.o `test -f 's_exp10.c' || echo '$(srcdir)/'`s_exp10.c
+
+lib_a-s_exp10.obj: s_exp10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_exp10.obj `if test -f 's_exp10.c'; then $(CYGPATH_W) 's_exp10.c'; else $(CYGPATH_W) '$(srcdir)/s_exp10.c'; fi`
+
+lib_a-s_expm1.o: s_expm1.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_expm1.o `test -f 's_expm1.c' || echo '$(srcdir)/'`s_expm1.c
+
+lib_a-s_expm1.obj: s_expm1.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_expm1.obj `if test -f 's_expm1.c'; then $(CYGPATH_W) 's_expm1.c'; else $(CYGPATH_W) '$(srcdir)/s_expm1.c'; fi`
+
+lib_a-s_ilogb.o: s_ilogb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ilogb.o `test -f 's_ilogb.c' || echo '$(srcdir)/'`s_ilogb.c
+
+lib_a-s_ilogb.obj: s_ilogb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ilogb.obj `if test -f 's_ilogb.c'; then $(CYGPATH_W) 's_ilogb.c'; else $(CYGPATH_W) '$(srcdir)/s_ilogb.c'; fi`
+
+lib_a-s_infconst.o: s_infconst.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_infconst.o `test -f 's_infconst.c' || echo '$(srcdir)/'`s_infconst.c
+
+lib_a-s_infconst.obj: s_infconst.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_infconst.obj `if test -f 's_infconst.c'; then $(CYGPATH_W) 's_infconst.c'; else $(CYGPATH_W) '$(srcdir)/s_infconst.c'; fi`
+
+lib_a-s_infinity.o: s_infinity.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_infinity.o `test -f 's_infinity.c' || echo '$(srcdir)/'`s_infinity.c
+
+lib_a-s_infinity.obj: s_infinity.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_infinity.obj `if test -f 's_infinity.c'; then $(CYGPATH_W) 's_infinity.c'; else $(CYGPATH_W) '$(srcdir)/s_infinity.c'; fi`
+
+lib_a-s_isinf.o: s_isinf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isinf.o `test -f 's_isinf.c' || echo '$(srcdir)/'`s_isinf.c
+
+lib_a-s_isinf.obj: s_isinf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isinf.obj `if test -f 's_isinf.c'; then $(CYGPATH_W) 's_isinf.c'; else $(CYGPATH_W) '$(srcdir)/s_isinf.c'; fi`
+
+lib_a-s_isinfd.o: s_isinfd.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isinfd.o `test -f 's_isinfd.c' || echo '$(srcdir)/'`s_isinfd.c
+
+lib_a-s_isinfd.obj: s_isinfd.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isinfd.obj `if test -f 's_isinfd.c'; then $(CYGPATH_W) 's_isinfd.c'; else $(CYGPATH_W) '$(srcdir)/s_isinfd.c'; fi`
+
+lib_a-s_isnan.o: s_isnan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnan.o `test -f 's_isnan.c' || echo '$(srcdir)/'`s_isnan.c
+
+lib_a-s_isnan.obj: s_isnan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnan.obj `if test -f 's_isnan.c'; then $(CYGPATH_W) 's_isnan.c'; else $(CYGPATH_W) '$(srcdir)/s_isnan.c'; fi`
+
+lib_a-s_isnand.o: s_isnand.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnand.o `test -f 's_isnand.c' || echo '$(srcdir)/'`s_isnand.c
+
+lib_a-s_isnand.obj: s_isnand.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnand.obj `if test -f 's_isnand.c'; then $(CYGPATH_W) 's_isnand.c'; else $(CYGPATH_W) '$(srcdir)/s_isnand.c'; fi`
+
+lib_a-s_log1p.o: s_log1p.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log1p.o `test -f 's_log1p.c' || echo '$(srcdir)/'`s_log1p.c
+
+lib_a-s_log1p.obj: s_log1p.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log1p.obj `if test -f 's_log1p.c'; then $(CYGPATH_W) 's_log1p.c'; else $(CYGPATH_W) '$(srcdir)/s_log1p.c'; fi`
+
+lib_a-s_nan.o: s_nan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nan.o `test -f 's_nan.c' || echo '$(srcdir)/'`s_nan.c
+
+lib_a-s_nan.obj: s_nan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nan.obj `if test -f 's_nan.c'; then $(CYGPATH_W) 's_nan.c'; else $(CYGPATH_W) '$(srcdir)/s_nan.c'; fi`
+
+lib_a-s_nextafter.o: s_nextafter.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nextafter.o `test -f 's_nextafter.c' || echo '$(srcdir)/'`s_nextafter.c
+
+lib_a-s_nextafter.obj: s_nextafter.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nextafter.obj `if test -f 's_nextafter.c'; then $(CYGPATH_W) 's_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/s_nextafter.c'; fi`
+
+lib_a-s_pow10.o: s_pow10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_pow10.o `test -f 's_pow10.c' || echo '$(srcdir)/'`s_pow10.c
+
+lib_a-s_pow10.obj: s_pow10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_pow10.obj `if test -f 's_pow10.c'; then $(CYGPATH_W) 's_pow10.c'; else $(CYGPATH_W) '$(srcdir)/s_pow10.c'; fi`
+
+lib_a-s_rint.o: s_rint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_rint.o `test -f 's_rint.c' || echo '$(srcdir)/'`s_rint.c
+
+lib_a-s_rint.obj: s_rint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_rint.obj `if test -f 's_rint.c'; then $(CYGPATH_W) 's_rint.c'; else $(CYGPATH_W) '$(srcdir)/s_rint.c'; fi`
+
+lib_a-s_logb.o: s_logb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_logb.o `test -f 's_logb.c' || echo '$(srcdir)/'`s_logb.c
+
+lib_a-s_logb.obj: s_logb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_logb.obj `if test -f 's_logb.c'; then $(CYGPATH_W) 's_logb.c'; else $(CYGPATH_W) '$(srcdir)/s_logb.c'; fi`
+
+lib_a-s_log2.o: s_log2.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log2.o `test -f 's_log2.c' || echo '$(srcdir)/'`s_log2.c
+
+lib_a-s_log2.obj: s_log2.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log2.obj `if test -f 's_log2.c'; then $(CYGPATH_W) 's_log2.c'; else $(CYGPATH_W) '$(srcdir)/s_log2.c'; fi`
+
+lib_a-s_matherr.o: s_matherr.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_matherr.o `test -f 's_matherr.c' || echo '$(srcdir)/'`s_matherr.c
+
+lib_a-s_matherr.obj: s_matherr.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_matherr.obj `if test -f 's_matherr.c'; then $(CYGPATH_W) 's_matherr.c'; else $(CYGPATH_W) '$(srcdir)/s_matherr.c'; fi`
+
+lib_a-s_lib_ver.o: s_lib_ver.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lib_ver.o `test -f 's_lib_ver.c' || echo '$(srcdir)/'`s_lib_ver.c
+
+lib_a-s_lib_ver.obj: s_lib_ver.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lib_ver.obj `if test -f 's_lib_ver.c'; then $(CYGPATH_W) 's_lib_ver.c'; else $(CYGPATH_W) '$(srcdir)/s_lib_ver.c'; fi`
+
+lib_a-s_fdim.o: s_fdim.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fdim.o `test -f 's_fdim.c' || echo '$(srcdir)/'`s_fdim.c
+
+lib_a-s_fdim.obj: s_fdim.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fdim.obj `if test -f 's_fdim.c'; then $(CYGPATH_W) 's_fdim.c'; else $(CYGPATH_W) '$(srcdir)/s_fdim.c'; fi`
+
+lib_a-s_fma.o: s_fma.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.o `test -f 's_fma.c' || echo '$(srcdir)/'`s_fma.c
+
+lib_a-s_fma.obj: s_fma.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.obj `if test -f 's_fma.c'; then $(CYGPATH_W) 's_fma.c'; else $(CYGPATH_W) '$(srcdir)/s_fma.c'; fi`
+
+lib_a-s_fmax.o: s_fmax.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmax.o `test -f 's_fmax.c' || echo '$(srcdir)/'`s_fmax.c
+
+lib_a-s_fmax.obj: s_fmax.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmax.obj `if test -f 's_fmax.c'; then $(CYGPATH_W) 's_fmax.c'; else $(CYGPATH_W) '$(srcdir)/s_fmax.c'; fi`
+
+lib_a-s_fmin.o: s_fmin.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmin.o `test -f 's_fmin.c' || echo '$(srcdir)/'`s_fmin.c
+
+lib_a-s_fmin.obj: s_fmin.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmin.obj `if test -f 's_fmin.c'; then $(CYGPATH_W) 's_fmin.c'; else $(CYGPATH_W) '$(srcdir)/s_fmin.c'; fi`
+
+lib_a-s_fpclassify.o: s_fpclassify.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fpclassify.o `test -f 's_fpclassify.c' || echo '$(srcdir)/'`s_fpclassify.c
+
+lib_a-s_fpclassify.obj: s_fpclassify.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fpclassify.obj `if test -f 's_fpclassify.c'; then $(CYGPATH_W) 's_fpclassify.c'; else $(CYGPATH_W) '$(srcdir)/s_fpclassify.c'; fi`
+
+lib_a-s_lrint.o: s_lrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lrint.o `test -f 's_lrint.c' || echo '$(srcdir)/'`s_lrint.c
+
+lib_a-s_lrint.obj: s_lrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lrint.obj `if test -f 's_lrint.c'; then $(CYGPATH_W) 's_lrint.c'; else $(CYGPATH_W) '$(srcdir)/s_lrint.c'; fi`
+
+lib_a-s_llrint.o: s_llrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_llrint.o `test -f 's_llrint.c' || echo '$(srcdir)/'`s_llrint.c
+
+lib_a-s_llrint.obj: s_llrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_llrint.obj `if test -f 's_llrint.c'; then $(CYGPATH_W) 's_llrint.c'; else $(CYGPATH_W) '$(srcdir)/s_llrint.c'; fi`
+
+lib_a-s_lround.o: s_lround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lround.o `test -f 's_lround.c' || echo '$(srcdir)/'`s_lround.c
+
+lib_a-s_lround.obj: s_lround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lround.obj `if test -f 's_lround.c'; then $(CYGPATH_W) 's_lround.c'; else $(CYGPATH_W) '$(srcdir)/s_lround.c'; fi`
+
+lib_a-s_llround.o: s_llround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_llround.o `test -f 's_llround.c' || echo '$(srcdir)/'`s_llround.c
+
+lib_a-s_llround.obj: s_llround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_llround.obj `if test -f 's_llround.c'; then $(CYGPATH_W) 's_llround.c'; else $(CYGPATH_W) '$(srcdir)/s_llround.c'; fi`
+
+lib_a-s_nearbyint.o: s_nearbyint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nearbyint.o `test -f 's_nearbyint.c' || echo '$(srcdir)/'`s_nearbyint.c
+
+lib_a-s_nearbyint.obj: s_nearbyint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nearbyint.obj `if test -f 's_nearbyint.c'; then $(CYGPATH_W) 's_nearbyint.c'; else $(CYGPATH_W) '$(srcdir)/s_nearbyint.c'; fi`
+
+lib_a-s_remquo.o: s_remquo.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_remquo.o `test -f 's_remquo.c' || echo '$(srcdir)/'`s_remquo.c
+
+lib_a-s_remquo.obj: s_remquo.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_remquo.obj `if test -f 's_remquo.c'; then $(CYGPATH_W) 's_remquo.c'; else $(CYGPATH_W) '$(srcdir)/s_remquo.c'; fi`
+
+lib_a-s_round.o: s_round.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_round.o `test -f 's_round.c' || echo '$(srcdir)/'`s_round.c
+
+lib_a-s_round.obj: s_round.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_round.obj `if test -f 's_round.c'; then $(CYGPATH_W) 's_round.c'; else $(CYGPATH_W) '$(srcdir)/s_round.c'; fi`
+
+lib_a-s_scalbln.o: s_scalbln.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbln.o `test -f 's_scalbln.c' || echo '$(srcdir)/'`s_scalbln.c
+
+lib_a-s_scalbln.obj: s_scalbln.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbln.obj `if test -f 's_scalbln.c'; then $(CYGPATH_W) 's_scalbln.c'; else $(CYGPATH_W) '$(srcdir)/s_scalbln.c'; fi`
+
+lib_a-s_signbit.o: s_signbit.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_signbit.o `test -f 's_signbit.c' || echo '$(srcdir)/'`s_signbit.c
+
+lib_a-s_signbit.obj: s_signbit.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_signbit.obj `if test -f 's_signbit.c'; then $(CYGPATH_W) 's_signbit.c'; else $(CYGPATH_W) '$(srcdir)/s_signbit.c'; fi`
+
+lib_a-s_trunc.o: s_trunc.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_trunc.o `test -f 's_trunc.c' || echo '$(srcdir)/'`s_trunc.c
+
+lib_a-s_trunc.obj: s_trunc.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_trunc.obj `if test -f 's_trunc.c'; then $(CYGPATH_W) 's_trunc.c'; else $(CYGPATH_W) '$(srcdir)/s_trunc.c'; fi`
+
+lib_a-sf_finite.o: sf_finite.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_finite.o `test -f 'sf_finite.c' || echo '$(srcdir)/'`sf_finite.c
+
+lib_a-sf_finite.obj: sf_finite.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_finite.obj `if test -f 'sf_finite.c'; then $(CYGPATH_W) 'sf_finite.c'; else $(CYGPATH_W) '$(srcdir)/sf_finite.c'; fi`
+
+lib_a-sf_copysign.o: sf_copysign.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_copysign.o `test -f 'sf_copysign.c' || echo '$(srcdir)/'`sf_copysign.c
+
+lib_a-sf_copysign.obj: sf_copysign.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_copysign.obj `if test -f 'sf_copysign.c'; then $(CYGPATH_W) 'sf_copysign.c'; else $(CYGPATH_W) '$(srcdir)/sf_copysign.c'; fi`
+
+lib_a-sf_modf.o: sf_modf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_modf.o `test -f 'sf_modf.c' || echo '$(srcdir)/'`sf_modf.c
+
+lib_a-sf_modf.obj: sf_modf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_modf.obj `if test -f 'sf_modf.c'; then $(CYGPATH_W) 'sf_modf.c'; else $(CYGPATH_W) '$(srcdir)/sf_modf.c'; fi`
+
+lib_a-sf_scalbn.o: sf_scalbn.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbn.o `test -f 'sf_scalbn.c' || echo '$(srcdir)/'`sf_scalbn.c
+
+lib_a-sf_scalbn.obj: sf_scalbn.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbn.obj `if test -f 'sf_scalbn.c'; then $(CYGPATH_W) 'sf_scalbn.c'; else $(CYGPATH_W) '$(srcdir)/sf_scalbn.c'; fi`
+
+lib_a-sf_cbrt.o: sf_cbrt.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cbrt.o `test -f 'sf_cbrt.c' || echo '$(srcdir)/'`sf_cbrt.c
+
+lib_a-sf_cbrt.obj: sf_cbrt.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cbrt.obj `if test -f 'sf_cbrt.c'; then $(CYGPATH_W) 'sf_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/sf_cbrt.c'; fi`
+
+lib_a-sf_exp10.o: sf_exp10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_exp10.o `test -f 'sf_exp10.c' || echo '$(srcdir)/'`sf_exp10.c
+
+lib_a-sf_exp10.obj: sf_exp10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_exp10.obj `if test -f 'sf_exp10.c'; then $(CYGPATH_W) 'sf_exp10.c'; else $(CYGPATH_W) '$(srcdir)/sf_exp10.c'; fi`
+
+lib_a-sf_expm1.o: sf_expm1.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_expm1.o `test -f 'sf_expm1.c' || echo '$(srcdir)/'`sf_expm1.c
+
+lib_a-sf_expm1.obj: sf_expm1.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_expm1.obj `if test -f 'sf_expm1.c'; then $(CYGPATH_W) 'sf_expm1.c'; else $(CYGPATH_W) '$(srcdir)/sf_expm1.c'; fi`
+
+lib_a-sf_ilogb.o: sf_ilogb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ilogb.o `test -f 'sf_ilogb.c' || echo '$(srcdir)/'`sf_ilogb.c
+
+lib_a-sf_ilogb.obj: sf_ilogb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ilogb.obj `if test -f 'sf_ilogb.c'; then $(CYGPATH_W) 'sf_ilogb.c'; else $(CYGPATH_W) '$(srcdir)/sf_ilogb.c'; fi`
+
+lib_a-sf_infinity.o: sf_infinity.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_infinity.o `test -f 'sf_infinity.c' || echo '$(srcdir)/'`sf_infinity.c
+
+lib_a-sf_infinity.obj: sf_infinity.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_infinity.obj `if test -f 'sf_infinity.c'; then $(CYGPATH_W) 'sf_infinity.c'; else $(CYGPATH_W) '$(srcdir)/sf_infinity.c'; fi`
+
+lib_a-sf_isinf.o: sf_isinf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinf.o `test -f 'sf_isinf.c' || echo '$(srcdir)/'`sf_isinf.c
+
+lib_a-sf_isinf.obj: sf_isinf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinf.obj `if test -f 'sf_isinf.c'; then $(CYGPATH_W) 'sf_isinf.c'; else $(CYGPATH_W) '$(srcdir)/sf_isinf.c'; fi`
+
+lib_a-sf_isinff.o: sf_isinff.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinff.o `test -f 'sf_isinff.c' || echo '$(srcdir)/'`sf_isinff.c
+
+lib_a-sf_isinff.obj: sf_isinff.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinff.obj `if test -f 'sf_isinff.c'; then $(CYGPATH_W) 'sf_isinff.c'; else $(CYGPATH_W) '$(srcdir)/sf_isinff.c'; fi`
+
+lib_a-sf_isnan.o: sf_isnan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnan.o `test -f 'sf_isnan.c' || echo '$(srcdir)/'`sf_isnan.c
+
+lib_a-sf_isnan.obj: sf_isnan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnan.obj `if test -f 'sf_isnan.c'; then $(CYGPATH_W) 'sf_isnan.c'; else $(CYGPATH_W) '$(srcdir)/sf_isnan.c'; fi`
+
+lib_a-sf_isnanf.o: sf_isnanf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnanf.o `test -f 'sf_isnanf.c' || echo '$(srcdir)/'`sf_isnanf.c
+
+lib_a-sf_isnanf.obj: sf_isnanf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnanf.obj `if test -f 'sf_isnanf.c'; then $(CYGPATH_W) 'sf_isnanf.c'; else $(CYGPATH_W) '$(srcdir)/sf_isnanf.c'; fi`
+
+lib_a-sf_log1p.o: sf_log1p.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log1p.o `test -f 'sf_log1p.c' || echo '$(srcdir)/'`sf_log1p.c
+
+lib_a-sf_log1p.obj: sf_log1p.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log1p.obj `if test -f 'sf_log1p.c'; then $(CYGPATH_W) 'sf_log1p.c'; else $(CYGPATH_W) '$(srcdir)/sf_log1p.c'; fi`
+
+lib_a-sf_nan.o: sf_nan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nan.o `test -f 'sf_nan.c' || echo '$(srcdir)/'`sf_nan.c
+
+lib_a-sf_nan.obj: sf_nan.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nan.obj `if test -f 'sf_nan.c'; then $(CYGPATH_W) 'sf_nan.c'; else $(CYGPATH_W) '$(srcdir)/sf_nan.c'; fi`
+
+lib_a-sf_nextafter.o: sf_nextafter.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nextafter.o `test -f 'sf_nextafter.c' || echo '$(srcdir)/'`sf_nextafter.c
+
+lib_a-sf_nextafter.obj: sf_nextafter.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nextafter.obj `if test -f 'sf_nextafter.c'; then $(CYGPATH_W) 'sf_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/sf_nextafter.c'; fi`
+
+lib_a-sf_pow10.o: sf_pow10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_pow10.o `test -f 'sf_pow10.c' || echo '$(srcdir)/'`sf_pow10.c
+
+lib_a-sf_pow10.obj: sf_pow10.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_pow10.obj `if test -f 'sf_pow10.c'; then $(CYGPATH_W) 'sf_pow10.c'; else $(CYGPATH_W) '$(srcdir)/sf_pow10.c'; fi`
+
+lib_a-sf_rint.o: sf_rint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_rint.o `test -f 'sf_rint.c' || echo '$(srcdir)/'`sf_rint.c
+
+lib_a-sf_rint.obj: sf_rint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_rint.obj `if test -f 'sf_rint.c'; then $(CYGPATH_W) 'sf_rint.c'; else $(CYGPATH_W) '$(srcdir)/sf_rint.c'; fi`
+
+lib_a-sf_logb.o: sf_logb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_logb.o `test -f 'sf_logb.c' || echo '$(srcdir)/'`sf_logb.c
+
+lib_a-sf_logb.obj: sf_logb.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_logb.obj `if test -f 'sf_logb.c'; then $(CYGPATH_W) 'sf_logb.c'; else $(CYGPATH_W) '$(srcdir)/sf_logb.c'; fi`
+
+lib_a-sf_log2.o: sf_log2.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log2.o `test -f 'sf_log2.c' || echo '$(srcdir)/'`sf_log2.c
+
+lib_a-sf_log2.obj: sf_log2.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log2.obj `if test -f 'sf_log2.c'; then $(CYGPATH_W) 'sf_log2.c'; else $(CYGPATH_W) '$(srcdir)/sf_log2.c'; fi`
+
+lib_a-sf_fdim.o: sf_fdim.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fdim.o `test -f 'sf_fdim.c' || echo '$(srcdir)/'`sf_fdim.c
+
+lib_a-sf_fdim.obj: sf_fdim.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fdim.obj `if test -f 'sf_fdim.c'; then $(CYGPATH_W) 'sf_fdim.c'; else $(CYGPATH_W) '$(srcdir)/sf_fdim.c'; fi`
+
+lib_a-sf_fma.o: sf_fma.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.o `test -f 'sf_fma.c' || echo '$(srcdir)/'`sf_fma.c
+
+lib_a-sf_fma.obj: sf_fma.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.obj `if test -f 'sf_fma.c'; then $(CYGPATH_W) 'sf_fma.c'; else $(CYGPATH_W) '$(srcdir)/sf_fma.c'; fi`
+
+lib_a-sf_fmax.o: sf_fmax.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmax.o `test -f 'sf_fmax.c' || echo '$(srcdir)/'`sf_fmax.c
+
+lib_a-sf_fmax.obj: sf_fmax.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmax.obj `if test -f 'sf_fmax.c'; then $(CYGPATH_W) 'sf_fmax.c'; else $(CYGPATH_W) '$(srcdir)/sf_fmax.c'; fi`
+
+lib_a-sf_fmin.o: sf_fmin.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmin.o `test -f 'sf_fmin.c' || echo '$(srcdir)/'`sf_fmin.c
+
+lib_a-sf_fmin.obj: sf_fmin.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmin.obj `if test -f 'sf_fmin.c'; then $(CYGPATH_W) 'sf_fmin.c'; else $(CYGPATH_W) '$(srcdir)/sf_fmin.c'; fi`
+
+lib_a-sf_fpclassify.o: sf_fpclassify.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fpclassify.o `test -f 'sf_fpclassify.c' || echo '$(srcdir)/'`sf_fpclassify.c
+
+lib_a-sf_fpclassify.obj: sf_fpclassify.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fpclassify.obj `if test -f 'sf_fpclassify.c'; then $(CYGPATH_W) 'sf_fpclassify.c'; else $(CYGPATH_W) '$(srcdir)/sf_fpclassify.c'; fi`
+
+lib_a-sf_lrint.o: sf_lrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lrint.o `test -f 'sf_lrint.c' || echo '$(srcdir)/'`sf_lrint.c
+
+lib_a-sf_lrint.obj: sf_lrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lrint.obj `if test -f 'sf_lrint.c'; then $(CYGPATH_W) 'sf_lrint.c'; else $(CYGPATH_W) '$(srcdir)/sf_lrint.c'; fi`
+
+lib_a-sf_llrint.o: sf_llrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_llrint.o `test -f 'sf_llrint.c' || echo '$(srcdir)/'`sf_llrint.c
+
+lib_a-sf_llrint.obj: sf_llrint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_llrint.obj `if test -f 'sf_llrint.c'; then $(CYGPATH_W) 'sf_llrint.c'; else $(CYGPATH_W) '$(srcdir)/sf_llrint.c'; fi`
+
+lib_a-sf_lround.o: sf_lround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lround.o `test -f 'sf_lround.c' || echo '$(srcdir)/'`sf_lround.c
+
+lib_a-sf_lround.obj: sf_lround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lround.obj `if test -f 'sf_lround.c'; then $(CYGPATH_W) 'sf_lround.c'; else $(CYGPATH_W) '$(srcdir)/sf_lround.c'; fi`
+
+lib_a-sf_llround.o: sf_llround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_llround.o `test -f 'sf_llround.c' || echo '$(srcdir)/'`sf_llround.c
+
+lib_a-sf_llround.obj: sf_llround.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_llround.obj `if test -f 'sf_llround.c'; then $(CYGPATH_W) 'sf_llround.c'; else $(CYGPATH_W) '$(srcdir)/sf_llround.c'; fi`
+
+lib_a-sf_nearbyint.o: sf_nearbyint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nearbyint.o `test -f 'sf_nearbyint.c' || echo '$(srcdir)/'`sf_nearbyint.c
+
+lib_a-sf_nearbyint.obj: sf_nearbyint.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nearbyint.obj `if test -f 'sf_nearbyint.c'; then $(CYGPATH_W) 'sf_nearbyint.c'; else $(CYGPATH_W) '$(srcdir)/sf_nearbyint.c'; fi`
+
+lib_a-sf_remquo.o: sf_remquo.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_remquo.o `test -f 'sf_remquo.c' || echo '$(srcdir)/'`sf_remquo.c
+
+lib_a-sf_remquo.obj: sf_remquo.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_remquo.obj `if test -f 'sf_remquo.c'; then $(CYGPATH_W) 'sf_remquo.c'; else $(CYGPATH_W) '$(srcdir)/sf_remquo.c'; fi`
+
+lib_a-sf_round.o: sf_round.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_round.o `test -f 'sf_round.c' || echo '$(srcdir)/'`sf_round.c
+
+lib_a-sf_round.obj: sf_round.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_round.obj `if test -f 'sf_round.c'; then $(CYGPATH_W) 'sf_round.c'; else $(CYGPATH_W) '$(srcdir)/sf_round.c'; fi`
+
+lib_a-sf_scalbln.o: sf_scalbln.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbln.o `test -f 'sf_scalbln.c' || echo '$(srcdir)/'`sf_scalbln.c
+
+lib_a-sf_scalbln.obj: sf_scalbln.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbln.obj `if test -f 'sf_scalbln.c'; then $(CYGPATH_W) 'sf_scalbln.c'; else $(CYGPATH_W) '$(srcdir)/sf_scalbln.c'; fi`
+
+lib_a-sf_trunc.o: sf_trunc.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_trunc.o `test -f 'sf_trunc.c' || echo '$(srcdir)/'`sf_trunc.c
+
+lib_a-sf_trunc.obj: sf_trunc.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_trunc.obj `if test -f 'sf_trunc.c'; then $(CYGPATH_W) 'sf_trunc.c'; else $(CYGPATH_W) '$(srcdir)/sf_trunc.c'; fi`
+
+lib_a-atanl.o: atanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atanl.o `test -f 'atanl.c' || echo '$(srcdir)/'`atanl.c
+
+lib_a-atanl.obj: atanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atanl.obj `if test -f 'atanl.c'; then $(CYGPATH_W) 'atanl.c'; else $(CYGPATH_W) '$(srcdir)/atanl.c'; fi`
+
+lib_a-cosl.o: cosl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-cosl.o `test -f 'cosl.c' || echo '$(srcdir)/'`cosl.c
+
+lib_a-cosl.obj: cosl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-cosl.obj `if test -f 'cosl.c'; then $(CYGPATH_W) 'cosl.c'; else $(CYGPATH_W) '$(srcdir)/cosl.c'; fi`
+
+lib_a-sinl.o: sinl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sinl.o `test -f 'sinl.c' || echo '$(srcdir)/'`sinl.c
+
+lib_a-sinl.obj: sinl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sinl.obj `if test -f 'sinl.c'; then $(CYGPATH_W) 'sinl.c'; else $(CYGPATH_W) '$(srcdir)/sinl.c'; fi`
+
+lib_a-tanl.o: tanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tanl.o `test -f 'tanl.c' || echo '$(srcdir)/'`tanl.c
+
+lib_a-tanl.obj: tanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tanl.obj `if test -f 'tanl.c'; then $(CYGPATH_W) 'tanl.c'; else $(CYGPATH_W) '$(srcdir)/tanl.c'; fi`
+
+lib_a-tanhl.o: tanhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tanhl.o `test -f 'tanhl.c' || echo '$(srcdir)/'`tanhl.c
+
+lib_a-tanhl.obj: tanhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tanhl.obj `if test -f 'tanhl.c'; then $(CYGPATH_W) 'tanhl.c'; else $(CYGPATH_W) '$(srcdir)/tanhl.c'; fi`
+
+lib_a-frexpl.o: frexpl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-frexpl.o `test -f 'frexpl.c' || echo '$(srcdir)/'`frexpl.c
+
+lib_a-frexpl.obj: frexpl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-frexpl.obj `if test -f 'frexpl.c'; then $(CYGPATH_W) 'frexpl.c'; else $(CYGPATH_W) '$(srcdir)/frexpl.c'; fi`
+
+lib_a-modfl.o: modfl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-modfl.o `test -f 'modfl.c' || echo '$(srcdir)/'`modfl.c
+
+lib_a-modfl.obj: modfl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-modfl.obj `if test -f 'modfl.c'; then $(CYGPATH_W) 'modfl.c'; else $(CYGPATH_W) '$(srcdir)/modfl.c'; fi`
+
+lib_a-ceill.o: ceill.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ceill.o `test -f 'ceill.c' || echo '$(srcdir)/'`ceill.c
+
+lib_a-ceill.obj: ceill.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ceill.obj `if test -f 'ceill.c'; then $(CYGPATH_W) 'ceill.c'; else $(CYGPATH_W) '$(srcdir)/ceill.c'; fi`
+
+lib_a-fabsl.o: fabsl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fabsl.o `test -f 'fabsl.c' || echo '$(srcdir)/'`fabsl.c
+
+lib_a-fabsl.obj: fabsl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fabsl.obj `if test -f 'fabsl.c'; then $(CYGPATH_W) 'fabsl.c'; else $(CYGPATH_W) '$(srcdir)/fabsl.c'; fi`
+
+lib_a-floorl.o: floorl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-floorl.o `test -f 'floorl.c' || echo '$(srcdir)/'`floorl.c
+
+lib_a-floorl.obj: floorl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-floorl.obj `if test -f 'floorl.c'; then $(CYGPATH_W) 'floorl.c'; else $(CYGPATH_W) '$(srcdir)/floorl.c'; fi`
+
+lib_a-log1pl.o: log1pl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log1pl.o `test -f 'log1pl.c' || echo '$(srcdir)/'`log1pl.c
+
+lib_a-log1pl.obj: log1pl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log1pl.obj `if test -f 'log1pl.c'; then $(CYGPATH_W) 'log1pl.c'; else $(CYGPATH_W) '$(srcdir)/log1pl.c'; fi`
+
+lib_a-expm1l.o: expm1l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-expm1l.o `test -f 'expm1l.c' || echo '$(srcdir)/'`expm1l.c
+
+lib_a-expm1l.obj: expm1l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-expm1l.obj `if test -f 'expm1l.c'; then $(CYGPATH_W) 'expm1l.c'; else $(CYGPATH_W) '$(srcdir)/expm1l.c'; fi`
+
+lib_a-acosl.o: acosl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-acosl.o `test -f 'acosl.c' || echo '$(srcdir)/'`acosl.c
+
+lib_a-acosl.obj: acosl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-acosl.obj `if test -f 'acosl.c'; then $(CYGPATH_W) 'acosl.c'; else $(CYGPATH_W) '$(srcdir)/acosl.c'; fi`
+
+lib_a-asinl.o: asinl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-asinl.o `test -f 'asinl.c' || echo '$(srcdir)/'`asinl.c
+
+lib_a-asinl.obj: asinl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-asinl.obj `if test -f 'asinl.c'; then $(CYGPATH_W) 'asinl.c'; else $(CYGPATH_W) '$(srcdir)/asinl.c'; fi`
+
+lib_a-atan2l.o: atan2l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atan2l.o `test -f 'atan2l.c' || echo '$(srcdir)/'`atan2l.c
+
+lib_a-atan2l.obj: atan2l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atan2l.obj `if test -f 'atan2l.c'; then $(CYGPATH_W) 'atan2l.c'; else $(CYGPATH_W) '$(srcdir)/atan2l.c'; fi`
+
+lib_a-coshl.o: coshl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-coshl.o `test -f 'coshl.c' || echo '$(srcdir)/'`coshl.c
+
+lib_a-coshl.obj: coshl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-coshl.obj `if test -f 'coshl.c'; then $(CYGPATH_W) 'coshl.c'; else $(CYGPATH_W) '$(srcdir)/coshl.c'; fi`
+
+lib_a-sinhl.o: sinhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sinhl.o `test -f 'sinhl.c' || echo '$(srcdir)/'`sinhl.c
+
+lib_a-sinhl.obj: sinhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sinhl.obj `if test -f 'sinhl.c'; then $(CYGPATH_W) 'sinhl.c'; else $(CYGPATH_W) '$(srcdir)/sinhl.c'; fi`
+
+lib_a-expl.o: expl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-expl.o `test -f 'expl.c' || echo '$(srcdir)/'`expl.c
+
+lib_a-expl.obj: expl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-expl.obj `if test -f 'expl.c'; then $(CYGPATH_W) 'expl.c'; else $(CYGPATH_W) '$(srcdir)/expl.c'; fi`
+
+lib_a-ldexpl.o: ldexpl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ldexpl.o `test -f 'ldexpl.c' || echo '$(srcdir)/'`ldexpl.c
+
+lib_a-ldexpl.obj: ldexpl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ldexpl.obj `if test -f 'ldexpl.c'; then $(CYGPATH_W) 'ldexpl.c'; else $(CYGPATH_W) '$(srcdir)/ldexpl.c'; fi`
+
+lib_a-logl.o: logl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-logl.o `test -f 'logl.c' || echo '$(srcdir)/'`logl.c
+
+lib_a-logl.obj: logl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-logl.obj `if test -f 'logl.c'; then $(CYGPATH_W) 'logl.c'; else $(CYGPATH_W) '$(srcdir)/logl.c'; fi`
+
+lib_a-log10l.o: log10l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log10l.o `test -f 'log10l.c' || echo '$(srcdir)/'`log10l.c
+
+lib_a-log10l.obj: log10l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log10l.obj `if test -f 'log10l.c'; then $(CYGPATH_W) 'log10l.c'; else $(CYGPATH_W) '$(srcdir)/log10l.c'; fi`
+
+lib_a-powl.o: powl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-powl.o `test -f 'powl.c' || echo '$(srcdir)/'`powl.c
+
+lib_a-powl.obj: powl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-powl.obj `if test -f 'powl.c'; then $(CYGPATH_W) 'powl.c'; else $(CYGPATH_W) '$(srcdir)/powl.c'; fi`
+
+lib_a-sqrtl.o: sqrtl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sqrtl.o `test -f 'sqrtl.c' || echo '$(srcdir)/'`sqrtl.c
+
+lib_a-sqrtl.obj: sqrtl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sqrtl.obj `if test -f 'sqrtl.c'; then $(CYGPATH_W) 'sqrtl.c'; else $(CYGPATH_W) '$(srcdir)/sqrtl.c'; fi`
+
+lib_a-fmodl.o: fmodl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmodl.o `test -f 'fmodl.c' || echo '$(srcdir)/'`fmodl.c
+
+lib_a-fmodl.obj: fmodl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmodl.obj `if test -f 'fmodl.c'; then $(CYGPATH_W) 'fmodl.c'; else $(CYGPATH_W) '$(srcdir)/fmodl.c'; fi`
+
+lib_a-hypotl.o: hypotl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hypotl.o `test -f 'hypotl.c' || echo '$(srcdir)/'`hypotl.c
+
+lib_a-hypotl.obj: hypotl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hypotl.obj `if test -f 'hypotl.c'; then $(CYGPATH_W) 'hypotl.c'; else $(CYGPATH_W) '$(srcdir)/hypotl.c'; fi`
+
+lib_a-copysignl.o: copysignl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-copysignl.o `test -f 'copysignl.c' || echo '$(srcdir)/'`copysignl.c
+
+lib_a-copysignl.obj: copysignl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-copysignl.obj `if test -f 'copysignl.c'; then $(CYGPATH_W) 'copysignl.c'; else $(CYGPATH_W) '$(srcdir)/copysignl.c'; fi`
+
+lib_a-nanl.o: nanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nanl.o `test -f 'nanl.c' || echo '$(srcdir)/'`nanl.c
+
+lib_a-nanl.obj: nanl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nanl.obj `if test -f 'nanl.c'; then $(CYGPATH_W) 'nanl.c'; else $(CYGPATH_W) '$(srcdir)/nanl.c'; fi`
+
+lib_a-ilogbl.o: ilogbl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ilogbl.o `test -f 'ilogbl.c' || echo '$(srcdir)/'`ilogbl.c
+
+lib_a-ilogbl.obj: ilogbl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ilogbl.obj `if test -f 'ilogbl.c'; then $(CYGPATH_W) 'ilogbl.c'; else $(CYGPATH_W) '$(srcdir)/ilogbl.c'; fi`
+
+lib_a-asinhl.o: asinhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-asinhl.o `test -f 'asinhl.c' || echo '$(srcdir)/'`asinhl.c
+
+lib_a-asinhl.obj: asinhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-asinhl.obj `if test -f 'asinhl.c'; then $(CYGPATH_W) 'asinhl.c'; else $(CYGPATH_W) '$(srcdir)/asinhl.c'; fi`
+
+lib_a-cbrtl.o: cbrtl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-cbrtl.o `test -f 'cbrtl.c' || echo '$(srcdir)/'`cbrtl.c
+
+lib_a-cbrtl.obj: cbrtl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-cbrtl.obj `if test -f 'cbrtl.c'; then $(CYGPATH_W) 'cbrtl.c'; else $(CYGPATH_W) '$(srcdir)/cbrtl.c'; fi`
+
+lib_a-nextafterl.o: nextafterl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nextafterl.o `test -f 'nextafterl.c' || echo '$(srcdir)/'`nextafterl.c
+
+lib_a-nextafterl.obj: nextafterl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nextafterl.obj `if test -f 'nextafterl.c'; then $(CYGPATH_W) 'nextafterl.c'; else $(CYGPATH_W) '$(srcdir)/nextafterl.c'; fi`
+
+lib_a-rintl.o: rintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rintl.o `test -f 'rintl.c' || echo '$(srcdir)/'`rintl.c
+
+lib_a-rintl.obj: rintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rintl.obj `if test -f 'rintl.c'; then $(CYGPATH_W) 'rintl.c'; else $(CYGPATH_W) '$(srcdir)/rintl.c'; fi`
+
+lib_a-scalbnl.o: scalbnl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scalbnl.o `test -f 'scalbnl.c' || echo '$(srcdir)/'`scalbnl.c
+
+lib_a-scalbnl.obj: scalbnl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scalbnl.obj `if test -f 'scalbnl.c'; then $(CYGPATH_W) 'scalbnl.c'; else $(CYGPATH_W) '$(srcdir)/scalbnl.c'; fi`
+
+lib_a-exp2l.o: exp2l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-exp2l.o `test -f 'exp2l.c' || echo '$(srcdir)/'`exp2l.c
+
+lib_a-exp2l.obj: exp2l.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-exp2l.obj `if test -f 'exp2l.c'; then $(CYGPATH_W) 'exp2l.c'; else $(CYGPATH_W) '$(srcdir)/exp2l.c'; fi`
+
+lib_a-scalblnl.o: scalblnl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scalblnl.o `test -f 'scalblnl.c' || echo '$(srcdir)/'`scalblnl.c
+
+lib_a-scalblnl.obj: scalblnl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scalblnl.obj `if test -f 'scalblnl.c'; then $(CYGPATH_W) 'scalblnl.c'; else $(CYGPATH_W) '$(srcdir)/scalblnl.c'; fi`
+
+lib_a-tgammal.o: tgammal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tgammal.o `test -f 'tgammal.c' || echo '$(srcdir)/'`tgammal.c
+
+lib_a-tgammal.obj: tgammal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tgammal.obj `if test -f 'tgammal.c'; then $(CYGPATH_W) 'tgammal.c'; else $(CYGPATH_W) '$(srcdir)/tgammal.c'; fi`
+
+lib_a-nearbyintl.o: nearbyintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nearbyintl.o `test -f 'nearbyintl.c' || echo '$(srcdir)/'`nearbyintl.c
+
+lib_a-nearbyintl.obj: nearbyintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-nearbyintl.obj `if test -f 'nearbyintl.c'; then $(CYGPATH_W) 'nearbyintl.c'; else $(CYGPATH_W) '$(srcdir)/nearbyintl.c'; fi`
+
+lib_a-lrintl.o: lrintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lrintl.o `test -f 'lrintl.c' || echo '$(srcdir)/'`lrintl.c
+
+lib_a-lrintl.obj: lrintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lrintl.obj `if test -f 'lrintl.c'; then $(CYGPATH_W) 'lrintl.c'; else $(CYGPATH_W) '$(srcdir)/lrintl.c'; fi`
+
+lib_a-llrintl.o: llrintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrintl.o `test -f 'llrintl.c' || echo '$(srcdir)/'`llrintl.c
+
+lib_a-llrintl.obj: llrintl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrintl.obj `if test -f 'llrintl.c'; then $(CYGPATH_W) 'llrintl.c'; else $(CYGPATH_W) '$(srcdir)/llrintl.c'; fi`
+
+lib_a-roundl.o: roundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-roundl.o `test -f 'roundl.c' || echo '$(srcdir)/'`roundl.c
+
+lib_a-roundl.obj: roundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-roundl.obj `if test -f 'roundl.c'; then $(CYGPATH_W) 'roundl.c'; else $(CYGPATH_W) '$(srcdir)/roundl.c'; fi`
+
+lib_a-lroundl.o: lroundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lroundl.o `test -f 'lroundl.c' || echo '$(srcdir)/'`lroundl.c
+
+lib_a-lroundl.obj: lroundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lroundl.obj `if test -f 'lroundl.c'; then $(CYGPATH_W) 'lroundl.c'; else $(CYGPATH_W) '$(srcdir)/lroundl.c'; fi`
+
+lib_a-llroundl.o: llroundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llroundl.o `test -f 'llroundl.c' || echo '$(srcdir)/'`llroundl.c
+
+lib_a-llroundl.obj: llroundl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llroundl.obj `if test -f 'llroundl.c'; then $(CYGPATH_W) 'llroundl.c'; else $(CYGPATH_W) '$(srcdir)/llroundl.c'; fi`
+
+lib_a-truncl.o: truncl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-truncl.o `test -f 'truncl.c' || echo '$(srcdir)/'`truncl.c
+
+lib_a-truncl.obj: truncl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-truncl.obj `if test -f 'truncl.c'; then $(CYGPATH_W) 'truncl.c'; else $(CYGPATH_W) '$(srcdir)/truncl.c'; fi`
+
+lib_a-remquol.o: remquol.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-remquol.o `test -f 'remquol.c' || echo '$(srcdir)/'`remquol.c
+
+lib_a-remquol.obj: remquol.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-remquol.obj `if test -f 'remquol.c'; then $(CYGPATH_W) 'remquol.c'; else $(CYGPATH_W) '$(srcdir)/remquol.c'; fi`
+
+lib_a-fdiml.o: fdiml.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fdiml.o `test -f 'fdiml.c' || echo '$(srcdir)/'`fdiml.c
+
+lib_a-fdiml.obj: fdiml.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fdiml.obj `if test -f 'fdiml.c'; then $(CYGPATH_W) 'fdiml.c'; else $(CYGPATH_W) '$(srcdir)/fdiml.c'; fi`
+
+lib_a-fmaxl.o: fmaxl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmaxl.o `test -f 'fmaxl.c' || echo '$(srcdir)/'`fmaxl.c
+
+lib_a-fmaxl.obj: fmaxl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmaxl.obj `if test -f 'fmaxl.c'; then $(CYGPATH_W) 'fmaxl.c'; else $(CYGPATH_W) '$(srcdir)/fmaxl.c'; fi`
+
+lib_a-fminl.o: fminl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fminl.o `test -f 'fminl.c' || echo '$(srcdir)/'`fminl.c
+
+lib_a-fminl.obj: fminl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fminl.obj `if test -f 'fminl.c'; then $(CYGPATH_W) 'fminl.c'; else $(CYGPATH_W) '$(srcdir)/fminl.c'; fi`
+
+lib_a-fmal.o: fmal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmal.o `test -f 'fmal.c' || echo '$(srcdir)/'`fmal.c
+
+lib_a-fmal.obj: fmal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fmal.obj `if test -f 'fmal.c'; then $(CYGPATH_W) 'fmal.c'; else $(CYGPATH_W) '$(srcdir)/fmal.c'; fi`
+
+lib_a-acoshl.o: acoshl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-acoshl.o `test -f 'acoshl.c' || echo '$(srcdir)/'`acoshl.c
+
+lib_a-acoshl.obj: acoshl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-acoshl.obj `if test -f 'acoshl.c'; then $(CYGPATH_W) 'acoshl.c'; else $(CYGPATH_W) '$(srcdir)/acoshl.c'; fi`
+
+lib_a-atanhl.o: atanhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atanhl.o `test -f 'atanhl.c' || echo '$(srcdir)/'`atanhl.c
+
+lib_a-atanhl.obj: atanhl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-atanhl.obj `if test -f 'atanhl.c'; then $(CYGPATH_W) 'atanhl.c'; else $(CYGPATH_W) '$(srcdir)/atanhl.c'; fi`
+
+lib_a-remainderl.o: remainderl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-remainderl.o `test -f 'remainderl.c' || echo '$(srcdir)/'`remainderl.c
+
+lib_a-remainderl.obj: remainderl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-remainderl.obj `if test -f 'remainderl.c'; then $(CYGPATH_W) 'remainderl.c'; else $(CYGPATH_W) '$(srcdir)/remainderl.c'; fi`
+
+lib_a-lgammal.o: lgammal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lgammal.o `test -f 'lgammal.c' || echo '$(srcdir)/'`lgammal.c
+
+lib_a-lgammal.obj: lgammal.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lgammal.obj `if test -f 'lgammal.c'; then $(CYGPATH_W) 'lgammal.c'; else $(CYGPATH_W) '$(srcdir)/lgammal.c'; fi`
+
+lib_a-erfl.o: erfl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-erfl.o `test -f 'erfl.c' || echo '$(srcdir)/'`erfl.c
+
+lib_a-erfl.obj: erfl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-erfl.obj `if test -f 'erfl.c'; then $(CYGPATH_W) 'erfl.c'; else $(CYGPATH_W) '$(srcdir)/erfl.c'; fi`
+
+lib_a-erfcl.o: erfcl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-erfcl.o `test -f 'erfcl.c' || echo '$(srcdir)/'`erfcl.c
+
+lib_a-erfcl.obj: erfcl.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-erfcl.obj `if test -f 'erfcl.c'; then $(CYGPATH_W) 'erfcl.c'; else $(CYGPATH_W) '$(srcdir)/erfcl.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-am:
+check: check-am
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags dvi dvi-am html html-am info \
+ info-am install install-am install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am
+
+objectlist.awk.in: $(noinst_LTLIBRARIES)
+ -rm -f objectlist.awk.in
+ for i in `ls *.lo` ; \
+ do \
+ echo $$i `pwd`/$$i >> objectlist.awk.in ; \
+ done
+
+.c.def:
+ $(CHEW) < $< > $*.def 2> $*.ref
+ touch stmp-def
+
+doc: $(chobj)
+
+# A partial dependency list.
+
+$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: roundl.c
===================================================================
--- roundl.c (nonexistent)
+++ roundl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+roundl (long double x)
+{
+ return round(x);
+}
+#endif
+
roundl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_infconst.c
===================================================================
--- s_infconst.c (nonexistent)
+++ s_infconst.c (revision 345)
@@ -0,0 +1,21 @@
+/* Infinity as a constant value. This is used for HUGE_VAL.
+ * Added by Cygnus Support.
+ */
+
+#include
+#include
+
+/* These should never actually be used any longer, as their use in math.h was
+ * removed, but they are kept here in case a user was pointing to them.
+ * FIXME: deprecate these identifiers and then delete them. */
+
+/* Float version of infinity. */
+const union __fmath __infinityf[1] = { { FLT_MAX+FLT_MAX } };
+
+/* Double version of infinity. */
+const union __dmath __infinity[1] = { { DBL_MAX+DBL_MAX } };
+
+/* Long double version of infinity. */
+#if defined(_HAVE_LONG_DOUBLE)
+const union __ldmath __infinityld[1] = { { LDBL_MAX+LDBL_MAX } };
+#endif
s_infconst.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_finite.c
===================================================================
--- sf_finite.c (nonexistent)
+++ sf_finite.c (revision 345)
@@ -0,0 +1,48 @@
+/* sf_finite.c -- float version of s_finite.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * finitef(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ int finitef(float x)
+#else
+ int finitef(x)
+ float x;
+#endif
+{
+ __int32_t ix;
+ GET_FLOAT_WORD(ix,x);
+ ix &= 0x7fffffff;
+ return (FLT_UWORD_IS_FINITE(ix));
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ int finite(double x)
+#else
+ int finite(x)
+ double x;
+#endif
+{
+ return finitef((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_finite.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fmaxl.c
===================================================================
--- fmaxl.c (nonexistent)
+++ fmaxl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fmaxl (long double x, long double y)
+{
+ return fmax(x, y);
+}
+#endif
+
fmaxl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: coshl.c
===================================================================
--- coshl.c (nonexistent)
+++ coshl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+coshl (long double x)
+{
+ return cosh(x);
+}
+#endif
+
coshl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_infinity.c
===================================================================
--- s_infinity.c (nonexistent)
+++ s_infinity.c (revision 345)
@@ -0,0 +1,49 @@
+/*
+ * infinity () returns the representation of infinity.
+ * Added by Cygnus Support.
+ */
+
+/*
+FUNCTION
+ <>, <>--representation of infinity
+
+INDEX
+ infinity
+INDEX
+ infinityf
+
+ANSI_SYNOPSIS
+ #include
+ double infinity(void);
+ float infinityf(void);
+
+DESCRIPTION
+ <> and <> return the special number IEEE
+ infinity in double- and single-precision arithmetic
+ respectively.
+
+PORTABILITY
+<> and <> are neither standard C nor POSIX. C and
+POSIX require macros HUGE_VAL and HUGE_VALF to be defined in math.h, which
+Newlib defines to be infinities corresponding to these archaic infinity()
+and infinityf() functions in floating-point implementations which do have
+infinities.
+
+QUICKREF
+ infinity - pure
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+ double infinity()
+{
+ double x;
+
+ INSERT_WORDS(x,0x7ff00000,0);
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_infinity.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: asinhl.c
===================================================================
--- asinhl.c (nonexistent)
+++ asinhl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+asinhl (long double x)
+{
+ return asinh(x);
+}
+#endif
+
asinhl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fmal.c
===================================================================
--- fmal.c (nonexistent)
+++ fmal.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fmal (long double x, long double y, long double z)
+{
+ return fma(x, y, z);
+}
+#endif
+
fmal.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_infinity.c
===================================================================
--- sf_infinity.c (nonexistent)
+++ sf_infinity.c (revision 345)
@@ -0,0 +1,23 @@
+/*
+ * infinityf () returns the representation of infinity.
+ * Added by Cygnus Support.
+ */
+
+#include "fdlibm.h"
+
+ float infinityf()
+{
+ float x;
+
+ SET_FLOAT_WORD(x,0x7f800000);
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+ double infinity()
+{
+ return (double) infinityf();
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_infinity.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_nextafter.c
===================================================================
--- s_nextafter.c (nonexistent)
+++ s_nextafter.c (revision 345)
@@ -0,0 +1,121 @@
+
+/* @(#)s_nextafter.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>---get next number
+
+INDEX
+ nextafter
+INDEX
+ nextafterf
+
+ANSI_SYNOPSIS
+ #include
+ double nextafter(double <[val]>, double <[dir]>);
+ float nextafterf(float <[val]>, float <[dir]>);
+
+TRAD_SYNOPSIS
+ #include
+
+ double nextafter(<[val]>, <[dir]>)
+ double <[val]>;
+ double <[exp]>;
+
+ float nextafter(<[val]>, <[dir]>)
+ float <[val]>;
+ float <[dir]>;
+
+
+DESCRIPTION
+<> returns the double-precision floating-point number
+closest to <[val]> in the direction toward <[dir]>. <>
+performs the same operation in single precision. For example,
+<> returns the smallest positive number which is
+representable in double precision.
+
+RETURNS
+Returns the next closest number to <[val]> in the direction toward
+<[dir]>.
+
+PORTABILITY
+ Neither <> nor <> is required by ANSI C
+ or by the System V Interface Definition (Issue 2).
+*/
+
+/* IEEE functions
+ * nextafter(x,y)
+ * return the next machine floating-point number of x in the
+ * direction toward y.
+ * Special cases:
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double nextafter(double x, double y)
+#else
+ double nextafter(x,y)
+ double x,y;
+#endif
+{
+ __int32_t hx,hy,ix,iy;
+ __uint32_t lx,ly;
+
+ EXTRACT_WORDS(hx,lx,x);
+ EXTRACT_WORDS(hy,ly,y);
+ ix = hx&0x7fffffff; /* |x| */
+ iy = hy&0x7fffffff; /* |y| */
+
+ if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */
+ ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */
+ return x+y;
+ if(x==y) return x; /* x=y, return x */
+ if((ix|lx)==0) { /* x == 0 */
+ INSERT_WORDS(x,hy&0x80000000,1); /* return +-minsubnormal */
+ y = x*x;
+ if(y==x) return y; else return x; /* raise underflow flag */
+ }
+ if(hx>=0) { /* x > 0 */
+ if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */
+ if(lx==0) hx -= 1;
+ lx -= 1;
+ } else { /* x < y, x += ulp */
+ lx += 1;
+ if(lx==0) hx += 1;
+ }
+ } else { /* x < 0 */
+ if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */
+ if(lx==0) hx -= 1;
+ lx -= 1;
+ } else { /* x > y, x += ulp */
+ lx += 1;
+ if(lx==0) hx += 1;
+ }
+ }
+ hy = hx&0x7ff00000;
+ if(hy>=0x7ff00000) return x+x; /* overflow */
+ if(hy<0x00100000) { /* underflow */
+ y = x*x;
+ if(y!=x) { /* raise underflow flag */
+ INSERT_WORDS(y,hx,lx);
+ return y;
+ }
+ }
+ INSERT_WORDS(x,hx,lx);
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_nextafter.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_nearbyint.c
===================================================================
--- sf_nearbyint.c (nonexistent)
+++ sf_nearbyint.c (revision 345)
@@ -0,0 +1,38 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float nearbyintf(float x)
+#else
+ float nearbyintf(x)
+ float x;
+#endif
+{
+ return rintf(x);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double nearbyint(double x)
+#else
+ double nearbyint(x)
+ double x;
+#endif
+{
+ return (double) nearbyintf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_nearbyint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_log2.c
===================================================================
--- s_log2.c (nonexistent)
+++ s_log2.c (revision 345)
@@ -0,0 +1,85 @@
+/* @(#)s_log2.c 5.1 93/09/24 */
+/* Modification from s_exp10.c Yaakov Selkowitz 2009. */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>--base 2 logarithm
+INDEX
+ log2
+INDEX
+ log2f
+
+ANSI_SYNOPSIS
+ #include
+ double log2(double <[x]>);
+ float log2f(float <[x]>);
+
+DESCRIPTION
+The <> functions compute the base-2 logarithm of <[x]>. A domain error
+occurs if the argument is less than zero. A range error occurs if the
+argument is zero.
+
+The Newlib implementations are not full, intrinisic calculations, but
+rather are derivatives based on <>. (Accuracy might be slightly off from
+a direct calculation.) In addition to functions, they are also implemented as
+macros defined in math.h:
+. #define log2(x) (log (x) / _M_LOG2_E)
+. #define log2f(x) (logf (x) / (float) _M_LOG2_E)
+To use the functions instead, just undefine the macros first.
+
+You can use the (non-ANSI) function <> to specify error
+handling for these functions, indirectly through the respective <>
+function.
+
+RETURNS
+The <> functions return
+@ifnottex
+<)>>
+@end ifnottex
+@tex
+$log_2(x)$
+@end tex
+on success.
+When <[x]> is zero, the
+returned value is <<-HUGE_VAL>> and <> is set to <>.
+When <[x]> is negative, the returned value is NaN (not a number) and
+<> is set to <>. You can control the error behavior via
+<>.
+
+PORTABILITY
+C99, POSIX, System V Interface Definition (Issue 6).
+*/
+
+/*
+ * wrapper log2(x)
+ */
+
+#include "fdlibm.h"
+#include
+#include
+#undef log2
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double log2(double x) /* wrapper log2 */
+#else
+ double log2(x) /* wrapper log2 */
+ double x;
+#endif
+{
+ return (log(x) / M_LOG2_E);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
s_log2.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_llrint.c
===================================================================
--- s_llrint.c (nonexistent)
+++ s_llrint.c (revision 345)
@@ -0,0 +1,108 @@
+/* lrint adapted to be llrint for Newlib, 2009 by Craig Howland. */
+/* @(#)s_lrint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * llrint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to llrint(x).
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+
+/* Adding a double, x, to 2^52 will cause the result to be rounded based on
+ the fractional part of x, according to the implementation's current rounding
+ mode. 2^52 is the smallest double that can be represented using all 52 significant
+ digits. */
+TWO52[2]={
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+long long int
+#ifdef __STDC__
+ llrint(double x)
+#else
+ llrint(x)
+ double x;
+#endif
+{
+ __int32_t i0,j0,sx;
+ __uint32_t i1;
+ double t;
+ volatile double w;
+ long long int result;
+
+ EXTRACT_WORDS(i0,i1,x);
+
+ /* Extract sign bit. */
+ sx = (i0>>31)&1;
+
+ /* Extract exponent field. */
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+
+ if(j0 < 20)
+ {
+ if(j0 < -1)
+ return 0;
+ else
+ {
+ w = TWO52[sx] + x;
+ t = w - TWO52[sx];
+ GET_HIGH_WORD(i0, t);
+ /* Detect the all-zeros representation of plus and
+ minus zero, which fails the calculation below. */
+ if ((i0 & ~(1 << 31)) == 0)
+ return 0;
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+ i0 &= 0x000fffff;
+ i0 |= 0x00100000;
+ result = i0 >> (20 - j0);
+ }
+ }
+ else if (j0 < (int)(8 * sizeof (long long int)) - 1)
+ {
+ if (j0 >= 52)
+ result = ((long long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) |
+ (i1 << (j0 - 52));
+ else
+ {
+ w = TWO52[sx] + x;
+ t = w - TWO52[sx];
+ EXTRACT_WORDS (i0, i1, t);
+ j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
+ i0 &= 0x000fffff;
+ i0 |= 0x00100000;
+ result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
+ }
+ }
+ else
+ {
+ return (long long int) x;
+ }
+
+ return sx ? -result : result;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_llrint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fabsl.c
===================================================================
--- fabsl.c (nonexistent)
+++ fabsl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fabsl (long double x)
+{
+ return fabs(x);
+}
+#endif
+
fabsl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_log2.c
===================================================================
--- sf_log2.c (nonexistent)
+++ sf_log2.c (revision 345)
@@ -0,0 +1,48 @@
+/* sf_log2.c -- float version of s_log2.c.
+ * Modification of sf_exp10.c by Yaakov Selkowitz 2009.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper log2f(x)
+ */
+
+#include "fdlibm.h"
+#include
+#include
+#undef log2
+#undef log2f
+
+#ifdef __STDC__
+ float log2f(float x) /* wrapper log2f */
+#else
+ float log2f(x) /* wrapper log2f */
+ float x;
+#endif
+{
+ return (logf(x) / (float) M_LOG2_E);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double log2(double x)
+#else
+ double log2(x)
+ double x;
+#endif
+{
+ return (double) log2f((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_log2.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: logl.c
===================================================================
--- logl.c (nonexistent)
+++ logl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+logl (long double x)
+{
+ return log(x);
+}
+#endif
+
logl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_isnand.c
===================================================================
--- s_isnand.c (nonexistent)
+++ s_isnand.c (revision 345)
@@ -0,0 +1,122 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <>, <>, <>, <>, <>, <>---test for exceptional numbers
+
+INDEX
+ isnan
+INDEX
+ isinf
+INDEX
+ finite
+
+INDEX
+ isnanf
+INDEX
+ isinff
+INDEX
+ finitef
+
+ANSI_SYNOPSIS
+ #include
+ int isnan(double <[arg]>);
+ int isinf(double <[arg]>);
+ int finite(double <[arg]>);
+ int isnanf(float <[arg]>);
+ int isinff(float <[arg]>);
+ int finitef(float <[arg]>);
+
+TRAD_SYNOPSIS
+ #include
+ int isnan(<[arg]>)
+ double <[arg]>;
+ int isinf(<[arg]>)
+ double <[arg]>;
+ int finite(<[arg]>);
+ double <[arg]>;
+ int isnanf(<[arg]>);
+ float <[arg]>;
+ int isinff(<[arg]>);
+ float <[arg]>;
+ int finitef(<[arg]>);
+ float <[arg]>;
+
+
+DESCRIPTION
+ These functions provide information on the floating-point
+ argument supplied.
+
+ There are five major number formats:
+ o+
+ o zero
+ A number which contains all zero bits.
+ o subnormal
+ A number with a zero exponent but a nonzero fraction.
+ o normal
+ A number with an exponent and a fraction.
+ o infinity
+ A number with an all 1's exponent and a zero fraction.
+ o NAN
+ A number with an all 1's exponent and a nonzero fraction.
+
+ o-
+
+ <> returns 1 if the argument is a nan. <>
+ returns 1 if the argument is infinity. <> returns 1 if the
+ argument is zero, subnormal or normal.
+
+ Note that by the C99 standard, <> and <> are macros
+ taking any type of floating-point and are declared in
+ <>. Newlib has chosen to declare these as macros in
+ <> and as functions in <>.
+
+ The <>, <> and <> functions perform the same
+ operations as their <>, <> and <>
+ counterparts, but on single-precision floating-point numbers.
+
+QUICKREF
+ isnan - pure
+QUICKREF
+ isinf - pure
+QUICKREF
+ finite - pure
+QUICKREF
+ isnan - pure
+QUICKREF
+ isinf - pure
+QUICKREF
+ finite - pure
+*/
+
+/*
+ * __isnand(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+int
+_DEFUN (__isnand, (x),
+ double x)
+{
+ __int32_t hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff;
+ hx |= (__uint32_t)(lx|(-lx))>>31;
+ hx = 0x7ff00000 - hx;
+ return (int)(((__uint32_t)(hx))>>31);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_isnand.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: local.h
===================================================================
--- local.h (nonexistent)
+++ local.h (revision 345)
@@ -0,0 +1 @@
+/* placeholder for future usage. */
local.h
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_isnan.c
===================================================================
--- sf_isnan.c (nonexistent)
+++ sf_isnan.c (revision 345)
@@ -0,0 +1,47 @@
+/* sf_c_isnan.c -- float version of s_c_isnan.c.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * isnanf(x) returns 1 is x is nan, else 0;
+ *
+ * isnanf is an extension declared in .
+ */
+
+#include "fdlibm.h"
+#include
+
+#undef isnanf
+
+int
+_DEFUN (isnanf, (x),
+ float x)
+{
+ __int32_t ix;
+ GET_FLOAT_WORD(ix,x);
+ ix &= 0x7fffffff;
+ return FLT_UWORD_IS_NAN(ix);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#undef isnan
+
+int
+_DEFUN (isnan, (x),
+ double x)
+{
+ return isnanf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_isnan.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: acosl.c
===================================================================
--- acosl.c (nonexistent)
+++ acosl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+acosl (long double x)
+{
+ return acos(x);
+}
+#endif
+
acosl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sinl.c
===================================================================
--- sinl.c (nonexistent)
+++ sinl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+sinl (long double x)
+{
+ return sin(x);
+}
+#endif
+
sinl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_isnanf.c
===================================================================
--- sf_isnanf.c (nonexistent)
+++ sf_isnanf.c (revision 345)
@@ -0,0 +1,37 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __isnanf(x) returns 1 is x is nan, else 0;
+ */
+
+#include "fdlibm.h"
+
+int
+_DEFUN (__isnanf, (x),
+ float x)
+{
+ __int32_t ix;
+ GET_FLOAT_WORD(ix,x);
+ ix &= 0x7fffffff;
+ return FLT_UWORD_IS_NAN(ix);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+int
+_DEFUN (__isnand, (x),
+ double x)
+{
+ return __isnanf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_isnanf.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: hypotl.c
===================================================================
--- hypotl.c (nonexistent)
+++ hypotl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+hypotl (long double x, long double y)
+{
+ return hypot(x, y);
+}
+#endif
+
hypotl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_scalbn.c
===================================================================
--- s_scalbn.c (nonexistent)
+++ s_scalbn.c (revision 345)
@@ -0,0 +1,110 @@
+
+/* @(#)s_scalbn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+<>, <>, <>, <>--scale by power of FLT_RADIX (=2)
+INDEX
+ scalbn
+INDEX
+ scalbnf
+INDEX
+ scalbln
+INDEX
+ scalblnf
+
+ANSI_SYNOPSIS
+ #include
+ double scalbn(double <[x]>, int <[n]>);
+ float scalbnf(float <[x]>, int <[n]>);
+ double scalbln(double <[x]>, long int <[n]>);
+ float scalblnf(float <[x]>, long int <[n]>);
+
+DESCRIPTION
+The <> and <> functions compute
+ @ifnottex
+ <[x]> times FLT_RADIX to the power <[n]>.
+ @end ifnottex
+ @tex
+ $x \cdot FLT\_RADIX^n$.
+ @end tex
+efficiently. The result is computed by manipulating the exponent, rather than
+by actually performing an exponentiation or multiplication. In this
+floating-point implementation FLT_RADIX=2, which makes the <>
+functions equivalent to the <> functions.
+
+RETURNS
+<[x]> times 2 to the power <[n]>. A range error may occur.
+
+PORTABILITY
+ANSI C, POSIX
+
+SEEALSO
+<>
+
+*/
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n computed by exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+huge = 1.0e+300,
+tiny = 1.0e-300;
+
+#ifdef __STDC__
+ double scalbn (double x, int n)
+#else
+ double scalbn (x,n)
+ double x; int n;
+#endif
+{
+ __int32_t k,hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ k = (hx&0x7ff00000)>>20; /* extract exponent */
+ if (k==0) { /* 0 or subnormal x */
+ if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
+ x *= two54;
+ GET_HIGH_WORD(hx,x);
+ k = ((hx&0x7ff00000)>>20) - 54;
+ if (n< -50000) return tiny*x; /*underflow*/
+ }
+ if (k==0x7ff) return x+x; /* NaN or Inf */
+ k = k+n;
+ if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */
+ if (k > 0) /* normal result */
+ {SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
+ if (k <= -54) {
+ if (n > 50000) /* in case integer overflow in n+k */
+ return huge*copysign(huge,x); /*overflow*/
+ else return tiny*copysign(tiny,x); /*underflow*/
+ }
+ k += 54; /* subnormal result */
+ SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
+ return x*twom54;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_scalbn.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: ceill.c
===================================================================
--- ceill.c (nonexistent)
+++ ceill.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+ceill (long double x)
+{
+ return ceil(x);
+}
+#endif
+
ceill.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: exp2l.c
===================================================================
--- exp2l.c (nonexistent)
+++ exp2l.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+exp2l (long double x)
+{
+ return exp2(x);
+}
+#endif
+
exp2l.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fdiml.c
===================================================================
--- fdiml.c (nonexistent)
+++ fdiml.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fdiml (long double x, long double y)
+{
+ return fdim(x, y);
+}
+#endif
+
fdiml.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_lround.c
===================================================================
--- sf_lround.c (nonexistent)
+++ sf_lround.c (revision 345)
@@ -0,0 +1,62 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ long int lroundf(float x)
+#else
+ long int lroundf(x)
+ float x;
+#endif
+{
+ __int32_t exponent_less_127;
+ __uint32_t w;
+ long int result;
+ __int32_t sign;
+
+ GET_FLOAT_WORD (w, x);
+ exponent_less_127 = ((w & 0x7f800000) >> 23) - 127;
+ sign = (w & 0x80000000) != 0 ? -1 : 1;
+ w &= 0x7fffff;
+ w |= 0x800000;
+
+ if (exponent_less_127 < (int)((8 * sizeof (long int)) - 1))
+ {
+ if (exponent_less_127 < 0)
+ return exponent_less_127 < -1 ? 0 : sign;
+ else if (exponent_less_127 >= 23)
+ result = (long int) w << (exponent_less_127 - 23);
+ else
+ {
+ w += 0x400000 >> exponent_less_127;
+ result = w >> (23 - exponent_less_127);
+ }
+ }
+ else
+ return (long int) x;
+
+ return sign * result;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ long int lround(double x)
+#else
+ long int lround(x)
+ double x;
+#endif
+{
+ return lroundf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_lround.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: floorl.c
===================================================================
--- floorl.c (nonexistent)
+++ floorl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+floorl (long double x)
+{
+ return floor(x);
+}
+#endif
+
floorl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_rint.c
===================================================================
--- s_rint.c (nonexistent)
+++ s_rint.c (revision 345)
@@ -0,0 +1,124 @@
+
+/* @(#)s_rint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>--round to integer
+INDEX
+ rint
+INDEX
+ rintf
+
+ANSI_SYNOPSIS
+ #include
+ double rint(double <[x]>);
+ float rintf(float <[x]>);
+
+DESCRIPTION
+ The <> functions round their argument to an integer value in
+ floating-point format, using the current rounding direction. They
+ raise the "inexact" floating-point exception if the result differs
+ in value from the argument. See the <> functions for the
+ same function with the "inexact" floating-point exception never being
+ raised. Newlib does not directly support floating-point exceptions.
+ The <> functions are written so that the "inexact" exception is
+ raised in hardware implementations that support it, even though Newlib
+ does not provide access.
+
+RETURNS
+<[x]> rounded to an integral value, using the current rounding direction.
+
+PORTABILITY
+ANSI C, POSIX
+
+SEEALSO
+<>, <>
+
+*/
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to rint(x).
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+TWO52[2]={
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+#ifdef __STDC__
+ double rint(double x)
+#else
+ double rint(x)
+ double x;
+#endif
+{
+ __int32_t i0,j0,sx;
+ __uint32_t i,i1;
+ double t;
+ volatile double w;
+ EXTRACT_WORDS(i0,i1,x);
+ sx = (i0>>31)&1;
+ j0 = ((i0>>20)&0x7ff)-0x3ff;
+ if(j0<20) {
+ if(j0<0) {
+ if(((i0&0x7fffffff)|i1)==0) return x;
+ i1 |= (i0&0x0fffff);
+ i0 &= 0xfffe0000;
+ i0 |= ((i1|-i1)>>12)&0x80000;
+ SET_HIGH_WORD(x,i0);
+ w = TWO52[sx]+x;
+ t = w-TWO52[sx];
+ GET_HIGH_WORD(i0,t);
+ SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) return x; /* x is integral */
+ i>>=1;
+ if(((i0&i)|i1)!=0) {
+ if(j0==19) i1 = 0x40000000; else
+ i0 = (i0&(~i))|((0x20000)>>j0);
+ }
+ }
+ } else if (j0>51) {
+ if(j0==0x400) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ } else {
+ i = ((__uint32_t)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) return x; /* x is integral */
+ i>>=1;
+ if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
+ }
+ INSERT_WORDS(x,i0,i1);
+ w = TWO52[sx]+x;
+ return w-TWO52[sx];
+}
+
+#endif /* _DOUBLE_IS_32BITS */
+
+
+
s_rint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: frexpl.c
===================================================================
--- frexpl.c (nonexistent)
+++ frexpl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+frexpl (long double x, int *eptr)
+{
+ return frexp(x, eptr);
+}
+#endif
+
frexpl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: modfl.c
===================================================================
--- modfl.c (nonexistent)
+++ modfl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+modfl (long double x, long double *iptr)
+{
+ return modf(x, iptr);
+}
+#endif
+
modfl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_lib_ver.c
===================================================================
--- s_lib_ver.c (nonexistent)
+++ s_lib_ver.c (revision 345)
@@ -0,0 +1,35 @@
+
+/* @(#)s_lib_ver.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * MACRO for standards
+ */
+
+#include "fdlibm.h"
+
+/*
+ * define and initialize _LIB_VERSION
+ */
+#ifdef _POSIX_MODE
+_LIB_VERSION_TYPE _LIB_VERSION = _POSIX_;
+#else
+#ifdef _XOPEN_MODE
+_LIB_VERSION_TYPE _LIB_VERSION = _XOPEN_;
+#else
+#ifdef _SVID3_MODE
+_LIB_VERSION_TYPE _LIB_VERSION = _SVID_;
+#else /* default _IEEE_MODE */
+_LIB_VERSION_TYPE _LIB_VERSION = _IEEE_;
+#endif
+#endif
+#endif
s_lib_ver.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_rint.c
===================================================================
--- sf_rint.c (nonexistent)
+++ sf_rint.c (revision 345)
@@ -0,0 +1,84 @@
+/* sf_rint.c -- float version of s_rint.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+TWO23[2]={
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+#ifdef __STDC__
+ float rintf(float x)
+#else
+ float rintf(x)
+ float x;
+#endif
+{
+ __int32_t i0,j0,sx;
+ __uint32_t i,i1,ix;
+ float t;
+ volatile float w;
+ GET_FLOAT_WORD(i0,x);
+ sx = (i0>>31)&1;
+ ix = (i0&0x7fffffff);
+ j0 = (ix>>23)-0x7f;
+ if(j0<23) {
+ if(FLT_UWORD_IS_ZERO(ix))
+ return x;
+ if(j0<0) {
+ i1 = (i0&0x07fffff);
+ i0 &= 0xfff00000;
+ i0 |= ((i1|-i1)>>9)&0x400000;
+ SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+ GET_FLOAT_WORD(i0,t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) return x; /* x is integral */
+ i>>=1;
+ if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
+ }
+ } else {
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ return w-TWO23[sx];
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double rint(double x)
+#else
+ double rint(x)
+ double x;
+#endif
+{
+ return (double) rintf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_rint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: fminl.c
===================================================================
--- fminl.c (nonexistent)
+++ fminl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+fminl (long double x, long double y)
+{
+ return fmin(x, y);
+}
+#endif
+
fminl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_logb.c
===================================================================
--- s_logb.c (nonexistent)
+++ s_logb.c (revision 345)
@@ -0,0 +1,110 @@
+/* 2009 for Newlib: Sun's s_ilogb.c converted to be s_logb.c. */
+/* @(#)s_ilogb.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+ <>, <>--get exponent of floating-point number
+INDEX
+ logb
+INDEX
+ logbf
+
+ANSI_SYNOPSIS
+ #include
+ double logb(double <[x]>);
+ float logbf(float <[x]>);
+
+DESCRIPTION
+The <> functions extract the exponent of <[x]>, as a signed integer value
+in floating-point format. If <[x]> is subnormal it is treated as though it were
+normalized; thus, for positive finite <[x]>,
+@ifnottex
+1 <= (<[x]> * FLT_RADIX to the power (-logb(<[x]>))) < FLT_RADIX.
+@end ifnottex
+@tex
+$1 \leq ( x \cdot FLT\_RADIX ^ {-logb(x)} ) < FLT\_RADIX$.
+@end tex
+A domain error may occur if the argument is zero.
+In this floating-point implementation, FLT_RADIX is 2. Which also means
+that for finite <[x]>, <>(<[x]>) = <>(<>(<>(<[x]>))).
+
+All nonzero, normal numbers can be described as
+@ifnottex
+<[m]> * 2**<[p]>, where 1.0 <= <[m]> < 2.0.
+@end ifnottex
+@tex
+$m \cdot 2^p$, where $1.0 \leq m < 2.0$.
+@end tex
+The <> functions examine the argument <[x]>, and return <[p]>.
+The <> functions are similar to the <> functions, but
+returning <[m]> adjusted to the interval [.5, 1) or 0, and <[p]>+1.
+
+RETURNS
+@comment Formatting note: "$@" forces a new line
+When <[x]> is:@*
++inf or -inf, +inf is returned;@*
+NaN, NaN is returned;@*
+0, -inf is returned, and the divide-by-zero exception is raised;@*
+otherwise, the <> functions return the signed exponent of <[x]>.
+
+PORTABILITY
+ANSI C, POSIX
+
+SEEALSO
+frexp, ilogb
+*/
+
+/* double logb(double x)
+ * return the binary exponent of non-zero x
+ * logb(0) = -inf, raise divide-by-zero floating point exception
+ * logb(+inf|-inf) = +inf (no signal is raised)
+ * logb(NaN) = NaN (no signal is raised)
+ * Per C99 recommendation, a NaN argument is returned unchanged.
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+double
+#ifdef __STDC__
+logb(double x)
+#else
+logb(x)
+double x;
+#endif
+{
+ __int32_t hx,lx,ix;
+
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff; /* high |x| */
+ if(hx<0x00100000) { /* 0 or subnormal */
+ if((hx|lx)==0) {
+ double xx;
+ /* arg==0: return -inf and raise divide-by-zero exception */
+ INSERT_WORDS(xx,hx,lx); /* +0.0 */
+ return -1./xx; /* logb(0) = -inf */
+ }
+ else /* subnormal x */
+ if(hx==0) {
+ for (ix = -1043; lx>0; lx<<=1) ix -=1;
+ } else {
+ for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1;
+ }
+ return (double) ix;
+ }
+ else if (hx<0x7ff00000) return (hx>>20)-1023; /* normal # */
+ else if (hx>0x7ff00000 || lx) return x; /* x==NaN */
+ else return HUGE_VAL; /* x==inf (+ or -) */
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_logb.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: asinl.c
===================================================================
--- asinl.c (nonexistent)
+++ asinl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+asinl (long double x)
+{
+ return asin(x);
+}
+#endif
+
asinl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_scalbln.c
===================================================================
--- sf_scalbln.c (nonexistent)
+++ sf_scalbln.c (revision 345)
@@ -0,0 +1,71 @@
+/* s_scalbnf.c -- float version of s_scalbn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two25 = 3.355443200e+07, /* 0x4c000000 */
+twom25 = 2.9802322388e-08, /* 0x33000000 */
+huge = 1.0e+30,
+tiny = 1.0e-30;
+
+#ifdef __STDC__
+ float scalblnf (float x, long int n)
+#else
+ float scalblnf (x,n)
+ float x; long int n;
+#endif
+{
+ __int32_t k,ix;
+ GET_FLOAT_WORD(ix,x);
+ k = (ix&0x7f800000)>>23; /* extract exponent */
+ if (k==0) { /* 0 or subnormal x */
+ if ((ix&0x7fffffff)==0) return x; /* +-0 */
+ x *= two25;
+ GET_FLOAT_WORD(ix,x);
+ k = ((ix&0x7f800000)>>23) - 25;
+ }
+ if (k==0xff) return x+x; /* NaN or Inf */
+ k = k+n;
+ if (n> 50000 || k > 0xfe)
+ return huge*copysignf(huge,x); /* overflow */
+ if (n< -50000)
+ return tiny*copysignf(tiny,x); /*underflow*/
+ if (k > 0) /* normal result */
+ {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
+ if (k <= -25)
+ return tiny*copysignf(tiny,x); /*underflow*/
+ k += 25; /* subnormal result */
+ SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
+ return x*twom25;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double scalbln (double x, long int n)
+#else
+ double scalbln (x,n)
+ double x; long int n;
+#endif
+{
+ return (double) scalblnf((float) x, n);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_scalbln.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: nearbyintl.c
===================================================================
--- nearbyintl.c (nonexistent)
+++ nearbyintl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+nearbyintl (long double x)
+{
+ return nearbyint(x);
+}
+#endif
+
nearbyintl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: acoshl.c
===================================================================
--- acoshl.c (nonexistent)
+++ acoshl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+acoshl (long double x)
+{
+ return acosh(x);
+}
+#endif
+
acoshl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_fmin.c
===================================================================
--- s_fmin.c (nonexistent)
+++ s_fmin.c (revision 345)
@@ -0,0 +1,52 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+/*
+FUNCTION
+<>, <>--minimum
+INDEX
+ fmin
+INDEX
+ fminf
+
+ANSI_SYNOPSIS
+ #include
+ double fmin(double <[x]>, double <[y]>);
+ float fminf(float <[x]>, float <[y]>);
+
+DESCRIPTION
+The <> functions determine the minimum numeric value of their arguments.
+NaN arguments are treated as missing data: if one argument is a NaN and the
+other numeric, then the <> functions choose the numeric value.
+
+RETURNS
+The <> functions return the minimum numeric value of their arguments.
+
+PORTABILITY
+ANSI C, POSIX.
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fmin(double x, double y)
+#else
+ double fmin(x,y)
+ double x;
+ double y;
+#endif
+{
+ if (__fpclassifyd(x) == FP_NAN)
+ return y;
+ if (__fpclassifyd(y) == FP_NAN)
+ return x;
+
+ return x < y ? x : y;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_fmin.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_logb.c
===================================================================
--- sf_logb.c (nonexistent)
+++ sf_logb.c (revision 345)
@@ -0,0 +1,62 @@
+/* 2009 for Newlib: Sun's sf_ilogb.c converted to be sf_logb.c. */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* float logb(float x)
+ * return the binary exponent of non-zero x
+ * logbf(0) = -inf, raise divide-by-zero floating point exception
+ * logbf(+inf|-inf) = +inf (no signal is raised)
+ * logbf(NaN) = NaN (no signal is raised)
+ * Per C99 recommendation, a NaN argument is returned unchanged.
+ */
+
+#include "fdlibm.h"
+
+float
+#ifdef __STDC__
+logbf(float x)
+#else
+logbf(x)
+float x;
+#endif
+{
+ __int32_t hx,ix;
+
+ GET_FLOAT_WORD(hx,x);
+ hx &= 0x7fffffff;
+ if(FLT_UWORD_IS_ZERO(hx)) {
+ float xx;
+ /* arg==0: return -inf and raise divide-by-zero exception */
+ SET_FLOAT_WORD(xx,hx); /* +0.0 */
+ return -1./xx; /* logbf(0) = -inf */
+ }
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) {
+ for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+ return (float) ix;
+ }
+ else if (FLT_UWORD_IS_INFINITE(hx)) return HUGE_VALF; /* x==+|-inf */
+ else if (FLT_UWORD_IS_NAN(hx)) return x;
+ else return (float) ((hx>>23)-127);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double logb(double x)
+#else
+ double logb(x)
+ double x;
+#endif
+{
+ return (double) logbf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_logb.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_nearbyint.c
===================================================================
--- s_nearbyint.c (nonexistent)
+++ s_nearbyint.c (revision 345)
@@ -0,0 +1,64 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>--round to integer
+INDEX
+ nearbyint
+INDEX
+ nearbyintf
+
+ANSI_SYNOPSIS
+ #include
+ double nearbyint(double <[x]>);
+ float nearbyintf(float <[x]>);
+
+DESCRIPTION
+The <> functions round their argument to an integer value in
+floating-point format, using the current rounding direction and
+(supposedly) without raising the "inexact" floating-point exception.
+See the <> functions for the same function with the "inexact"
+floating-point exception being raised when appropriate.
+
+BUGS
+Newlib does not support the floating-point exception model, so that
+the floating-point exception control is not present and thereby what may
+be seen will be compiler and hardware dependent in this regard.
+The Newlib <> functions are identical to the <>
+functions with respect to the floating-point exception behavior, and
+will cause the "inexact" exception to be raised for most targets.
+
+RETURNS
+<[x]> rounded to an integral value, using the current rounding direction.
+
+PORTABILITY
+ANSI C, POSIX
+
+SEEALSO
+<>, <>
+*/
+
+#include
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double nearbyint(double x)
+#else
+ double nearbyint(x)
+ double x;
+#endif
+{
+ return rint(x);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_nearbyint.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_round.c
===================================================================
--- sf_round.c (nonexistent)
+++ sf_round.c (revision 345)
@@ -0,0 +1,78 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float roundf(float x)
+#else
+ float roundf(x)
+ float x;
+#endif
+{
+ int signbit;
+ __uint32_t w;
+ /* Most significant word, least significant word. */
+ int exponent_less_127;
+
+ GET_FLOAT_WORD(w, x);
+
+ /* Extract sign bit. */
+ signbit = w & 0x80000000;
+
+ /* Extract exponent field. */
+ exponent_less_127 = (int)((w & 0x7f800000) >> 23) - 127;
+
+ if (exponent_less_127 < 23)
+ {
+ if (exponent_less_127 < 0)
+ {
+ w &= 0x80000000;
+ if (exponent_less_127 == -1)
+ /* Result is +1.0 or -1.0. */
+ w |= (127 << 23);
+ }
+ else
+ {
+ unsigned int exponent_mask = 0x007fffff >> exponent_less_127;
+ if ((w & exponent_mask) == 0)
+ /* x has an integral value. */
+ return x;
+
+ w += 0x00400000 >> exponent_less_127;
+ w &= ~exponent_mask;
+ }
+ }
+ else
+ {
+ if (exponent_less_127 == 128)
+ /* x is NaN or infinite. */
+ return x + x;
+ else
+ return x;
+ }
+ SET_FLOAT_WORD(x, w);
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double round(double x)
+#else
+ double round(x)
+ double x;
+#endif
+{
+ return (double) roundf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_round.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: atan2l.c
===================================================================
--- atan2l.c (nonexistent)
+++ atan2l.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+atan2l (long double v, long double u)
+{
+ return atan2(v, u);
+}
+#endif
+
atan2l.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_fmin.c
===================================================================
--- sf_fmin.c (nonexistent)
+++ sf_fmin.c (revision 345)
@@ -0,0 +1,38 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float fminf(float x, float y)
+#else
+ float fminf(x,y)
+ float x;
+ float y;
+#endif
+{
+ if (__fpclassifyf(x) == FP_NAN)
+ return y;
+ if (__fpclassifyf(y) == FP_NAN)
+ return x;
+
+ return x < y ? x : y;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double fmin(double x, double y)
+#else
+ double fmin(x,y)
+ double x;
+ double y;
+#endif
+{
+ return (double) fminf((float) x, (float) y);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_fmin.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_expm1.c
===================================================================
--- sf_expm1.c (nonexistent)
+++ sf_expm1.c (revision 345)
@@ -0,0 +1,145 @@
+/* sf_expm1.c -- float version of s_expm1.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __v810__
+#define const
+#endif
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0,
+huge = 1.0e+30,
+tiny = 1.0e-30,
+ln2_hi = 6.9313812256e-01,/* 0x3f317180 */
+ln2_lo = 9.0580006145e-06,/* 0x3717f7d1 */
+invln2 = 1.4426950216e+00,/* 0x3fb8aa3b */
+ /* scaled coefficients related to expm1 */
+Q1 = -3.3333335072e-02, /* 0xbd088889 */
+Q2 = 1.5873016091e-03, /* 0x3ad00d01 */
+Q3 = -7.9365076090e-05, /* 0xb8a670cd */
+Q4 = 4.0082177293e-06, /* 0x36867e54 */
+Q5 = -2.0109921195e-07; /* 0xb457edbb */
+
+#ifdef __STDC__
+ float expm1f(float x)
+#else
+ float expm1f(x)
+ float x;
+#endif
+{
+ float y,hi,lo,c,t,e,hxs,hfx,r1;
+ __int32_t k,xsb;
+ __uint32_t hx;
+
+ GET_FLOAT_WORD(hx,x);
+ xsb = hx&0x80000000; /* sign bit of x */
+ if(xsb==0) y=x; else y= -x; /* y = |x| */
+ hx &= 0x7fffffff; /* high word of |x| */
+
+ /* filter out huge and non-finite argument */
+ if(hx >= 0x4195b844) { /* if |x|>=27*ln2 */
+ if(FLT_UWORD_IS_NAN(hx))
+ return x+x;
+ if(FLT_UWORD_IS_INFINITE(hx))
+ return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
+ if(xsb == 0 && hx > FLT_UWORD_LOG_MAX) /* if x>=o_threshold */
+ return huge*huge; /* overflow */
+ if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */
+ if(x+tiny<(float)0.0) /* raise inexact */
+ return tiny-one; /* return -1 */
+ }
+ }
+
+ /* argument reduction */
+ if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */
+ if(xsb==0)
+ {hi = x - ln2_hi; lo = ln2_lo; k = 1;}
+ else
+ {hi = x + ln2_hi; lo = -ln2_lo; k = -1;}
+ } else {
+ k = invln2*x+((xsb==0)?(float)0.5:(float)-0.5);
+ t = k;
+ hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
+ lo = t*ln2_lo;
+ }
+ x = hi - lo;
+ c = (hi-x)-lo;
+ }
+ else if(hx < 0x33000000) { /* when |x|<2**-25, return x */
+ t = huge+x; /* return x with inexact flags when x!=0 */
+ return x - (t-(huge+x));
+ }
+ else k = 0;
+
+ /* x is now in primary range */
+ hfx = (float)0.5*x;
+ hxs = x*hfx;
+ r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
+ t = (float)3.0-r1*hfx;
+ e = hxs*((r1-t)/((float)6.0 - x*t));
+ if(k==0) return x - (x*e-hxs); /* c is 0 */
+ else {
+ e = (x*(e-c)-c);
+ e -= hxs;
+ if(k== -1) return (float)0.5*(x-e)-(float)0.5;
+ if(k==1) {
+ if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5));
+ else return one+(float)2.0*(x-e);
+ }
+ if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
+ __int32_t i;
+ y = one-(e-x);
+ GET_FLOAT_WORD(i,y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ return y-one;
+ }
+ t = one;
+ if(k<23) {
+ __int32_t i;
+ SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
+ y = t-(e-x);
+ GET_FLOAT_WORD(i,y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ } else {
+ __int32_t i;
+ SET_FLOAT_WORD(t,((0x7f-k)<<23)); /* 2^-k */
+ y = x-(e+t);
+ y += one;
+ GET_FLOAT_WORD(i,y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ }
+ }
+ return y;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double expm1(double x)
+#else
+ double expm1(x)
+ double x;
+#endif
+{
+ return (double) expm1f((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_expm1.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_exp10.c
===================================================================
--- sf_exp10.c (nonexistent)
+++ sf_exp10.c (revision 345)
@@ -0,0 +1,47 @@
+/* sf_exp10.c -- float version of s_exp10.c.
+ * Modification of sf_exp2.c by Yaakov Selkowitz 2007.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper exp10f(x)
+ */
+
+#undef exp10f
+#include "fdlibm.h"
+#include
+#include
+
+#ifdef __STDC__
+ float exp10f(float x) /* wrapper exp10f */
+#else
+ float exp10f(x) /* wrapper exp10f */
+ float x;
+#endif
+{
+ return powf(10.0, x);
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double exp10(double x)
+#else
+ double exp10(x)
+ double x;
+#endif
+{
+ return (double) exp10f((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_exp10.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_isnan.c
===================================================================
--- s_isnan.c (nonexistent)
+++ s_isnan.c (revision 345)
@@ -0,0 +1,206 @@
+
+/* @(#)s_isnan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+<>, <>, <>, <>, and <>--floating-point classification macros; <>, <>, <>, <>, <>, <>--test for exceptional numbers
+
+@c C99 (start
+INDEX
+ fpclassify
+INDEX
+ isfinite
+INDEX
+ isinf
+INDEX
+ isnan
+INDEX
+ isnormal
+@c C99 end)
+@c SUSv2 (start
+INDEX
+ isnan
+INDEX
+ isinf
+INDEX
+ finite
+
+INDEX
+ isnanf
+INDEX
+ isinff
+INDEX
+ finitef
+@c SUSv2 end)
+
+ANSI_SYNOPSIS
+ [C99 standard macros:]
+ #include
+ int fpclassify(real-floating <[x]>);
+ int isfinite(real-floating <[x]>);
+ int isinf(real-floating <[x]>);
+ int isnan(real-floating <[x]>);
+ int isnormal(real-floating <[x]>);
+
+ [Archaic SUSv2 functions:]
+ #include
+ int isnan(double <[arg]>);
+ int isinf(double <[arg]>);
+ int finite(double <[arg]>);
+ int isnanf(float <[arg]>);
+ int isinff(float <[arg]>);
+ int finitef(float <[arg]>);
+
+DESCRIPTION
+<>, <>, <>, <>, and <> are macros
+defined for use in classifying floating-point numbers. This is a help because
+of special "values" like NaN and infinities. In the synopses shown,
+"real-floating" indicates that the argument is an expression of real floating
+type. These function-like macros are C99 and POSIX-compliant, and should be
+used instead of the now-archaic SUSv2 functions.
+
+The <> macro classifies its argument value as NaN, infinite, normal,
+subnormal, zero, or into another implementation-defined category. First, an
+argument represented in a format wider than its semantic type is converted to
+its semantic type. Then classification is based on the type of the argument.
+The <> macro returns the value of the number classification macro
+appropriate to the value of its argument:
+
+o+
+o FP_INFINITE
+ <[x]> is either plus or minus infinity;
+o FP_NAN
+ <[x]> is "Not A Number" (plus or minus);
+o FP_NORMAL
+ <[x]> is a "normal" number (i.e. is none of the other special forms);
+o FP_SUBNORMAL
+ <[x]> is too small be stored as a regular normalized number (i.e. loss of precision is likely); or
+o FP_ZERO
+ <[x]> is 0 (either plus or minus).
+o-
+
+The "<>" set of macros provide a useful set of shorthand ways for
+classifying floating-point numbers, providing the following equivalent
+relations:
+
+o+
+o <>(<[x]>)
+returns non-zero if <[x]> is finite. (It is equivalent to
+(<>(<[x]>) != FP_INFINITE && <>(<[x]>) != FP_NAN).)
+
+o <>(<[x]>)
+returns non-zero if <[x]> is infinite. (It is equivalent to
+(<>(<[x]>) == FP_INFINITE).)
+
+o <>(<[x]>)
+returns non-zero if <[x]> is NaN. (It is equivalent to
+(<>(<[x]>) == FP_NAN).)
+
+o <>(<[x]>)
+returns non-zero if <[x]> is normal. (It is equivalent to
+(<>(<[x]>) == FP_NORMAL).)
+o-
+
+ The archaic SUSv2 functions provide information on the floating-point
+ argument supplied.
+
+ There are five major number formats ("exponent" referring to the
+ biased exponent in the binary-encoded number):
+ o+
+ o zero
+ A number which contains all zero bits, excluding the sign bit.
+ o subnormal
+ A number with a zero exponent but a nonzero fraction.
+ o normal
+ A number with an exponent and a fraction.
+ o infinity
+ A number with an all 1's exponent and a zero fraction.
+ o NAN
+ A number with an all 1's exponent and a nonzero fraction.
+
+ o-
+
+ <> returns 1 if the argument is a nan. <>
+ returns 1 if the argument is infinity. <> returns 1 if the
+ argument is zero, subnormal or normal.
+
+ The <>, <> and <> functions perform the same
+ operations as their <>, <> and <>
+ counterparts, but on single-precision floating-point numbers.
+
+ It should be noted that the C99 standard dictates that <>
+ and <> are macros that operate on multiple types of
+ floating-point. The SUSv2 standard declares <> as
+ a function taking double. Newlib has decided to declare
+ them both as macros in math.h and as functions in ieeefp.h to
+ maintain backward compatibility.
+
+RETURNS
+@comment Formatting note: "$@" forces a new line
+The fpclassify macro returns the value corresponding to the appropriate FP_ macro.@*
+The isfinite macro returns nonzero if <[x]> is finite, else 0.@*
+The isinf macro returns nonzero if <[x]> is infinite, else 0.@*
+The isnan macro returns nonzero if <[x]> is an NaN, else 0.@*
+The isnormal macro returns nonzero if <[x]> has a normal value, else 0.
+
+PORTABILITY
+math.h macros are C99, POSIX.
+
+ieeefp.h funtions are outdated and should be avoided.
+
+QUICKREF
+ isnan - pure
+QUICKREF
+ isinf - pure
+QUICKREF
+ finite - pure
+QUICKREF
+ isnan - pure
+QUICKREF
+ isinf - pure
+QUICKREF
+ finite - pure
+*/
+
+/*
+ * isnan(x) returns 1 is x is nan, else 0;
+ * no branching!
+ *
+ * The C99 standard dictates that isnan is a macro taking
+ * multiple floating-point types while the SUSv2 standard
+ * notes it is a function taking a double argument. Newlib
+ * has chosen to implement it as a macro in and
+ * declare it as a function in .
+ */
+
+#include "fdlibm.h"
+#include
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ int isnan(double x)
+#else
+ int isnan(x)
+ double x;
+#endif
+{
+ __int32_t hx,lx;
+ EXTRACT_WORDS(hx,lx,x);
+ hx &= 0x7fffffff;
+ hx |= (__uint32_t)(lx|(-lx))>>31;
+ hx = 0x7ff00000 - hx;
+ return (int)(((__uint32_t)(hx))>>31);
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_isnan.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_remquo.c
===================================================================
--- s_remquo.c (nonexistent)
+++ s_remquo.c (revision 345)
@@ -0,0 +1,208 @@
+/* Adapted for Newlib, 2009. (Allow for int < 32 bits; return *quo=0 during
+ * errors to make test scripts easier.) */
+/* @(#)e_fmod.c 1.3 95/01/18 */
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+FUNCTION
+<>, <>--remainder and part of quotient
+INDEX
+ remquo
+INDEX
+ remquof
+
+ANSI_SYNOPSIS
+ #include
+ double remquo(double <[x]>, double <[y]>, int *<[quo]>);
+ float remquof(float <[x]>, float <[y]>, int *<[quo]>);
+
+DESCRIPTION
+The <> functions compute the same remainder as the <>
+functions; this value is in the range -<[y]>/2 ... +<[y]>/2. In the object
+pointed to by <> they store a value whose sign is the sign of <>/<>
+and whose magnitude is congruent modulo 2**n to the magnitude of the integral
+quotient of <>/<>. (That is, <> is given the n lsbs of the
+quotient, not counting the sign.) This implementation uses n=31 if int is 32
+bits or more, otherwise, n is 1 less than the width of int.
+
+For example:
+. remquo(-29.0, 3.0, &<[quo]>)
+returns -1.0 and sets <[quo]>=10, and
+. remquo(-98307.0, 3.0, &<[quo]>)
+returns -0.0 and sets <[quo]>=-32769, although for 16-bit int, <[quo]>=-1. In
+the latter case, the actual quotient of -(32769=0x8001) is reduced to -1
+because of the 15-bit limitation for the quotient.
+
+RETURNS
+When either argument is NaN, NaN is returned. If <[y]> is 0 or <[x]> is
+infinite (and neither is NaN), a domain error occurs (i.e. the "invalid"
+floating point exception is raised or errno is set to EDOM), and NaN is
+returned.
+Otherwise, the <> functions return <[x]> REM <[y]>.
+
+BUGS
+IEEE754-2008 calls for <>(subnormal, inf) to cause the "underflow"
+floating-point exception. This implementation does not.
+
+PORTABILITY
+C99, POSIX.
+
+*/
+
+#include
+#include
+#include "fdlibm.h"
+
+/* For quotient, return either all 31 bits that can from calculation (using
+ * int32_t), or as many as can fit into an int that is smaller than 32 bits. */
+#if INT_MAX > 0x7FFFFFFFL
+ #define QUO_MASK 0x7FFFFFFF
+# else
+ #define QUO_MASK INT_MAX
+#endif
+
+static const double Zero[] = {0.0, -0.0,};
+
+/*
+ * Return the IEEE remainder and set *quo to the last n bits of the
+ * quotient, rounded to the nearest integer. We choose n=31--if that many fit--
+ * because we wind up computing all the integer bits of the quotient anyway as
+ * a side-effect of computing the remainder by the shift and subtract
+ * method. In practice, this is far more bits than are needed to use
+ * remquo in reduction algorithms.
+ */
+double
+remquo(double x, double y, int *quo)
+{
+ __int32_t n,hx,hy,hz,ix,iy,sx,i;
+ __uint32_t lx,ly,lz,q,sxy;
+
+ EXTRACT_WORDS(hx,lx,x);
+ EXTRACT_WORDS(hy,ly,y);
+ sxy = (hx ^ hy) & 0x80000000;
+ sx = hx&0x80000000; /* sign of x */
+ hx ^=sx; /* |x| */
+ hy &= 0x7fffffff; /* |y| */
+
+ /* purge off exception values */
+ if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */
+ ((hy|((ly|-ly)>>31))>0x7ff00000)) { /* or y is NaN */
+ *quo = 0; /* Not necessary, but return consistent value */
+ return (x*y)/(x*y);
+ }
+ if(hx<=hy) {
+ if((hx>31]; /* |x|=|y| return x*0 */
+ }
+ }
+
+ /* determine ix = ilogb(x) */
+ if(hx<0x00100000) { /* subnormal x */
+ if(hx==0) {
+ for (ix = -1043, i=lx; i>0; i<<=1) ix -=1;
+ } else {
+ for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1;
+ }
+ } else ix = (hx>>20)-1023;
+
+ /* determine iy = ilogb(y) */
+ if(hy<0x00100000) { /* subnormal y */
+ if(hy==0) {
+ for (iy = -1043, i=ly; i>0; i<<=1) iy -=1;
+ } else {
+ for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1;
+ }
+ } else iy = (hy>>20)-1023;
+
+ /* set up {hx,lx}, {hy,ly} and align y to x */
+ if(ix >= -1022)
+ hx = 0x00100000|(0x000fffff&hx);
+ else { /* subnormal x, shift x to normal */
+ n = -1022-ix;
+ if(n<=31) {
+ hx = (hx<>(32-n));
+ lx <<= n;
+ } else {
+ hx = lx<<(n-32);
+ lx = 0;
+ }
+ }
+ if(iy >= -1022)
+ hy = 0x00100000|(0x000fffff&hy);
+ else { /* subnormal y, shift y to normal */
+ n = -1022-iy;
+ if(n<=31) {
+ hy = (hy<>(32-n));
+ ly <<= n;
+ } else {
+ hy = ly<<(n-32);
+ ly = 0;
+ }
+ }
+
+ /* fix point fmod */
+ n = ix - iy;
+ q = 0;
+ while(n--) {
+ hz=hx-hy;lz=lx-ly; if(lx>31); lx = lx+lx;}
+ else {hx = hz+hz+(lz>>31); lx = lz+lz; q++;}
+ q <<= 1;
+ }
+ hz=hx-hy;lz=lx-ly; if(lx=0) {hx=hz;lx=lz;q++;}
+
+ /* convert back to floating value and restore the sign */
+ if((hx|lx)==0) { /* return sign(x)*0 */
+ q &= QUO_MASK;
+ *quo = (sxy ? -q : q);
+ return Zero[(__uint32_t)sx>>31];
+ }
+ while(hx<0x00100000) { /* normalize x */
+ hx = hx+hx+(lx>>31); lx = lx+lx;
+ iy -= 1;
+ }
+ if(iy>= -1022) { /* normalize output */
+ hx = ((hx-0x00100000)|((iy+1023)<<20));
+ } else { /* subnormal output */
+ n = -1022 - iy;
+ if(n<=20) {
+ lx = (lx>>n)|((__uint32_t)hx<<(32-n));
+ hx >>= n;
+ } else if (n<=31) {
+ lx = (hx<<(32-n))|(lx>>n); hx = sx;
+ } else {
+ lx = hx>>(n-32); hx = sx;
+ }
+ }
+fixup:
+ INSERT_WORDS(x,hx,lx);
+ y = fabs(y);
+ if (y < 0x1p-1021) {
+ if (x+x>y || (x+x==y && (q & 1))) {
+ q++;
+ x-=y;
+ }
+ } else if (x>0.5*y || (x==0.5*y && (q & 1))) {
+ q++;
+ x-=y;
+ }
+ GET_HIGH_WORD(hx,x);
+ SET_HIGH_WORD(x,hx^sx);
+ q &= QUO_MASK;
+ *quo = (sxy ? -q : q);
+ return x;
+}
s_remquo.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: llroundl.c
===================================================================
--- llroundl.c (nonexistent)
+++ llroundl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long long int
+llroundl (long double x)
+{
+ return llround(x);
+}
+#endif
+
llroundl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_fpclassify.c
===================================================================
--- sf_fpclassify.c (nonexistent)
+++ sf_fpclassify.c (revision 345)
@@ -0,0 +1,29 @@
+/* Copyright (C) 2002,2007 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+int
+__fpclassifyf (float x)
+{
+ __uint32_t w;
+
+ GET_FLOAT_WORD(w,x);
+
+ if (w == 0x00000000 || w == 0x80000000)
+ return FP_ZERO;
+ else if ((w >= 0x00800000 && w <= 0x7f7fffff) ||
+ (w >= 0x80800000 && w <= 0xff7fffff))
+ return FP_NORMAL;
+ else if ((w >= 0x00000001 && w <= 0x007fffff) ||
+ (w >= 0x80000001 && w <= 0x807fffff))
+ return FP_SUBNORMAL;
+ else if (w == 0x7f800000 || w == 0xff800000)
+ return FP_INFINITE;
+ else
+ return FP_NAN;
+}
+
sf_fpclassify.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_nan.c
===================================================================
--- s_nan.c (nonexistent)
+++ s_nan.c (revision 345)
@@ -0,0 +1,48 @@
+/*
+ * nan () returns a nan.
+ * Added by Cygnus Support.
+ */
+
+/*
+FUNCTION
+ <>, <>---representation of ``Not a Number''
+
+INDEX
+ nan
+INDEX
+ nanf
+
+ANSI_SYNOPSIS
+ #include
+ double nan(const char *);
+ float nanf(const char *);
+
+TRAD_SYNOPSIS
+ #include
+ double nan();
+ float nanf();
+
+
+DESCRIPTION
+ <> and <> return an IEEE NaN (Not a Number) in
+ double- and single-precision arithmetic respectively. The
+ argument is currently disregarded.
+
+QUICKREF
+ nan - pure
+
+*/
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+ double nan(const char *unused)
+{
+ double x;
+
+ INSERT_WORDS(x,0x7ff80000,0);
+ return x;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_nan.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_llround.c
===================================================================
--- s_llround.c (nonexistent)
+++ s_llround.c (revision 345)
@@ -0,0 +1,68 @@
+/* lround adapted to be llround for Newlib, 2009 by Craig Howland. */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+long long int
+llround(double x)
+{
+ __int32_t sign, exponent_less_1023;
+ /* Most significant word, least significant word. */
+ __uint32_t msw, lsw;
+ long long int result;
+
+ EXTRACT_WORDS(msw, lsw, x);
+
+ /* Extract sign. */
+ sign = ((msw & 0x80000000) ? -1 : 1);
+ /* Extract exponent field. */
+ exponent_less_1023 = ((msw & 0x7ff00000) >> 20) - 1023;
+ msw &= 0x000fffff;
+ msw |= 0x00100000;
+
+ if (exponent_less_1023 < 20)
+ {
+ if (exponent_less_1023 < 0)
+ {
+ if (exponent_less_1023 < -1)
+ return 0;
+ else
+ return sign;
+ }
+ else
+ {
+ msw += 0x80000 >> exponent_less_1023;
+ result = msw >> (20 - exponent_less_1023);
+ }
+ }
+ else if (exponent_less_1023 < (8 * sizeof (long long int)) - 1)
+ {
+ if (exponent_less_1023 >= 52)
+ result = ((long long int) msw << (exponent_less_1023 - 20)) | (lsw << (exponent_less_1023 - 52));
+ else
+ {
+ unsigned int tmp = lsw + (0x80000000 >> (exponent_less_1023 - 20));
+ if (tmp < lsw)
+ ++msw;
+ result = ((long long int) msw << (exponent_less_1023 - 20)) | (tmp >> (52 - exponent_less_1023));
+ }
+ }
+ else
+ /* Result is too large to be represented by a long long int. */
+ return (long long int)x;
+
+ return sign * result;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
s_llround.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sqrtl.c
===================================================================
--- sqrtl.c (nonexistent)
+++ sqrtl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+sqrtl (long double x)
+{
+ return sqrt(x);
+}
+#endif
+
sqrtl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: expm1l.c
===================================================================
--- expm1l.c (nonexistent)
+++ expm1l.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long double
+expm1l (long double x)
+{
+ return expm1(x);
+}
+#endif
+
expm1l.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: lroundl.c
===================================================================
--- lroundl.c (nonexistent)
+++ lroundl.c (revision 345)
@@ -0,0 +1,42 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include "local.h"
+
+/* On platforms where long double is as wide as double. */
+#ifdef _LDBL_EQ_DBL
+long
+lroundl (long double x)
+{
+ return lround(x);
+}
+#endif
+
lroundl.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: s_signbit.c
===================================================================
--- s_signbit.c (nonexistent)
+++ s_signbit.c (revision 345)
@@ -0,0 +1,59 @@
+/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+/*
+FUNCTION
+<>--Does floating-point number have negative sign?
+
+INDEX
+ signbit
+
+ANSI_SYNOPSIS
+ #include
+ int signbit(real-floating <[x]>);
+
+DESCRIPTION
+The <> macro determines whether the sign of its argument value is
+negative. The macro reports the sign of all values, including infinities,
+zeros, and NaNs. If zero is unsigned, it is treated as positive. As shown in
+the synopsis, the argument is "real-floating," meaning that any of the real
+floating-point types (float, double, etc.) may be given to it.
+
+Note that because of the possibilities of signed 0 and NaNs, the expression
+"<[x]> < 0.0" does not give the same result as <> in all cases.
+
+RETURNS
+The <> macro returns a nonzero value if and only if the sign of its
+argument value is negative.
+
+PORTABILITY
+C99, POSIX.
+
+*/
+
+#include "fdlibm.h"
+
+int __signbitf (float x);
+int __signbitd (double x);
+
+int
+__signbitf (float x)
+{
+ unsigned int w;
+
+ GET_FLOAT_WORD(w,x);
+
+ return (w & 0x80000000);
+}
+
+int
+__signbitd (double x)
+{
+ unsigned int msw;
+
+ GET_HIGH_WORD(msw, x);
+
+ return (msw & 0x80000000);
+}
s_signbit.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_trunc.c
===================================================================
--- sf_trunc.c (nonexistent)
+++ sf_trunc.c (revision 345)
@@ -0,0 +1,66 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+
+#ifdef __STDC__
+ float truncf(float x)
+#else
+ float truncf(x)
+ float x;
+#endif
+{
+ __int32_t signbit, w, exponent_less_127;
+
+ GET_FLOAT_WORD(w,x);
+
+ /* Extract sign bit. */
+ signbit = w & 0x80000000;
+
+ /* Extract exponent field. */
+ exponent_less_127 = ((w & 0x7f800000) >> 23) - 127;
+
+ if (exponent_less_127 < 23)
+ {
+ if (exponent_less_127 < 0)
+ {
+ /* -1 < x < 1, so result is +0 or -0. */
+ SET_FLOAT_WORD(x, signbit);
+ }
+ else
+ {
+ SET_FLOAT_WORD(x, signbit | (w & ~(0x007fffff >> exponent_less_127)));
+ }
+ }
+ else
+ {
+ if (exponent_less_127 == 255)
+ /* x is NaN or infinite. */
+ return x + x;
+
+ /* All bits in the fraction field are relevant. */
+ }
+ return x;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ double trunc(double x)
+#else
+ double trunc(x)
+ double x;
+#endif
+{
+ return (double) truncf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_trunc.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: sf_ilogb.c
===================================================================
--- sf_ilogb.c (nonexistent)
+++ sf_ilogb.c (revision 345)
@@ -0,0 +1,52 @@
+/* sf_ilogb.c -- float version of s_ilogb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "fdlibm.h"
+#include
+
+#ifdef __STDC__
+ int ilogbf(float x)
+#else
+ int ilogbf(x)
+ float x;
+#endif
+{
+ __int32_t hx,ix;
+
+ GET_FLOAT_WORD(hx,x);
+ hx &= 0x7fffffff;
+ if(FLT_UWORD_IS_ZERO(hx))
+ return - INT_MAX; /* ilogb(0) = 0x80000001 */
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) {
+ for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+ return ix;
+ }
+ else if (!FLT_UWORD_IS_FINITE(hx)) return INT_MAX;
+ else return (hx>>23)-127;
+}
+
+#ifdef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+ int ilogb(double x)
+#else
+ int ilogb(x)
+ double x;
+#endif
+{
+ return ilogbf((float) x);
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
sf_ilogb.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property