00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __MATHLIB_H__
00032 #define __MATHLIB_H__
00033
00034
00035 #define MathLibName "MathLib"
00036
00037 #define LibType 'libr'
00038 #define MathLibCreator 'MthL'
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 #define MathLibVersion 1
00050
00051
00052 typedef enum MathLibErrorCode {
00053 mlErrNone = 0,
00054 mlErrOldVersion,
00055 mlErrNotOpen,
00056 mlErrNoMemory
00057 } MathLibErrorCode;
00058
00059
00060 extern UInt16 MathLibRef;
00061
00062
00063
00064
00065 Err MathLibOpen(UInt16 refnum, UInt16 version)
00066 SYS_TRAP(sysLibTrapOpen);
00067 Err MathLibClose(UInt16 refnum, UInt16* usecountP)
00068 SYS_TRAP(sysLibTrapClose);
00069 Err MathLibSleep(UInt16 refnum)
00070 SYS_TRAP(sysLibTrapSleep);
00071 Err MathLibWake(UInt16 refnum)
00072 SYS_TRAP(sysLibTrapWake);
00073
00074
00075
00076
00077 double acos(double x);
00078 double asin(double x);
00079 double atan(double x);
00080 double atan2(double y, double x);
00081 double cos(double x);
00082 double sin(double x);
00083 double tan(double x);
00084 void sincos(double x, double *sinx, double *cosx);
00085
00086
00087
00088
00089 double cosh(double x);
00090 double sinh(double x);
00091 double tanh(double x);
00092 double acosh(double x);
00093 double asinh(double x);
00094 double atanh(double x);
00095
00096
00097
00098
00099 double exp(double x);
00100 double frexp(double x, Int16 *exponent);
00101 double ldexp(double x, Int16 exponent);
00102 double log(double x);
00103 double log10(double x);
00104 double modf(double x, double *intpart);
00105 double expm1(double x);
00106 double log1p(double x);
00107 double logb(double x);
00108 double log2(double x);
00109
00110
00111
00112
00113 double pow(double x, double y);
00114 double sqrt(double x);
00115 double hypot(double x, double y);
00116 double cbrt(double x);
00117
00118
00119
00120
00121 double ceil(double x);
00122 double fabs(double x);
00123 double floor(double x);
00124 double fmod(double x, double y);
00125
00126
00127
00128
00129 Int16 isinf(double x);
00130 Int16 finite(double x);
00131 double scalbn(double x, Int16 exponent);
00132 double drem(double x, double y);
00133 double significand(double x);
00134 double copysign(double x, double y);
00135 Int16 isnan(double x);
00136 Int16 ilogb(double x);
00137 double rint(double x);
00138 double nextafter(double x, double y);
00139 double remainder(double x, double y);
00140 double scalb(double x, double exponent);
00141 double round(double x);
00142 double trunc(double x);
00143 UInt32 signbit(double x);
00144
00145
00146
00147
00148
00149
00150 Err MathLibACos(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom);
00151 Err MathLibASin(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+1);
00152 Err MathLibATan(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+2);
00153 Err MathLibATan2(UInt16 refnum, double y, double x, double *result) SYS_TRAP(sysLibTrapCustom+3);
00154 Err MathLibCos(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+4);
00155 Err MathLibSin(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+5);
00156 Err MathLibTan(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+6);
00157 Err MathLibSinCos(UInt16 refnum, double x, double *sinx, double *cosx) SYS_TRAP(sysLibTrapCustom+7);
00158 Err MathLibCosH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+8);
00159 Err MathLibSinH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+9);
00160 Err MathLibTanH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+10);
00161 Err MathLibACosH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+11);
00162 Err MathLibASinH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+12);
00163 Err MathLibATanH(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+13);
00164 Err MathLibExp(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+14);
00165 Err MathLibFrExp(UInt16 refnum, double x, double *fraction, Int16 *exponent) SYS_TRAP(sysLibTrapCustom+15);
00166 Err MathLibLdExp(UInt16 refnum, double x, Int16 exponent, double *result) SYS_TRAP(sysLibTrapCustom+16);
00167 Err MathLibLog(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+17);
00168 Err MathLibLog10(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+18);
00169 Err MathLibModF(UInt16 refnum, double x, double *intpart, double *fracpart) SYS_TRAP(sysLibTrapCustom+19);
00170 Err MathLibExpM1(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+20);
00171 Err MathLibLog1P(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+21);
00172 Err MathLibLogB(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+22);
00173 Err MathLibLog2(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+23);
00174 Err MathLibPow(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+24);
00175 Err MathLibSqrt(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+25);
00176 Err MathLibHypot(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+26);
00177 Err MathLibCbrt(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+27);
00178 Err MathLibCeil(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+28);
00179 Err MathLibFAbs(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+29);
00180 Err MathLibFloor(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+30);
00181 Err MathLibFMod(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+31);
00182 Err MathLibIsInf(UInt16 refnum, double x, Int16 *result) SYS_TRAP(sysLibTrapCustom+32);
00183 Err MathLibFinite(UInt16 refnum, double x, Int16 *result) SYS_TRAP(sysLibTrapCustom+33);
00184 Err MathLibScalBN(UInt16 refnum, double x, Int16 exponent, double *result) SYS_TRAP(sysLibTrapCustom+34);
00185 Err MathLibDRem(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+35);
00186 Err MathLibSignificand(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+36);
00187 Err MathLibCopySign(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+37);
00188 Err MathLibIsNaN(UInt16 refnum, double x, Int16 *result) SYS_TRAP(sysLibTrapCustom+38);
00189 Err MathLibILogB(UInt16 refnum, double x, Int16 *result) SYS_TRAP(sysLibTrapCustom+39);
00190 Err MathLibRInt(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+40);
00191 Err MathLibNextAfter(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+41);
00192 Err MathLibRemainder(UInt16 refnum, double x, double y, double *result) SYS_TRAP(sysLibTrapCustom+42);
00193 Err MathLibScalB(UInt16 refnum, double x, double exponent, double *result) SYS_TRAP(sysLibTrapCustom+43);
00194 Err MathLibRound(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+44);
00195 Err MathLibTrunc(UInt16 refnum, double x, double *result) SYS_TRAP(sysLibTrapCustom+45);
00196 Err MathLibSignBit(UInt16 refnum, double x, UInt32 *result) SYS_TRAP(sysLibTrapCustom+46);
00197
00198 #endif // __MATHLIB_H__