(FILECREATED "24-Jun-86 20:39:39" ("compiled on " {ERIS}LIBRARY>CMLFLOAT.;30) "23-Jun-86 18:04:30" recompiled changes: TRUNCATE %%COMPLEX-ABS COMPLEX \FLOAT CL:SQRT %%SQRT-PERFECT %%SQRT-RATIO-PERFECT CL:SIN CL:COS ASIN ACOS %%ATAN1 %%ATAN-FLOAT in "Xerox Lisp 23-Jun-86 ..." dated "23-Jun-86 18:17:41") (FILECREATED "24-Jun-86 20:37:56" {ERIS}LIBRARY>CMLFLOAT.;30 71481 changes to: (FNS %%ATAN1 %%ATAN-FLOAT \FLOAT TRUNCATE %%COMPLEX-ABS COMPLEX CL:SQRT %%SQRT-PERFECT %%SQRT-RATIO-PERFECT CL:SIN CL:COS %%OLD-TAN-FLOAT ASIN %%OLD-ASIN-FLOAT ACOS) (VARS CMLFLOATCOMS CMLFLOATJUNKCOMS) previous date: "30-May-86 16:51:42" {ERIS}LIBRARY>CMLFLOAT.;27) %%FLOAT D1 (L (1 LOWORD 0 HIWORD)) @ANIL NIL () %%MAKE-ARRAY D1 (P 0 ARRAY I 0 LIST) /@ goj X@jIHHJK*IJkԺ(21Q ARRAY 6 LENGTH) (11Q FLOATP) ( 15Q 0.0) PHASE D1 (I 0 NUMBER) @ @ @ j@oj(17Q CL:ATAN 14Q REALPART 10Q IMAGPART 3 COMPLEXP) NIL ( 30Q 3.141593) TRUNCATE D1 (L (0 -args-)) ekaalHklah[Jk'Id3 dl y`lI I ۰gI_d3 ,J]d3 IJ۰RlIJHM`IJ J0l J^3 NdlIJ `JO`Il [IKJ\KL (261Q VALUES 245Q \LISPERROR 213Q \FIXP.FROM.FLOATP 156Q TRUNCATE 153Q %%/ 75Q RATIO-DENOMINATOR 71Q RATIO-NUMERATOR 54Q \FIXP.FROM.FLOATP) (234Q RATIOTYPE# 221Q RATIOTYPE# 144Q RATIOTYPE# 62Q RATIOTYPE#) () %%COMPLEX-ABS D1 (L (0 Z))  @ X@ YHdIdd (27Q CL:SQRT 13Q COMPLEX-IMAGPART 6 COMPLEX-REALPART) NIL () COMPLEX D1 (L (0 -args-)) ekaAlHjlaZj "J[3 Kd`IlIJl I\3 Ld`&J]3 Md`IJ lIJ lIJ Il (177Q \LISPERROR 170Q %%MAKE-COMPLEX 152Q %%MAKE-COMPLEX 133Q %%MAKE-COMPLEX 70Q \LISPERROR 27Q %%=) (165Q FLOATP 146Q FLOATP 123Q RATIOTYPE# 104Q RATIOTYPE# 61Q FLOATP 44Q RATIOTYPE#) () \FLOAT D1 (P 3 SIGN P 2 LO P 1 HI P 0 $$TYPE-VALUE I 0 X) @dHd3 @dlB@@jIn%JjIjnIkعnIٹnJkغk[KlIJi k2jjj@@k@jkjn@kKlIJi @ `@ @ H`@ @ @l i (310Q \FLOAT 305Q \LISPERROR 275Q %%MAKE-COMPLEX 272Q \FLOAT 267Q IMAGPART 263Q \FLOAT 260Q REALPART 242Q RATIO-DENOMINATOR 236Q RATIO-NUMERATOR 223Q \BIGNUM.TO.FLOAT 216Q \MAKEFLOAT 132Q \MAKEFLOAT) (251Q COMPLEXTYPE# 230Q RATIOTYPE#) () EXP D1 (P 0 $$TYPE-VALUE I 0 NUMBER) '@Hd`@ 3@ o@ (44Q LISPERROR 33Q %%EXP-FLOAT 20Q %%EXP-COMPLEX) (30Q FLOATP 11Q COMPLEXTYPE#) ( 40Q "NON-NUMERIC ARG") %%EXP-FLOAT D1 (P 3 ANSWER P 2 R P 1 N P 0 M I 0 X) [`@o \LZo ]M`I(J`l2hJ`l2 H (130Q SCALE-FLOAT 123Q %%/ 37Q \MVLIST 34Q CL:FLOOR 16Q \MVLIST 13Q CL:FLOOR) (110Q ARRAYP 105Q %%EXP-POLY 64Q ARRAYP 61Q %%EXP-POLY 51Q %%EXP-TABLE) ( 31Q .125 7 1.442695) %%EXP-COMPLEX D1 (P 1 Y P 0 X I 0 Z) @ @ H I (25Q CIS 21Q EXP 12Q IMAGPART 3 REALPART) NIL () CL:EXPT D1 (I 1 N I 0 X) @ A3 -@j@d A @o@A @ Ad3 @A A @ @ @A o@A @ @A A3 j@o@A @A (202Q %%EXPT-FLOAT 166Q CL:ERROR 144Q %%EXPT-COMPLEX 136Q COMPLEXP 131Q CL:ERROR 117Q %%EXPT-COMPLEX-POWER 111Q PLUSP 104Q COMPLEXP 76Q COMPLEXP 71Q %%EXPT-INTEGER 55Q COMPLEXP 50Q CL:ERROR 34Q PLUSP 26Q \FZEROP 3 RATIONALP) (177Q FLOATP 173Q FLOATP) ( 161Q "Negative number ~A to non-integral power ~A." 124Q "~A negative number to a complex power ~A." 43Q "~A to a non-positive power ~A.") %%EXPT-INTEGER D1 (P 1 TOTAL P 0 NEXTN I 1 POWER I 0 BASE) jAk@jA @ @d3  A @ A @3 @l kA Am Akj@kHj$H@dbHbm Akj@Iև IIX(166Q \FZEROP 151Q ASH 105Q ASH 76Q ASH 70Q %%= 55Q %%MAKE-RATIO 52Q %%EXPT-INTEGER 46Q DENOMINATOR 42Q %%EXPT-INTEGER 36Q NUMERATOR 23Q RATIONALP 16Q %%/ 13Q %%EXPT-INTEGER) NIL () %%EXPT-FLOAT D1 (I 1 Y I 0 X) @o oA@ (26Q EXP 22Q CL:LOG 7 %%=) NIL ( 14Q 0.0 4 0.0) %%EXPT-COMPLEX D1 (I 1 N I 0 Z) @ A A@ (20Q CIS 14Q PHASE 7 CL:EXPT 3 %%COMPLEX-ABS) NIL () %%EXPT-COMPLEX-POWER D1 (I 1 W I 0 Z) A@ (10Q EXP 4 CL:LOG) NIL () CL:LOG D1 (P 4 $$TYPE-VALUE P 3 BASE P 2 BASE-SUPPLIED P 1 NUMBER P 0 \CL:LAMBDA.ARGCNT) zekHoH HloH @!lHhiAJI K ILd`I 3 jIjI o I oI (167Q LISPERROR 156Q %%LOG-FLOAT 146Q COMPLEX 137Q %%LOG-FLOAT 114Q %%LOG-COMPLEX 72Q %%/ 67Q CL:LOG 63Q CL:LOG 35Q ERROR 17Q ERROR) (153Q FLOATP 134Q FLOATP 105Q COMPLEXTYPE#) ( 163Q "NON-NUMERIC ARG" 143Q 3.141593 31Q "Too many args" 13Q "Too few args") %%LOG-FLOAT D1 (P 4 ANSWER P 3 Z2 P 2 Z P 1 EXP P 0 R I 0 X) {P@oo@ @oXdlYHlHdoIkԹHo XkHk Zdd[JK`l2K`l2 Io(160Q %%/ 105Q %%/ 74Q %%/ 21Q ERROR) (145Q ARRAYP 142Q %%LOG-QPOLY 124Q ARRAYP 121Q %%LOG-PPOLY) ( 166Q .6931472 71Q 2.0 55Q 1.414214 27Q 0.0 15Q "LOG OF ZERO:" 7 0.0) %%LOG-COMPLEX D1 (I 0 Z) @ @ (15Q COMPLEX 12Q PHASE 6 CL:LOG 3 %%COMPLEX-ABS) NIL () %%OLD-LOG-FLOAT D1 (P 2 SSUM P 1 EXP P 0 SX I 0 X) K0@oo@ @oXdlYHlHoXd`l2ZdIo(21Q ERROR) (67Q ARRAYP 64Q \LOGARRAY) ( 106Q .6931472 54Q 1.0 27Q 0.0 15Q "LOG OF ZERO:" 7 0.0) CL:SQRT D1 (L (0 X)) R@d j@j@ @Hd3 @ l@ Hd`@ `@ @l (117Q \LISPERROR 110Q %%SQRT-COMPLEX 75Q %%SQRT-RATIO 57Q %%SQRT-FLOAT 45Q %%SQRT-INTEGER 26Q COMPLEX 23Q CL:SQRT 20Q ABS 4 COMPLEXP) (102Q COMPLEXTYPE# 66Q RATIOTYPE#) () %%SQRT-PERFECT D1 (L (0 X)) W@d j@@ H=jH @Hd3 @ lhHd`@ `@ @l (124Q \LISPERROR 115Q %%SQRT-COMPLEX-PERFECT 102Q %%SQRT-RATIO-PERFECT 55Q %%SQRT-INTEGER-PERFECT 36Q COMPLEX 23Q %%SQRT-PERFECT 20Q ABS 4 COMPLEXP) (107Q COMPLEXTYPE# 73Q RATIOTYPE#) () %%SQRT-INTEGER D1 (I 0 R) @ @ (14Q %%SQRT-FLOAT 3 %%SQRT-INTEGER-PERFECT) (11Q FLOATP) () %%SQRT-INTEGER-PERFECT D1 (P 0 A I 0 R) @ Xdd@hH(6 ISQRT) NIL () %%SQRT-FLOAT D1 (I 0 X) bh@oo@llnll@ljXldjn?jH@H kٰH(121Q %%/) NIL ( 16Q 0.0 10Q 0.0) %%SQRT-RATIO D1 (I 0 R) @ @ (14Q %%SQRT-FLOAT 3 %%SQRT-RATIO-PERFECT) (11Q FLOATP) () %%SQRT-RATIO-PERFECT D1 (P 3 ADEN P 2 ANUM P 1 RDEN P 0 RNUM I 0 R) %@@ X@ YH ZdhI [dJK (42Q %%MAKE-RATIO 31Q %%SQRT-INTEGER-PERFECT 20Q %%SQRT-INTEGER-PERFECT 13Q RATIO-DENOMINATOR 6 RATIO-NUMERATOR) NIL () %%SQRT-COMPLEX D1 (P 11Q I P 7 ANSWER I 0 X) hdddddd@ _d@ Z@ [@ X@ o YHI \HI ]lk OOYLdMdn?jLJLKMN n?jMKLJMN Ok_LM (276Q COMPLEX 245Q %%/ 203Q %%/ 113Q CL:SIN 77Q CL:COS 65Q %%/ 56Q PHASE 47Q CL:SQRT 44Q ABS 35Q IMAGPART 26Q REALPART 15Q %%SQRT-COMPLEX-PERFECT) NIL ( 62Q 2.0) %%SQRT-COMPLEX-PERFECT D1 (P 4 DELTA P 3 N P 2 M P 1 B P 0 A I 0 R) sP@ Zd2@ [Jj /K Kl XdGd Km XhjH JdKd \dJLl XdKHl YHI (160Q %%MAKE-COMPLEX 152Q %%/ 136Q %%SQRT-PERFECT 133Q %%/ 117Q %%SQRT-PERFECT 104Q %%MAKE-COMPLEX 71Q %%SQRT-PERFECT 66Q %%/ 57Q %%MAKE-COMPLEX 47Q %%SQRT-PERFECT 44Q %%/ 34Q PLUSP 26Q %%= 20Q IMAGPART 6 REALPART) NIL () %%OLD-SQRT-COMPLEX D1 (P 1 PHASE P 0 ABS I 0 Z) ,@ &@ @ o HI HI (51Q COMPLEX 45Q CL:SIN 37Q CL:COS 27Q %%/ 20Q PHASE 14Q CL:SQRT 11Q ABS 3 %%SQRT-COMPLEX-PERFECT) NIL ( 24Q 2.0) ISQRT D1 (P 3 HI P 2 LO P 0 LG I 0 N) \@3 Oj@J@ kHkm JdHkjmj KkJJJKm Ydd@I[o@ (131Q CL:ERROR 102Q ASH 56Q ASH 34Q ASH 31Q ASH 15Q INTEGER-LENGTH) NIL ( 125Q "ISQRT: ~S argument must be a nonnegative integer.") CL:SIN D1 (L (0 X)) *@dd @bdl@ `@ (47Q %%SIN-COMPLEX 33Q %%SIN-FLOAT 10Q COMPLEXP) (40Q COMPLEXTYPE# 16Q FLOATP) () %%SIN-FLOAT D1 (I 1 COS-FLAG I 0 X) hddA@n?n@do XdonjѹHn@InXn?jѹHon@InHoHHHo XddZIHJ`l2J`l2 d(234Q %%/ 161Q %%/ 41Q CL:MOD) (221Q ARRAYP 216Q %%SIN-QPOLY 202Q ARRAYP 177Q %%SIN-PPOLY) ( 156Q 1.570796 136Q .0002441406 115Q 1.570796 53Q 3.141593 36Q 6.283186) %%SIN-COMPLEX D1 (P 1 Y P 0 X I 0 Z) %@ @ H I H I (42Q COMPLEX 36Q SINH 32Q CL:COS 25Q COSH 21Q CL:SIN 12Q IMAGPART 3 REALPART) NIL () CL:COS D1 (L (0 X)) +@dd @bdl@i `@ (50Q %%COS-COMPLEX 34Q %%SIN-FLOAT 10Q COMPLEXP) (41Q COMPLEXTYPE# 16Q FLOATP) () %%COS-COMPLEX D1 (P 1 Y P 0 X I 0 Z) '@ @ H I jH I (44Q COMPLEX 37Q SINH 33Q CL:SIN 25Q COSH 21Q CL:COS 12Q IMAGPART 3 REALPART) NIL () CL:TAN D1 (P 0 $$TYPE-VALUE I 0 X) '@Hd`@ 3@ o@ (44Q LISPERROR 33Q %%TAN-FLOAT 20Q %%TAN-COMPLEX) (30Q FLOATP 11Q COMPLEXTYPE#) ( 40Q "NON-NUMERIC ARG") %%TAN-FLOAT D1 (P 3 RECIPFLG I 0 X) hdd@o XddoHn@InoHinɌoin?nHoH KkH HHo XddYHI`l2I`l2 ZKkJ J(252Q %%/ 234Q %%/ 162Q %%/ 141Q %%/ 126Q ABS 15Q CL:MOD) (221Q ARRAYP 216Q %%TAN-QPOLY 202Q ARRAYP 177Q %%TAN-PPOLY) ( 157Q .7853982 120Q .0002441406 75Q .7853982 53Q -.7853982 30Q 1.570796 12Q 3.141593) %%TAN-COMPLEX D1 (P 1 DENOM P 0 NUM I 0 Z) ,@ @ IjIHI  o@ (51Q CL:ERROR 37Q \FZEROP 33Q %%/ 12Q CL:COS 3 CL:SIN) NIL ( 45Q "~S undefined tangent.") ASIN D1 (L (0 X)) +@Hdl@ `@ H3@b(32Q %%ASIN-COMPLEX 17Q %%ASIN-FLOAT) (44Q FLOATP 24Q COMPLEXTYPE#) () %%ASIN-FLOAT D1 (P 4 ANSWER P 3 R2 P 2 R P 1 REDUCED P 0 NEGATIVE I 1 ACOS-FLAG I 0 X) P@ZoJdooJ oJijJZJoioJo oJJ-JdֻJK`l2K`l2 \IoLoռHjLռAoLL(166Q %%/ 101Q CL:SQRT 32Q ERROR) (153Q ARRAYP 150Q %%ASIN-QPOLY 132Q ARRAYP 127Q %%ASIN-PPOLY) ( 222Q 1.570796 203Q 2.0 176Q 1.570796 106Q .0002441406 75Q .5 67Q 1.0 56Q .5 37Q 0.0 26Q "ARCSIN: arg not in range" 20Q 1.0 10Q -1.0) %%ASIN-COMPLEX D1 (I 0 Z) @ k@d (25Q %%COMPLEX-MINUS 22Q %%COMPLEX-TIMESI 17Q CL:LOG 13Q CL:SQRT 3 %%COMPLEX-TIMESI) NIL () ACOS D1 (L (0 X)) ,@Hdl@i `@ H3@b(33Q %%ACOS-COMPLEX 20Q %%ASIN-FLOAT) (45Q FLOATP 25Q COMPLEXTYPE#) () %%ACOS-COMPLEX D1 (I 0 Z) @k@d (25Q %%COMPLEX-MINUS 22Q %%COMPLEX-TIMESI 17Q CL:LOG 13Q %%COMPLEX-TIMESI 10Q CL:SQRT) NIL () CL:ATAN D1 (I 1 Y I 0 X) 6A"@ A o@A @A @ @ @ (63Q %%ATAN-FLOAT 53Q %%ATAN-COMPLEX 46Q COMPLEXP 41Q %%ATAN-FLOAT 25Q CL:ERROR 13Q COMPLEXP 6 COMPLEXP) (60Q FLOATP 36Q FLOATP 32Q FLOATP) ( 20Q "~S and ~S both complex.") %%ATAN1 D1 (L (0 X)) qj@jd@ o@ok@ k@o@o@ok o@$k@ HoHok o@ (156Q %%ATAN2 144Q %%ATAN2 141Q %%/ 115Q %%/ 76Q %%ATAN2 73Q %%/ 37Q %%ATAN2 34Q %%/ 12Q %%ATAN1) NIL ( 150Q .5236 133Q 1.730525 125Q 1.730525 104Q 3.732071 65Q 1.730525 57Q 1.730525 52Q 2.094396 27Q 1.570796 20Q .2679482) %%ATAN2 D1 (P 4 VAL P 3 POW P 2 OLD P 1 INT P 0 SQR I 0 X) <jk@d !kjk@ KJL oLIlԹLKHֻLKI ԰(67Q %%/ 36Q %%= 24Q %%/ 7 %%/) NIL ( 43Q 1.570796) %%ATAN-DOMAIN-CHECK D1 (I 0 Z) '@ Hj HH  @ k h(42Q %%= 36Q ABS 33Q IMAGPART 24Q \FZEROP 3 REALPART) NIL () %%ATAN-FLOAT D1 (L (1 X 0 Y)) A@j@dZd To@HA Hj o Aj @ o@j A joA @d @A @ oj@A A j@jA @A o(227Q %%ATAN1 224Q %%/ 215Q %%ATAN1 212Q %%/ 201Q PLUSP 173Q %%ATAN1 170Q %%/ 154Q PLUSP 147Q %%ATAN1 144Q %%/ 135Q PLUSP 127Q PLUSP 113Q PLUSP 106Q %%= 73Q %%SIGNUM 66Q %%= 60Q CL:ERROR 47Q %%= 40Q %%= 20Q \FZEROP) NIL ( 233Q 3.141593 161Q 3.141593 122Q 3.141593 77Q 1.570796 55Q "Error in double entry atan both 0." 26Q 0.0) %%ATAN-COMPLEX D1 (P 0 I I 0 Z) /@ !@ HkkH o o@ (54Q CL:ERROR 43Q %%COMPLEX-MINUS 40Q %%COMPLEX-TIMESI 30Q CL:LOG 25Q %%/ 11Q %%COMPLEX-TIMESI 3 %%ATAN-DOMAIN-CHECK) NIL ( 50Q "Argument not in domain for atan. ~S" 34Q .5) CIS D1 (I 0 THETA) @ o@ @ @ (30Q COMPLEX 25Q CL:SIN 21Q CL:COS 14Q CL:ERROR 3 COMPLEXP) NIL ( 10Q "Argument to CIS is complex: ~S") SINH D1 (P 0 Z I 0 X) @ HkH l (22Q %%/ 14Q %%/ 3 EXP) NIL () COSH D1 (P 0 Z I 0 X) @ HkH l (22Q %%/ 14Q %%/ 3 EXP) NIL () TANH D1 (P 1 Y P 0 Z I 0 X) #@l kH kIk kHk (37Q %%/ 30Q %%/ 16Q %%/ 6 EXP) NIL () ASINH D1 (I 0 X) @ddk (14Q CL:LOG 10Q CL:SQRT) NIL () ACOSH D1 (I 0 X) @ddk (14Q CL:LOG 10Q CL:SQRT) NIL () ATANH D1 (I 0 X) "@ @kk@ oo@ (37Q CL:ERROR 21Q CL:LOG 16Q %%/ 3 %%ATANH-DOMAIN-CHECK) NIL ( 33Q "~S argument out of range." 25Q .5) %%ATANH-DOMAIN-CHECK D1 (I 0 Z) '@ Hj HH  @ k h(42Q %%= 36Q ABS 33Q REALPART 24Q \FZEROP 3 IMAGPART) NIL () (PRETTYCOMPRINT CMLFLOATCOMS) (RPAQQ CMLFLOATCOMS ((* * CMLFLOAT -- Covering sections 12.5-12.5.3 irrational, transcendental, exponential, logarithmic, trigonometric, and hyperbolic functions. -- By Kelly Roach. *) (COMS (* LLFLOAT addition. *) (FNS %%FLOAT %%MAKE-ARRAY)) (COMS * CMLFLOATJUNKCOMS) (COMS (* Constants. *) ( CONSTANTS (PI (%%FLOAT 16457 4059)))) (COMS (* CMLARITH improvements. Put these back in CMLARITH when Larry gets finished. *) (* PHASE and TRUNCATE had bugs I missed before handing off to Larry. %%COMPLEX-ABS changes because CL:SQRT is smarter now and also %%COMPLEX-ABS was calling SQRT instead of CL:SQRT. COMPLEX has been fixed so that (COMPLEX 0.0 0.0) = 0.0 \FLOAT has been upgraded so that ( FLOAT (COMPLEX 2 3)) = (COMPLEX 2.0 3.0) *) (FNS PHASE TRUNCATE %%COMPLEX-ABS COMPLEX \FLOAT) (P ( printout T "Warning: CMLFLOAT redefined some CMLARITH functions that need to be fixed." T))) (COMS (* EXP *) (COMS * CMLFLOATEXPCOMS) (FNS EXP %%EXP-FLOAT %%EXP-COMPLEX)) (COMS (* EXPT *) (FNS CL:EXPT %%EXPT-INTEGER %%EXPT-FLOAT %%EXPT-COMPLEX %%EXPT-COMPLEX-POWER)) (COMS (* LOG *) (COMS * CMLFLOATLOGCOMS) (FNS CL:LOG %%LOG-FLOAT %%LOG-COMPLEX %%OLD-LOG-FLOAT)) (COMS (* SQRT *) (FNS CL:SQRT %%SQRT-PERFECT %%SQRT-INTEGER %%SQRT-INTEGER-PERFECT %%SQRT-FLOAT %%SQRT-RATIO %%SQRT-RATIO-PERFECT %%SQRT-COMPLEX %%SQRT-COMPLEX-PERFECT %%OLD-SQRT-COMPLEX) (FNS ISQRT)) (DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%2PI (%%FLOAT 16585 4059)) (%%PI (%%FLOAT 16457 4059)) (%%PI/2 (%%FLOAT 16329 4059)) ( %%-PI/2 (%%FLOAT 49097 4059)) (%%PI/4 (%%FLOAT 16201 4059)) (%%-PI/4 (%%FLOAT 48969 4059)) (SIXTH-PI .5236) (%%2/PI (%%FLOAT 16162 63875)))) (COMS (* SIN *) (COMS * CMLFLOATSINCOMS) (FNS CL:SIN %%SIN-FLOAT %%SIN-COMPLEX)) (COMS (* COS *) (FNS CL:COS %%COS-COMPLEX)) (COMS (* TAN *) (COMS * CMLFLOATTANCOMS) (FNS CL:TAN %%TAN-FLOAT %%TAN-COMPLEX)) (COMS (* ASIN *) (COMS * CMLFLOATASINCOMS) ( FNS ASIN %%ASIN-FLOAT %%ASIN-COMPLEX)) (COMS (* ACOS *) (FNS ACOS %%ACOS-COMPLEX)) (COMS (* ATAN *) ( FNS CL:ATAN %%ATAN1 %%ATAN2 %%ATAN-DOMAIN-CHECK %%ATAN-FLOAT %%ATAN-COMPLEX)) (COMS (* CIS *) (FNS CIS )) (COMS (* SINH COSH TANH *) (FNS SINH COSH TANH)) (COMS (* ASINH ACOSH ATANH *) (FNS ASINH ACOSH ATANH %%ATANH-DOMAIN-CHECK)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS ( NLAMA) (NLAML) (LAMA %%ATANH-DOMAIN-CHECK ATANH ACOSH ASINH TANH COSH SINH CIS %%ATAN-COMPLEX %%ATAN-FLOAT %%ATAN-DOMAIN-CHECK %%ATAN2 %%ATAN1 CL:ATAN %%ACOS-COMPLEX ACOS %%ASIN-COMPLEX ASIN %%TAN-COMPLEX CL:TAN %%COS-COMPLEX CL:COS %%SIN-COMPLEX CL:SIN ISQRT %%OLD-SQRT-COMPLEX %%SQRT-PERFECT CL:SQRT %%LOG-COMPLEX CL:LOG %%EXPT-COMPLEX-POWER %%EXPT-COMPLEX %%EXPT-INTEGER CL:EXPT %%EXP-COMPLEX %%EXP-FLOAT EXP COMPLEX %%COMPLEX-ABS TRUNCATE PHASE))))) (RPAQQ CMLFLOATJUNKCOMS ((DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%SINGLE-FLOAT-EXPONENT-LENGTH 8) (%%SINGLE-FLOAT-MANTISSA-LENGTH 23) (%%FLOAT-ONE 1.0) (%%FLOAT-HALF .5) (%%SQRT-HALF (%%FLOAT 16181 1267)) (%%E (%%FLOAT 16429 63530)) (SQRT3 1.730525) (2-SQRT3 .2679482) (INV-2-SQRT3 3.732071) ( %%FLOAT-HALF .5) (%%ZERO 0.0))))) (RPAQ PI (%%FLOAT 16457 4059)) (CONSTANTS (PI (%%FLOAT 16457 4059))) (printout T "Warning: CMLFLOAT redefined some CMLARITH functions that need to be fixed." T) (RPAQQ CMLFLOATEXPCOMS ((CONSTANTS (%%LOG-BASE2-E (%%FLOAT 16312 43579))) (* * %%EXP-POLY contains P and Q coefficients of Harris et al EXPB 1103 rational approximation to (EXPT 2 X) in interval (0 .125) %. %%EXP-TABLE contains values of powers (EXPT 2 (/ N 8)) . *) (INITVARS (%%EXP-POLY (%%MAKE-ARRAY ( LIST (%%FLOAT 15549 17659) (%%FLOAT 16256 0) (%%FLOAT 16801 38273) (%%FLOAT 17257 7717) (%%FLOAT 17597 11739) (%%FLOAT 17800 30401)))) (%%EXP-TABLE (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 16267 38338) (%%FLOAT 16280 14320) (%%FLOAT 16293 65239) (%%FLOAT 16309 1267) (%%FLOAT 16325 26410) (%%FLOAT 16343 17661) (%%FLOAT 16362 49351))))))) (RPAQ %%LOG-BASE2-E (%%FLOAT 16312 43579)) (CONSTANTS (%%LOG-BASE2-E (%%FLOAT 16312 43579))) (RPAQ? %%EXP-POLY (%%MAKE-ARRAY (LIST (%%FLOAT 15549 17659) (%%FLOAT 16256 0) (%%FLOAT 16801 38273) ( %%FLOAT 17257 7717) (%%FLOAT 17597 11739) (%%FLOAT 17800 30401)))) (RPAQ? %%EXP-TABLE (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 16267 38338) (%%FLOAT 16280 14320) ( %%FLOAT 16293 65239) (%%FLOAT 16309 1267) (%%FLOAT 16325 26410) (%%FLOAT 16343 17661) (%%FLOAT 16362 49351)))) (RPAQQ CMLFLOATLOGCOMS ((DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%LOG2 (%%FLOAT 16177 29208)) ( %%SQRT2 (%%FLOAT 16309 1267)))) (* * %%LOG-PPOLY and %%LOG-QPOLY contain P and Q coefficients of Harris et al LOGE 2707 rational approximation to (LOG X) in interval ((SQRT .5) (SQRT 2)) . *) ( INITVARS (%%LOG-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16042 22803) (%%FLOAT 49484 23590) (%%FLOAT 17044 17982) (%%FLOAT 49926 37153) (%%FLOAT 17046 5367)))) (%%LOG-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0 ) (%%FLOAT 49512 9103) (%%FLOAT 16992 42274) (%%FLOAT 49823 38048) (%%FLOAT 16918 5367))))))) (RPAQ? %%LOG-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16042 22803) (%%FLOAT 49484 23590) (%%FLOAT 17044 17982) (%%FLOAT 49926 37153) (%%FLOAT 17046 5367)))) (RPAQ? %%LOG-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 49512 9103) (%%FLOAT 16992 42274) ( %%FLOAT 49823 38048) (%%FLOAT 16918 5367)))) (RPAQQ CMLFLOATSINCOMS ((* * %%SIN-EPSILON is sufficiently small that (SIN X) = X for X in interval (0 %%SIN-EPSILON) %. It suffices to take %%SIN-EPSILON a little bit smaller than (SQRT (CL:* 6 SINGLE-FLOAT-EPSILON)) which we get by the Taylor series expansion (SIN X) = (+ X (/ (EXPT X 3) 6) ... ) (The relative error caused by ommitting (/ (EXPT X 3) 6) isn't observable.) Comparison against %%SIN-EPSILON is used to avoid POLYEVAL microcode underflow when computing SIN. *) (DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%SIN-EPSILON (%%FLOAT 14720 0)))) (* * %%SIN-PPOLY and %%SIN-QPOLY contain P and Q coefficients of Harris et al SIN 3374 rational approximation to (SIN X) in interval (0 (/ PI 2)) . *) (INITVARS (%%SIN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 50193 50772) (%%FLOAT 18371 47202) (%%FLOAT 51905 54216) (%%FLOAT 19748 29063) (%%FLOAT 52951 41140) (%%FLOAT 20368 50691)))) ( %%SIN-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 17252 49821) (%%FLOAT 18142 34466) (%%FLOAT 18957 45135) (%%FLOAT 19685 22067) (%%FLOAT 20280 21713))))))) (RPAQ? %%SIN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 50193 50772) (%%FLOAT 18371 47202) (%%FLOAT 51905 54216) (%%FLOAT 19748 29063) (%%FLOAT 52951 41140) (%%FLOAT 20368 50691)))) (RPAQ? %%SIN-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 17252 49821) (%%FLOAT 18142 34466) ( %%FLOAT 18957 45135) (%%FLOAT 19685 22067) (%%FLOAT 20280 21713)))) (RPAQQ CMLFLOATTANCOMS ((* * %%TAN-EPSILON is sufficiently small that (TAN X) = X for X in interval (0 %%TAN-EPSILON) %. It suffices to take %%TAN-EPSILON a little bit smaller than (SQRT (CL:* 3 SINGLE-FLOAT-EPSILON)) which we get by the Taylor series expansion (TAN X) = (+ X (/ (EXPT X 3) 3) ... ) (The relative error caused by ommitting (/ (EXPT X 3) 3) isn't observable.) Comparison against %%TAN-EPSILON is used to avoid POLYEVAL microcode underflow when computing TAN. *) (DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%TAN-EPSILON (%%FLOAT 14720 0)))) (* * %%TAN-PPOLY and %%TAN-QPOLY contain P and Q coefficients of Harris et al TAN 4288 rational approximation to (TAN X) in interval ( -PI/4 PI/4) . *) (INITVARS (%%TAN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 49803 44451) (%%FLOAT 18254 23362 ) (%%FLOAT 51983 57389) (%%FLOAT 19947 57965) (%%FLOAT 53162 16965)))) (%%TAN-QPOLY (%%MAKE-ARRAY ( LIST (%%FLOAT 16256 0) (%%FLOAT 50453 51515) (%%FLOAT 18760 65370) (%%FLOAT 52376 39517) (%%FLOAT 20221 24840) (%%FLOAT 53208 51139))))))) (RPAQ? %%TAN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 49803 44451) (%%FLOAT 18254 23362) (%%FLOAT 51983 57389) (%%FLOAT 19947 57965) (%%FLOAT 53162 16965)))) (RPAQ? %%TAN-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 50453 51515) (%%FLOAT 18760 65370) ( %%FLOAT 52376 39517) (%%FLOAT 20221 24840) (%%FLOAT 53208 51139)))) (RPAQQ CMLFLOATASINCOMS ((* * %%ASIN-EPSILON is sufficiently small that (ASIN X) = X for X in interval (0 %%ASIN-EPSILON) %. It suffices to take %%ASIN-EPSILON a little bit smaller than (CL:* 2 SINGLE-FLOAT-EPSILON) which we get by the Taylor series expansion (ASIN X) = (+ X (/ (EXPT X 3) 6) ... ) (The relative error caused by ommitting (/ (EXPT X 3) 6) isn't observable.) Comparison against %%ASIN-EPSILON is used to avoid POLYEVAL microcode underflow when computing SIN. *) (DECLARE: EVAL@COMPILE DONTCOPY (CONSTANTS (%%ASIN-EPSILON (%%FLOAT 14720 0)))) (* * %%ASIN-PPOLY and %%ASIN-QPOLY contain P and Q coefficients of Harris et al ARCSN 4671 rational approximation to (ASIN X ) in interval (0 (SQRT .5)) . *) (INITVARS (%%ASIN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16007 50045) ( %%FLOAT 49549 8020) (%%FLOAT 17236 15848) (%%FLOAT 50285 63464) (%%FLOAT 17650 31235) (%%FLOAT 50403 62852) (%%FLOAT 17440 39471)))) (%%ASIN-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 49672 25817) (%%FLOAT 17308 55260) (%%FLOAT 50326 38098) (%%FLOAT 17674 22210) (%%FLOAT 50417 22451) ( %%FLOAT 17440 39471))))))) (RPAQ? %%ASIN-PPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16007 50045) (%%FLOAT 49549 8020) (%%FLOAT 17236 15848) (%%FLOAT 50285 63464) (%%FLOAT 17650 31235) (%%FLOAT 50403 62852) (%%FLOAT 17440 39471)))) (RPAQ? %%ASIN-QPOLY (%%MAKE-ARRAY (LIST (%%FLOAT 16256 0) (%%FLOAT 49672 25817) (%%FLOAT 17308 55260) (%%FLOAT 50326 38098) (%%FLOAT 17674 22210) (%%FLOAT 50417 22451) (%%FLOAT 17440 39471)))) (PUTPROPS CMLFLOAT COPYRIGHT ("Xerox Corporation" 1986)) NIL