this repo has no description
at fixPythonPipStalling 175 lines 10 kB view raw
1/* 2 * Copyright (c) 2002 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * The contents of this file constitute Original Code as defined in and 7 * are subject to the Apple Public Source License Version 1.1 (the 8 * "License"). You may not use this file except in compliance with the 9 * License. Please obtain a copy of the License at 10 * http://www.apple.com/publicsource and read it before using this file. 11 * 12 * This Original Code and all software distributed under the License are 13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER 14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the 17 * License for the specific language governing rights and limitations 18 * under the License. 19 * 20 * @APPLE_LICENSE_HEADER_END@ 21 */ 22 23#define __WANT_LONG_DOUBLE_FORMAT__ 0 /* Defeat long double prototypes in math.h */ 24#include "math.h" /* for its *double* prototypes */ 25 26#undef __LIBMLDBL_COMPAT 27#if 0 /* Temporarily disable the plan-in-blue. */ 28#define __LIBMLDBL_64(sym) __asm("_" __STRING(sym) "$LDBL64") 29#define __LIBMLDBL_GLOB(sym) __asm(".text"); __asm(".align 4"); __asm(".globl " "_" __STRING(sym)) 30#define __LIBMLDBL_NO_DECOR(sym) __asm("_" __STRING(sym) ": b " "_" __STRING(sym) "$LDBL64") 31#define __LIBMLDBL_COMPAT(sym) __LIBMLDBL_64(sym) ; __LIBMLDBL_GLOB(sym) ; __LIBMLDBL_NO_DECOR(sym) 32#else 33#define __LIBMLDBL_64(sym) /* NOTHING */ 34#define __LIBMLDBL_GLOB(sym) __asm(".text"); __asm(".align 4"); __asm(".globl " "_" __STRING(sym) "$LDBL64") 35#define __LIBMLDBL_NO_DECOR(sym) __asm("_" __STRING(sym) "$LDBL64" ": b " "_" __STRING(sym)) 36#define __LIBMLDBL_COMPAT(sym) __LIBMLDBL_64(sym) ; __LIBMLDBL_GLOB(sym) ; __LIBMLDBL_NO_DECOR(sym) 37#endif 38// 39// Introduce prototypes and (trivial) implementations for long double == double scheme. 40// Programs compiled with -mlong-double-64 see these. 41// 42extern double acosl( double ) __LIBMLDBL_COMPAT(acosl); 43extern double asinl( double ) __LIBMLDBL_COMPAT(asinl); 44extern double atanl( double ) __LIBMLDBL_COMPAT(atanl); 45extern double atan2l( double, double ) __LIBMLDBL_COMPAT(atan2l); 46extern double cosl( double ) __LIBMLDBL_COMPAT(cosl); 47extern double sinl( double ) __LIBMLDBL_COMPAT(sinl); 48extern double tanl( double ) __LIBMLDBL_COMPAT(tanl); 49extern double acoshl( double ) __LIBMLDBL_COMPAT(acoshl); 50extern double asinhl( double ) __LIBMLDBL_COMPAT(asinhl); 51extern double atanhl( double ) __LIBMLDBL_COMPAT(atanhl); 52extern double coshl( double ) __LIBMLDBL_COMPAT(coshl); 53extern double sinhl( double ) __LIBMLDBL_COMPAT(sinhl); 54extern double tanhl( double ) __LIBMLDBL_COMPAT(tanhl); 55extern double expl( double ) __LIBMLDBL_COMPAT(expl); 56extern double exp2l( double ) __LIBMLDBL_COMPAT(exp2l); 57extern double expm1l( double ) __LIBMLDBL_COMPAT(expm1l); 58extern double logl( double ) __LIBMLDBL_COMPAT(logl); 59extern double log10l( double ) __LIBMLDBL_COMPAT(log10l); 60extern double log2l( double ) __LIBMLDBL_COMPAT(log2l); 61extern double log1pl( double ) __LIBMLDBL_COMPAT(log1pl); 62extern double logbl( double ) __LIBMLDBL_COMPAT(logbl); 63extern double modfl( double, double * ) __LIBMLDBL_COMPAT(modfl); 64extern double ldexpl( double, int ) __LIBMLDBL_COMPAT(ldexpl); 65extern double frexpl( double, int * ) __LIBMLDBL_COMPAT(frexpl); 66extern int ilogbl( double ) __LIBMLDBL_COMPAT(ilogbl); 67extern double scalbnl( double, int ) __LIBMLDBL_COMPAT(scalbnl); 68extern double scalblnl( double, long int ) __LIBMLDBL_COMPAT(scalblnl); 69extern double fabsl( double ) __LIBMLDBL_COMPAT(fabsl); 70extern double cbrtl( double ) __LIBMLDBL_COMPAT(cbrtl); 71extern double hypotl( double, double ) __LIBMLDBL_COMPAT(hypotl); 72extern double powl( double, double ) __LIBMLDBL_COMPAT(powl); 73extern double sqrtl( double ) __LIBMLDBL_COMPAT(sqrtl); 74extern double erfl( double ) __LIBMLDBL_COMPAT(erfl); 75extern double erfcl( double ) __LIBMLDBL_COMPAT(erfcl); 76extern double lgammal( double ) __LIBMLDBL_COMPAT(lgammal); 77extern double tgammal( double ) __LIBMLDBL_COMPAT(tgammal); 78extern double ceill( double ) __LIBMLDBL_COMPAT(ceill); 79extern double floorl( double ) __LIBMLDBL_COMPAT(floorl); 80extern double nearbyintl( double ) __LIBMLDBL_COMPAT(nearbyintl); 81extern double rintl( double ) __LIBMLDBL_COMPAT(rintl); 82extern long int lrintl( double ) __LIBMLDBL_COMPAT(lrintl); 83extern long long int llrintl( double ) __LIBMLDBL_COMPAT(llrintl); 84extern double roundl( double ) __LIBMLDBL_COMPAT(roundl); 85extern long int lroundl( double ) __LIBMLDBL_COMPAT(lroundl); 86extern long long int llroundl( double ) __LIBMLDBL_COMPAT(llroundl); 87extern double truncl( double ) __LIBMLDBL_COMPAT(truncl); 88extern double fmodl( double, double) __LIBMLDBL_COMPAT(fmodl); 89extern double remainderl( double, double ) __LIBMLDBL_COMPAT(remainderl); 90extern double remquol( double, double, int * ) __LIBMLDBL_COMPAT(remquol); 91extern double copysignl( double, double ) __LIBMLDBL_COMPAT(copysignl); 92extern double nextafterl( double, double ) __LIBMLDBL_COMPAT(nextafterl); 93extern double nexttoward( double, double ) __LIBMLDBL_COMPAT(nexttoward); 94extern float nexttowardf( float, double ) __LIBMLDBL_COMPAT(nexttowardf); 95extern double nexttowardl( double, double ) __LIBMLDBL_COMPAT(nexttowardl); 96extern double fdiml( double, double ) __LIBMLDBL_COMPAT(fdiml); 97extern double fmaxl( double, double ) __LIBMLDBL_COMPAT(fmaxl); 98extern double fminl( double, double ) __LIBMLDBL_COMPAT(fminl); 99extern double fmal( double, double, double ) __LIBMLDBL_COMPAT(fmal); 100 101double acosl( double x ) { return (double)acos((double) x); } 102double asinl( double x ) { return (double)asin((double) x); } 103double atanl( double x ) { return (double)atan((double) x); } 104double atan2l( double y, double x ) 105 { return (double)atan2((double) y, (double) x); } 106double cosl( double x ) { return (double)cos((double) x); } 107double sinl( double x ) { return (double)sin((double) x); } 108double tanl( double x ) { return (double)tan((double) x); } 109double acoshl( double x ) { return (double)acosh((double) x); } 110double asinhl( double x ) { return (double)asinh((double) x); } 111double atanhl( double x ) { return (double)atanh((double) x); } 112double coshl( double x ) { return (double)cosh((double) x); } 113double sinhl( double x ) { return (double)sinh((double) x); } 114double tanhl( double x ) { return (double)tanh((double) x); } 115double expl( double x ) { return (double)exp((double) x); } 116double exp2l( double x ) { return (double)exp2((double) x); } 117double expm1l( double x ) { return (double)expm1((double) x); } 118double logl( double x ) { return (double)log((double) x); } 119double log10l( double x ) { return (double)log10((double) x); } 120double log2l( double x ) { return (double)log2((double) x); } 121double log1pl( double x ) { return (double)log1p((double) x); } 122double logbl( double x ) { return (double)logb((double) x); } 123double modfl( double x, double *iptr ) 124 { return (double)modf((double) x, (double *)iptr); } 125double ldexpl( double x, int n ) { return (double)ldexp((double) x, n); } 126double frexpl( double x, int *exp ) { return (double)frexp((double) x, exp); } 127int ilogbl( double x ) { return ilogb((double) x); } 128double scalbnl( double x, int n ) { return (double)scalbn((double) x, n); } 129double scalblnl( double x, long int n ) { return (double)scalbln((double) x, n); } 130double fabsl( double x ) { return (double)fabs((double) x); } 131double cbrtl( double x ) { return (double)cbrt((double) x); } 132double hypotl( double x, double y ) 133 { return (double)hypot((double) x, (double) y); } 134double powl( double x, double y ) 135 { return (double)pow((double) x, (double) y); } 136double sqrtl( double x ) { return (double)sqrt((double) x); } 137double erfl( double x ) { return (double)erf((double) x); } 138double erfcl( double x ) { return (double)erfc((double) x); } 139double lgammal( double x ) { return (double)lgamma((double) x); } 140double tgammal( double x ) { return (double)tgamma((double) x); } 141double ceill( double x ) { return (double)ceil((double) x); } 142double floorl( double x ) { return (double)floor((double) x); } 143double nearbyintl( double x ) { return (double)nearbyint((double) x); } 144double rintl( double x ) { return (double)rint((double) x); } 145long int lrintl( double x ) { return (long int)lrint((double) x); } 146long long int llrintl( double x ) { return (long long int)llrint((double) x); } 147double roundl( double x ) { return (double)round((double) x); } 148long int lroundl( double x ) { return (long int)lround((double) x); } 149long long int llroundl( double x ) { return (long long int)llround((double) x); } 150double truncl( double x ) { return (double)trunc((double) x); } 151double fmodl( double x, double y){ return (double)fmod((double) x, (double) y); } 152double remainderl( double x, double y ) 153 { return (double)remainder((double) x, (double) y); } 154double remquol( double x, double y, int *quo ) 155 { return (double)remquo((double) x, (double) y, quo); } 156double copysignl( double x, double y ) 157 { return (double)copysign((double) x, (double) y); } 158double nextafterl( double x, double y ) 159 { return (double)nextafter((double) x, (double) y); } 160double nexttoward( double x, double y ) { return (double)nextafter((double) x, (double) y); } 161float nexttowardf( float x, double y ) 162{ 163if ((double) x == y || y != y) return (float)y; /* 7.2.11.4 paragraph 2*/ 164else if ((double)x > y) return nextafterf(x, -INFINITY); 165 else return nextafterf(x, INFINITY); 166} 167 168double nexttowardl( double x, double y ) 169 { return (double)nextafter((double) x, (double) y); } 170double fdiml( double x, double y ) { return (double)fdim((double) x, (double) y); } 171double fmaxl( double x, double y ) { return (double)fmax((double) x, (double) y); } 172double fminl( double x, double y ) { return (double)fmin((double) x, (double) y); } 173double fmal( double x, double y, double z ) 174 { return (double)fma((double) x, (double) y, (double) z); } 175