/* +++Date last modified: 05-Jul-1997 */ /* ** SNIPMATH.H - Header file for SNIPPETS math functions and macros */ #ifndef SNIPMATH__H #define SNIPMATH__H #include #include "basicmath-sniptype.h" #include "basicmath-round.h" /* ** Callable library functions begin here */ void SetBCDLen(int n); /* Bcdl.C */ long BCDtoLong(char *BCDNum); /* Bcdl.C */ void LongtoBCD(long num, char BCDNum[]); /* Bcdl.C */ double bcd_to_double(void *buf, size_t len, /* Bcdd.C */ int digits); int double_to_bcd(double arg, char *buf, /* Bcdd.C */ size_t length, size_t digits ); DWORD ncomb1 (int n, int m); /* Combin.C */ DWORD ncomb2 (int n, int m); /* Combin.C */ void SolveCubic(double a, double b, double c, /* Cubic.C */ double d, int *solutions, double *x); DWORD dbl2ulong(double t); /* Dbl2Long.C */ long dbl2long(double t); /* Dbl2Long.C */ double dround(double x); /* Dblround.C */ /* Use #defines for Permutations and Combinations -- Factoryl.C */ #define log10P(n,r) (log10factorial(n)-log10factorial((n)-(r))) #define log10C(n,r) (log10P((n),(r))-log10factorial(r)) double log10factorial(double N); /* Factoryl.C */ double fibo(unsigned short term); /* Fibo.C */ double frandom(int n); /* Frand.C */ double ipow(double x, int n); /* Ipow.C */ int ispow2(int x); /* Ispow2.C */ long double ldfloor(long double a); /* Ldfloor.C */ int initlogscale(long dmax, long rmax); /* Logscale.C */ long logscale(long d); /* Logscale.C */ float MSBINToIEEE(float f); /* Msb2Ieee.C */ float IEEEToMSBIN(float f); /* Msb2Ieee.C */ int perm_index (char pit[], int size); /* Perm_Idx.C */ int round_div(int n, int d); /* Rnd_Div.C */ long round_ldiv(long n, long d); /* Rnd_Div.C */ double rad2deg(double rad); /* Rad2Deg.C */ double deg2rad(double deg); /* Rad2Deg.C */ #include "basicmath-pi.h" #ifndef PHI #define PHI ((1.0+sqrt(5.0))/2.0) /* the golden number */ #define INV_PHI (1.0/PHI) /* the golden ratio */ #endif /* ** File: ISQRT.C */ struct int_sqrt { unsigned sqrt, frac; }; void usqrt(unsigned long x, struct int_sqrt *q); #endif /* SNIPMATH__H */