22 #ifndef __CONDITIONALMACROS__
59 #if PRAGMA_STRUCT_ALIGN
60 #pragma options align = mac68k
61 #elif PRAGMA_STRUCT_PACKPUSH
63 #elif PRAGMA_STRUCT_PACK
81 #if defined(__MWERKS__) && defined(__cmath__)
85 typedef float float_t;
86 typedef double double_t;
88 typedef long double float_t;
89 typedef long double double_t;
91 typedef double float_t;
92 typedef double double_t;
94 typedef double float_t;
95 typedef double double_t;
96 #elif TARGET_CPU_ALPHA
97 typedef double float_t;
98 typedef double double_t;
99 #elif TARGET_CPU_SPARC
100 typedef double float_t;
101 typedef double double_t;
103 #error unsupported CPU
118 #if TARGET_RT_MAC_MACHO
119 #define HUGE_VAL 1e500
121 #define HUGE_VAL __inf()
123 #define INFINITY __inf()
124 #define NAN nan("255")
130 #define DECIMAL_DIG 17
132 #define DECIMAL_DIG 21
137 #if !defined(__MWERKS__) || !defined(__cmath__)
156 double_t cos(double_t
x);
166 double_t sin(double_t
x);
176 double_t tan(double_t
x);
186 double_t acos(double_t
x);
196 double_t asin(double_t
x);
206 double_t atan(double_t
x);
216 double_t atan2(double_t y, double_t
x);
231 double_t cosh(double_t
x);
241 double_t sinh(double_t
x);
251 double_t tanh(double_t
x);
261 double_t acosh(double_t
x);
271 double_t asinh(double_t
x);
281 double_t atanh(double_t
x);
311 double_t exp(double_t
x);
321 double_t expm1(double_t
x);
331 double_t exp2(double_t
x);
341 double_t frexp(double_t
x,
int *exponent);
351 double_t ldexp(double_t
x,
int n);
361 double_t log(double_t
x);
371 double_t log2(double_t
x);
381 double_t log1p(double_t
x);
391 double_t log10(double_t
x);
401 double_t logb(double_t
x);
403 #if !TYPE_LONGDOUBLE_IS_DOUBLE
412 long double modfl(
long double x,
long double *iptrl);
424 double_t modf(double_t
x, double_t *iptr);
434 float modff(
float x,
float *iptrf);
441 typedef long _scalb_n_type;
450 double_t scalb(double_t
x, _scalb_n_type n);
470 double_t fabs(double_t
x);
480 double_t hypot(double_t
x, double_t y);
490 double_t pow(double_t
x, double_t y);
500 double_t sqrt(double_t
x);
519 double_t erf(double_t
x);
529 double_t erfc(double_t
x);
539 double_t gamma(double_t
x);
549 double_t lgamma(double_t
x);
587 double_t ceil(double_t
x);
597 double_t floor(double_t
x);
607 double_t rint(double_t
x);
617 double_t nearbyint(double_t
x);
627 long rinttol(double_t
x);
637 double_t round(double_t
x);
647 long roundtol(double_t round);
654 #if TARGET_RT_MAC_68881
655 typedef int _trunc_return_type;
657 typedef double_t _trunc_return_type;
668 _trunc_return_type trunc(double_t
x);
687 double_t fmod(double_t
x, double_t y);
697 double_t remainder(double_t
x, double_t y);
707 double_t remquo(double_t
x, double_t y,
int *quo);
735 double_t copysign(double_t
x, double_t y);
745 double nan(
const char *tagp);
755 float nanf(
const char *tagp);
765 long double nanl(
const char *tagp);
766 #if TYPE_LONGDOUBLE_IS_DOUBLE
768 inline long double nanl(
const char *tagp) {
return (
long double)nan(tagp); }
770 #define nanl(tagp) ((long double)nan(tagp))
782 double nextafterd(
double x,
double y);
792 float nextafterf(
float x,
float y);
802 long double nextafterl(
long double x,
long double y);
803 #if TYPE_LONGDOUBLE_IS_DOUBLE
805 inline long double nextafterl(
long double x,
long double y)
807 return (
long double)nextafterd((
double)(
x), (
double)(y));
810 #define nextafterl(x, y) ((long double)nextafterd((double)(x), (double)(y)))
822 long __fpclassifyd(
double x);
832 long __fpclassifyf(
float x);
842 long __fpclassify(
long double x);
843 #if TYPE_LONGDOUBLE_IS_DOUBLE
845 inline long __fpclassify(
long double x) {
return __fpclassifyd((
double)(
x)); }
847 #define __fpclassify(x) (__fpclassifyd((double)(x)))
859 long __isnormald(
double x);
869 long __isnormalf(
float x);
879 long __isnormal(
long double x);
880 #if TYPE_LONGDOUBLE_IS_DOUBLE
882 inline long __isnormal(
long double x) {
return __isnormald((
double)(
x)); }
884 #define __isnormal(x) (__isnormald((double)(x)))
896 long __isfinited(
double x);
906 long __isfinitef(
float x);
916 long __isfinite(
long double x);
917 #if TYPE_LONGDOUBLE_IS_DOUBLE
919 inline long __isfinite(
long double x) {
return __isfinited((
double)(
x)); }
921 #define __isfinite(x) (__isfinited((double)(x)))
933 long __isnand(
double x);
943 long __isnanf(
float x);
953 long __isnan(
long double x);
954 #if TYPE_LONGDOUBLE_IS_DOUBLE
956 inline long __isnan(
long double x) {
return __isnand((
double)(
x)); }
958 #define __isnan(x) (__isnand((double)(x)))
970 long __signbitd(
double x);
980 long __signbitf(
float x);
990 long __signbit(
long double x);
991 #if TYPE_LONGDOUBLE_IS_DOUBLE
993 inline long __signbit(
long double x) {
return __signbitd((
double)(
x)); }
995 #define __signbit(x) (__signbitd((double)(x)))
1007 double_t __inf(
void);
1031 #define fpclassify(x) \
1032 ((sizeof(x) == sizeof(double)) ? __fpclassifyd(x) \
1033 : (sizeof(x) == sizeof(float)) ? __fpclassifyf(x) \
1035 #define isnormal(x) \
1036 ((sizeof(x) == sizeof(double)) ? __isnormald(x) \
1037 : (sizeof(x) == sizeof(float)) ? __isnormalf(x) \
1039 #define isfinite(x) \
1040 ((sizeof(x) == sizeof(double)) ? __isfinited(x) \
1041 : (sizeof(x) == sizeof(float)) ? __isfinitef(x) \
1044 ((sizeof(x) == sizeof(double)) ? __isnand(x) \
1045 : (sizeof(x) == sizeof(float)) ? __isnanf(x) \
1047 #define signbit(x) \
1048 ((sizeof(x) == sizeof(double)) ? __signbitd(x) \
1049 : (sizeof(x) == sizeof(float)) ? __signbitf(x) \
1080 double_t fdim(double_t
x, double_t y);
1090 double_t fmax(double_t
x, double_t y);
1100 double_t fmin(double_t
x, double_t y);
1115 extern const double_t pi;
1121 #ifndef __NOEXTENSIONS__
1144 double_t compound(double_t rate, double_t periods);
1154 double_t annuity(double_t rate, double_t periods);
1172 double_t randomx(double_t *
x);
1178 typedef short relop;
1187 #if !defined(__MWERKS__) || !defined(__cmath__)
1196 relop relation(double_t
x, double_t y);
1227 #define SIGDIGLEN 36
1228 #elif TARGET_CPU_68K
1229 #define SIGDIGLEN 20
1230 #elif TARGET_CPU_X86
1231 #define SIGDIGLEN 20
1233 #define DECSTROUTLEN 80
1234 #define FLOATDECIMAL ((char)(0))
1235 #define FIXEDDECIMAL ((char)(1))
1243 unsigned char length;
1244 unsigned char text[SIGDIGLEN];
1245 unsigned char unused;
1248 typedef struct decimal decimal;
1256 typedef struct decform decform;
1265 void num2dec(
const decform *f, double_t
x, decimal *d);
1275 double_t dec2num(
const decimal *d);
1285 void dec2str(
const decform *f,
const decimal *d,
char *s);
1295 void str2dec(
const char *s,
short *ix, decimal *d,
short *vp);
1298 #if CALL_NOT_IN_CARBON
1307 double dec2d(
const decimal *d);
1321 float dec2f(
const decimal *d);
1331 short dec2s(
const decimal *d);
1341 long dec2l(
const decimal *d);
1349 #if CALL_NOT_IN_CARBON
1393 long double cosl(
long double x);
1394 #if TYPE_LONGDOUBLE_IS_DOUBLE
1396 inline long double cosl(
long double x) {
return (
long double)cos((
double)(
x)); }
1398 #define cosl(x) ((long double)cos((double)(x)))
1410 long double sinl(
long double x);
1411 #if TYPE_LONGDOUBLE_IS_DOUBLE
1413 inline long double sinl(
long double x) {
return (
long double)sin((
double)(
x)); }
1415 #define sinl(x) ((long double)sin((double)(x)))
1427 long double tanl(
long double x);
1428 #if TYPE_LONGDOUBLE_IS_DOUBLE
1430 inline long double tanl(
long double x) {
return (
long double)tan((
double)(
x)); }
1432 #define tanl(x) ((long double)tan((double)(x)))
1444 long double acosl(
long double x);
1445 #if TYPE_LONGDOUBLE_IS_DOUBLE
1447 inline long double acosl(
long double x)
1449 return (
long double)acos((
double)(
x));
1452 #define acosl(x) ((long double)acos((double)(x)))
1464 long double asinl(
long double x);
1465 #if TYPE_LONGDOUBLE_IS_DOUBLE
1467 inline long double asinl(
long double x)
1469 return (
long double)asin((
double)(
x));
1472 #define asinl(x) ((long double)asin((double)(x)))
1484 long double atanl(
long double x);
1485 #if TYPE_LONGDOUBLE_IS_DOUBLE
1487 inline long double atanl(
long double x)
1489 return (
long double)atan((
double)(
x));
1492 #define atanl(x) ((long double)atan((double)(x)))
1504 long double atan2l(
long double y,
long double x);
1505 #if TYPE_LONGDOUBLE_IS_DOUBLE
1507 inline long double atan2l(
long double y,
long double x)
1509 return (
long double)atan2((
double)(y), (
double)(
x));
1512 #define atan2l(y, x) ((long double)atan2((double)(y), (double)(x)))
1524 long double coshl(
long double x);
1525 #if TYPE_LONGDOUBLE_IS_DOUBLE
1527 inline long double coshl(
long double x)
1529 return (
long double)cosh((
double)(
x));
1532 #define coshl(x) ((long double)cosh((double)(x)))
1544 long double sinhl(
long double x);
1545 #if TYPE_LONGDOUBLE_IS_DOUBLE
1547 inline long double sinhl(
long double x)
1549 return (
long double)sinh((
double)(
x));
1552 #define sinhl(x) ((long double)sinh((double)(x)))
1564 long double tanhl(
long double x);
1565 #if TYPE_LONGDOUBLE_IS_DOUBLE
1567 inline long double tanhl(
long double x)
1569 return (
long double)tanh((
double)(
x));
1572 #define tanhl(x) ((long double)tanh((double)(x)))
1584 long double acoshl(
long double x);
1585 #if TYPE_LONGDOUBLE_IS_DOUBLE
1587 inline long double acoshl(
long double x)
1589 return (
long double)acosh((
double)(
x));
1592 #define acoshl(x) ((long double)acosh((double)(x)))
1604 long double asinhl(
long double x);
1605 #if TYPE_LONGDOUBLE_IS_DOUBLE
1607 inline long double asinhl(
long double x)
1609 return (
long double)asinh((
double)(
x));
1612 #define asinhl(x) ((long double)asinh((double)(x)))
1624 long double atanhl(
long double x);
1625 #if TYPE_LONGDOUBLE_IS_DOUBLE
1627 inline long double atanhl(
long double x)
1629 return (
long double)atanh((
double)(
x));
1632 #define atanhl(x) ((long double)atanh((double)(x)))
1644 long double expl(
long double x);
1645 #if TYPE_LONGDOUBLE_IS_DOUBLE
1647 inline long double expl(
long double x) {
return (
long double)exp((
double)(
x)); }
1649 #define expl(x) ((long double)exp((double)(x)))
1661 long double expm1l(
long double x);
1662 #if TYPE_LONGDOUBLE_IS_DOUBLE
1664 inline long double expm1l(
long double x)
1666 return (
long double)expm1((
double)(
x));
1669 #define expm1l(x) ((long double)expm1((double)(x)))
1681 long double exp2l(
long double x);
1682 #if TYPE_LONGDOUBLE_IS_DOUBLE
1684 inline long double exp2l(
long double x)
1686 return (
long double)exp2((
double)(
x));
1689 #define exp2l(x) ((long double)exp2((double)(x)))
1701 long double frexpl(
long double x,
int *exponent);
1702 #if TYPE_LONGDOUBLE_IS_DOUBLE
1704 inline long double frexpl(
long double x,
int *exponent)
1706 return (
long double)frexp((
double)(
x), (exponent));
1709 #define frexpl(x, exponent) ((long double)frexp((double)(x), (exponent)))
1721 long double ldexpl(
long double x,
int n);
1722 #if TYPE_LONGDOUBLE_IS_DOUBLE
1724 inline long double ldexpl(
long double x,
int n)
1726 return (
long double)ldexp((
double)(
x), (n));
1729 #define ldexpl(x, n) ((long double)ldexp((double)(x), (n)))
1741 long double logl(
long double x);
1742 #if TYPE_LONGDOUBLE_IS_DOUBLE
1744 inline long double logl(
long double x) {
return (
long double)log((
double)(
x)); }
1746 #define logl(x) ((long double)log((double)(x)))
1758 long double log1pl(
long double x);
1759 #if TYPE_LONGDOUBLE_IS_DOUBLE
1761 inline long double log1pl(
long double x)
1763 return (
long double)log1p((
double)(
x));
1766 #define log1pl(x) ((long double)log1p((double)(x)))
1778 long double log10l(
long double x);
1779 #if TYPE_LONGDOUBLE_IS_DOUBLE
1781 inline long double log10l(
long double x)
1783 return (
long double)log10((
double)(
x));
1786 #define log10l(x) ((long double)log10((double)(x)))
1798 long double log2l(
long double x);
1799 #if TYPE_LONGDOUBLE_IS_DOUBLE
1801 inline long double log2l(
long double x)
1803 return (
long double)log2((
double)(
x));
1806 #define log2l(x) ((long double)log2((double)(x)))
1818 long double logbl(
long double x);
1819 #if TYPE_LONGDOUBLE_IS_DOUBLE
1821 inline long double logbl(
long double x)
1823 return (
long double)logb((
double)(
x));
1826 #define logbl(x) ((long double)logb((double)(x)))
1838 long double scalbl(
long double x,
long n);
1839 #if TYPE_LONGDOUBLE_IS_DOUBLE
1841 inline long double scalbl(
long double x,
long n)
1843 return (
long double)scalb((
double)(
x), (n));
1846 #define scalbl(x, n) ((long double)scalb((double)(x), (n)))
1858 long double fabsl(
long double x);
1859 #if TYPE_LONGDOUBLE_IS_DOUBLE
1861 inline long double fabsl(
long double x)
1863 return (
long double)fabs((
double)(
x));
1866 #define fabsl(x) ((long double)fabs((double)(x)))
1878 long double hypotl(
long double x,
long double y);
1879 #if TYPE_LONGDOUBLE_IS_DOUBLE
1881 inline long double hypotl(
long double x,
long double y)
1883 return (
long double)hypot((
double)(
x), (
double)(y));
1886 #define hypotl(x, y) ((long double)hypot((double)(x), (double)(y)))
1898 long double powl(
long double x,
long double y);
1899 #if TYPE_LONGDOUBLE_IS_DOUBLE
1901 inline long double powl(
long double x,
long double y)
1903 return (
long double)pow((
double)(
x), (
double)(y));
1906 #define powl(x, y) ((long double)pow((double)(x), (double)(y)))
1918 long double sqrtl(
long double x);
1919 #if TYPE_LONGDOUBLE_IS_DOUBLE
1921 inline long double sqrtl(
long double x)
1923 return (
long double)sqrt((
double)(
x));
1926 #define sqrtl(x) ((long double)sqrt((double)(x)))
1938 long double erfl(
long double x);
1939 #if TYPE_LONGDOUBLE_IS_DOUBLE
1941 inline long double erfl(
long double x) {
return (
long double)erf((
double)(
x)); }
1943 #define erfl(x) ((long double)erf((double)(x)))
1955 long double erfcl(
long double x);
1956 #if TYPE_LONGDOUBLE_IS_DOUBLE
1958 inline long double erfcl(
long double x)
1960 return (
long double)erfc((
double)(
x));
1963 #define erfcl(x) ((long double)erfc((double)(x)))
1975 long double gammal(
long double x);
1976 #if TYPE_LONGDOUBLE_IS_DOUBLE
1978 inline long double gammal(
long double x)
1980 return (
long double)gamma((
double)(
x));
1983 #define gammal(x) ((long double)gamma((double)(x)))
1995 long double lgammal(
long double x);
1996 #if TYPE_LONGDOUBLE_IS_DOUBLE
1998 inline long double lgammal(
long double x)
2000 return (
long double)lgamma((
double)(
x));
2003 #define lgammal(x) ((long double)lgamma((double)(x)))
2015 long double ceill(
long double x);
2016 #if TYPE_LONGDOUBLE_IS_DOUBLE
2018 inline long double ceill(
long double x)
2020 return (
long double)ceil((
double)(
x));
2023 #define ceill(x) ((long double)ceil((double)(x)))
2035 long double floorl(
long double x);
2036 #if TYPE_LONGDOUBLE_IS_DOUBLE
2038 inline long double floorl(
long double x)
2040 return (
long double)floor((
double)(
x));
2043 #define floorl(x) ((long double)floor((double)(x)))
2055 long double rintl(
long double x);
2056 #if TYPE_LONGDOUBLE_IS_DOUBLE
2058 inline long double rintl(
long double x)
2060 return (
long double)rint((
double)(
x));
2063 #define rintl(x) ((long double)rint((double)(x)))
2075 long double nearbyintl(
long double x);
2076 #if TYPE_LONGDOUBLE_IS_DOUBLE
2078 inline long double nearbyintl(
long double x)
2080 return (
long double)nearbyint((
double)(
x));
2083 #define nearbyintl(x) ((long double)nearbyint((double)(x)))
2095 long rinttoll(
long double x);
2096 #if TYPE_LONGDOUBLE_IS_DOUBLE
2098 inline long rinttoll(
long double x) {
return rinttol((
double)(
x)); }
2100 #define rinttoll(x) (rinttol((double)(x)))
2112 long double roundl(
long double x);
2113 #if TYPE_LONGDOUBLE_IS_DOUBLE
2115 inline long double roundl(
long double x)
2117 return (
long double)round((
double)(
x));
2120 #define roundl(x) ((long double)round((double)(x)))
2132 long roundtoll(
long double x);
2133 #if TYPE_LONGDOUBLE_IS_DOUBLE
2135 inline long roundtoll(
long double x) {
return roundtol((
double)(
x)); }
2137 #define roundtoll(x) (roundtol((double)(x)))
2149 long double truncl(
long double x);
2150 #if TYPE_LONGDOUBLE_IS_DOUBLE
2152 inline long double truncl(
long double x)
2154 return (
long double)trunc((
double)(
x));
2157 #define truncl(x) ((long double)trunc((double)(x)))
2169 long double remainderl(
long double x,
long double y);
2170 #if TYPE_LONGDOUBLE_IS_DOUBLE
2172 inline long double remainderl(
long double x,
long double y)
2174 return (
long double)remainder((
double)(
x), (
double)(y));
2177 #define remainderl(x, y) ((long double)remainder((double)(x), (double)(y)))
2189 long double remquol(
long double x,
long double y,
int *quo);
2190 #if TYPE_LONGDOUBLE_IS_DOUBLE
2192 inline long double remquol(
long double x,
long double y,
int *quo)
2194 return (
long double)remquo((
double)(
x), (
double)(y), (quo));
2197 #define remquol(x, y, quo) \
2198 ((long double)remquo((double)(x), (double)(y), (quo)))
2210 long double copysignl(
long double x,
long double y);
2211 #if TYPE_LONGDOUBLE_IS_DOUBLE
2213 inline long double copysignl(
long double x,
long double y)
2215 return (
long double)copysign((
double)(
x), (
double)(y));
2218 #define copysignl(x, y) ((long double)copysign((double)(x), (double)(y)))
2230 long double fdiml(
long double x,
long double y);
2231 #if TYPE_LONGDOUBLE_IS_DOUBLE
2233 inline long double fdiml(
long double x,
long double y)
2235 return (
long double)fdim((
double)(
x), (
double)(y));
2238 #define fdiml(x, y) ((long double)fdim((double)(x), (double)(y)))
2250 long double fmaxl(
long double x,
long double y);
2251 #if TYPE_LONGDOUBLE_IS_DOUBLE
2253 inline long double fmaxl(
long double x,
long double y)
2255 return (
long double)fmax((
double)(
x), (
double)(y));
2258 #define fmaxl(x, y) ((long double)fmax((double)(x), (double)(y)))
2270 long double fminl(
long double x,
long double y);
2271 #if TYPE_LONGDOUBLE_IS_DOUBLE
2273 inline long double fminl(
long double x,
long double y)
2275 return (
long double)fmin((
double)(
x), (
double)(y));
2278 #define fminl(x, y) ((long double)fmin((double)(x), (double)(y)))
2283 #ifndef __NOEXTENSIONS__
2292 relop relationl(
long double x,
long double y);
2293 #if TYPE_LONGDOUBLE_IS_DOUBLE
2295 inline relop relationl(
long double x,
long double y)
2297 return relation((
double)(
x), (
double)(y));
2300 #define relationl(x, y) (relation((double)(x), (double)(y)))
2312 void num2decl(
const decform *f,
long double x, decimal *d);
2313 #if TYPE_LONGDOUBLE_IS_DOUBLE
2315 inline void num2decl(
const decform *f,
long double x, decimal *d)
2317 num2dec((f), (
double)(
x), (d));
2320 #define num2decl(f, x, d) (num2dec((f), (double)(x), (d)))
2332 long double dec2numl(
const decimal *d);
2333 #if TYPE_LONGDOUBLE_IS_DOUBLE
2335 inline long double dec2numl(
const decimal *d)
2337 return (
long double)dec2num(d);
2340 #define dec2numl(d) ((long double)dec2num(d))
2350 #ifndef __NOEXTENSIONS__
2386 #if TYPE_LONGDOUBLE_IS_DOUBLE
2390 *(
x) = (
long double)
x80tod(x80);
2393 #define x80told(x80, x) (*(x) = (long double)x80tod(x80))
2406 #if TYPE_LONGDOUBLE_IS_DOUBLE
2410 double d = (double)*(
x);
2414 #define ldtox80(x, x80) \
2417 double d = (double)*(x); \
2418 dtox80(&d, (x80)); \
2425 #if PRAGMA_STRUCT_ALIGN
2426 #pragma options align = reset
2427 #elif PRAGMA_STRUCT_PACKPUSH
2429 #elif PRAGMA_STRUCT_PACK
2433 #ifdef PRAGMA_IMPORT_OFF
2436 #pragma import reset
Set up for compiler independent conditionals.
Basic Macintosh data types.
void ldtox80(const long double *x, extended80 *x80)
void x80told(const extended80 *x80, long double *x)
void dtox80(const double *x, extended80 *x80)
double x80tod(const extended80 *x80)
Definition: MacTypes.h:206
Definition: MacTypes.h:213