ORCA-C/bin/Libraries/ORCACDefs/sane.h

1 line
6.6 KiB
C
Raw Normal View History

/******************************************** ; File: SANE.h ; ; ; Copyright Apple Computer, Inc.1986-90 ; All Rights Reserved ; ********************************************/ #ifndef __TYPES__ #include <TYPES.h> #endif #ifndef __SANE__ #define __SANE__ /* Decimal Representation Constants */ #define SIGDIGLEN 0x001C #define DECSTROUTLEN 0x0050 /* IEEE defualt environment constant */ #define IEEEDEFAULTENV 0x0000 /* Decimal formatting styles */ #define FLOATDECIMAL 0x0000 #define FIXEDDECIMAL 0x0001 /* Exceptions */ #define INVALID 0x0001 #define UNDERFLOW 0x0002 #define OVERFLOW 0x0004 #define DIVBYZERO 0x0008 #define INEXACT 0x0010 /* Ordering relations */ #define GREATERTHAN 0 #define LESSTHAN 1 #define EQUALTO 2 #define UNORDERED 3 typedef short relop ; /* Inquiry classes */ #define SNAN 0 #define QNAN 1 #define INFINITE 2 #define ZERONUM 3 #define NORMALNUM 4 #define DENORMALNUM 5 typedef short numclass ; /* Environmental control */ /* Rounding directions */ #define TONEAREST 0 #define UPWARD 1 #define DOWNWARD 2 #define TOWARDZERO 3 typedef short rounddir ; /* Rounding precisions */ #define EXTPRECISION 0 #define DBLPRECISION 1 #define FLOATPRECISION 2 typedef short roundpre ; typedef short exception; typedef short environment; typedef struct decimal { short sgn; /* sign 0 for +, 1 for - */ short exp; /* decimal exponent */ struct { unsigned char length, text[SIGDIGLEN], unused; } sig; /* significant digits */ } decimal, Decimal; struct decform { short style; /* FLOATDECIMAL or FIXEDDECIMAL */ short digits; } ; typedef struct decform decform; typedef struct decform DecForm; typedef void (*haltvector)(void); Extended fabs (Extended x) ; /* Conversions between binary and decimal */ void num2dec (DecForm *f,extended x,Decimal *d) ; /* d <-- x according to format f */ Extended dec2num (Decimal *d) ; /* Dec2Num <-- d as Extended */ /* Conversions between decimal formats */ void str2dec (char *s,short *index,Decimal *d,short *validPrefix) ; /* On input Index is starting index into s. On output Index is one greater than index of last character of longest numeric substring. d <-- Decimal rep of longest numeric substring; validPrefix <-- s, beginning at Index, contains valid numeric string or valid prefix of some numeric string */ void dec2str (DecForm *f,Decimal *d,char *s) ; /* s <-- d according to format f */ /* Arithmetic, auxiliary and elementary functions */ Extended remainder (Extended x,Extended y,short *quo) ; /* Remainder <-- x rem y; */ /* quo <-- 7 low-order bits of integer quotient x/y */ /* where -127 < quo < 127 */ Extended sqrt (Extended x) ; /* square root */ Extended rint (Extended x) ; /* round to integral value */ Extended scalb (short n,Extended x) ; /* scale binary; scalb <-- x * 2^n */ Extended logb (Extended x) ; /* binary log: binary exponent of normalized x */ Extended copysign (Extended x,Extended y) ; /* CopySign <-- y with sign of x */ Extended nextfloat (Extended x,Extended y) ; /* next float rep after (float) x in direction of (float) y */ Extended nextdouble (Extended x,Extended y) ; /* next Double rep after (Double) x in direction of (Double) y */ Extended nextextended (Extended x,Extended y) ; /* next extended representation after x in direction of y */ Extended log2 (Extended x) ; /* base-2 logarithm */ Extended log (Extended x) ; /* base-e logarithm */ Extended log1 (Extended x) ; /* log(1 + x) */ Extended exp2 (Extended x) ; /* base-2 exponential */ Extended exp (Extended x) ; /* base-e exponential */ Extended exp1 (Extended x) ; /* exp(x) - 1 */ Extended power (Extended x,Extended y) ; /* general exponential: x ^ y */ Extended ipower (Extended x,short i) ; /* integer exponential: x ^ i */ Extended compound (Extended r,Extended n) ; /* compound: (1 + r) ^ n */ Extended annuity (Extended r,Extended n) ; /* Annuity <-- (1 - (1+r)^(-n)) / r */ Extended tan (Extended x) ; /* tangent */ Extended sin (Extended x)