(FILECREATED " 5-Aug-86 15:49:49" ("compiled on " {ERIS}LIBRARY>CMLARITH.;27) "30-Jul-86 09:02:49" "COMPILE-FILEd" in "Xerox Lisp 30-Jul-86 ..." dated "30-Jul-86 09:16:17") (FILECREATED " 5-Aug-86 15:47:15" {ERIS}LIBRARY>CMLARITH.;27 117441 changes to: (FNS NEW-SLOWIQUOTIENT NEW-IREMAINDER %%RATIO-PRINT %%COMPLEX-PRINT) (STRUCTURES RATIO COMPLEX) (VARS CMLARITHCOMS) previous date: "28-Jul-86 18:08:25" {ERIS}LIBRARY>CMLARITH.;25) (RPAQQ CMLARITHCOMS ((* * CMLARITH. Common Lisp Arithmetic. Covers all of Common Lisp arithmetic except for higher math functions. Covers sections 2.1-2.1.4, 12.1-12.4, and 12.6-12.10 Doesn't cover sections 12.5-12.5.3. -- By Kelly Roach *) (COMS (* Miscellaneous. *) (FNS ISQRT PRIMEP PHASE SIGNUM %%SIGNUM)) (COMS (* Section 2.1.2 Ratios. *) (STRUCTURES RATIO) (DECLARE: DONTEVAL@LOAD DOCOPY (P (* The following makes NUMBERP true on ratios *) (\SETTYPEMASK (\TYPENUMBERFROMNAME (QUOTE RATIO)) (LOGOR \TT.NUMBERP \TT.ATOM)))) (FNS NUMERATOR DENOMINATOR RATIONALP RATIONAL RATIONALIZE %%RATIO-PRINT %%BUILD-RATIO %%RATIONALIZE-FLOAT %%RATIO* %%RATIO/ %%RATIO-TIMES-QUOTIENT %%RATIO+ %%RATIO- %%RATIO-PLUS-DIFFERENCE %%RATIO-INTEGER* %%RATIO-INTEGER+ %%RATIO-INTEGER-)) (COMS (* Section 2.1.4 Complex Numbers. *) (STRUCTURES COMPLEX) (DECLARE: DONTEVAL@LOAD DOCOPY (P (* Make it so that COMPLEX is NUMBERP *) (\SETTYPEMASK (\TYPENUMBERFROMNAME (QUOTE COMPLEX)) (LOGOR \TT.NUMBERP \TT.ATOM)))) (* TBW: Reading complex numbers. *) (FNS COMPLEX REALPART IMAGPART %%COMPLEX+ %%COMPLEX- %%COMPLEX* %%COMPLEX/ %%COMPLEX-ABS %%COMPLEX-MINUS %%COMPLEX-TIMESI CONJUGATE %%COMPLEX-PRINT)) (COMS (* Section 12.2 Predicates on Numbers. *) (* MINUSP is made to work on ratios. Otherwise, backwards compatible. *) (FNS NEW-MINUSP) (DECLARE: DONTEVAL@LOAD DOCOPY (P (MOVD (QUOTE NEW-MINUSP) (QUOTE MINUSP)))) (FNS CL:ZEROP) (FNS EVENP ODDP PLUSP)) (COMS (* Section 12.3 Comparisons on Numbers. *) (FNS %%= %%>) (FNS = %%= /= < > <= >=) (PROP DMACRO = /= < > <= >=) (* MAX and MIN are OK because they use GREATERP and GREATERP is fixed by this file to work on ratios. *)) (COMS (* Section 12.4 Arithmetic Operations. *) (FNS + - CL:* / %%/ 1+ 1-) (PROP DMACRO + - CL:* / 1+ 1-) (DECLARE: DONTEVAL@LOAD DOCOPY (P (MOVD ( QUOTE +) (QUOTE PLUS)) (MOVD (QUOTE -) (QUOTE DIFFERENCE)) (MOVD (QUOTE 1+) (QUOTE ADD1)) (MOVD (QUOTE 1-) (QUOTE SUB1)) (MOVD (QUOTE CL:*) (QUOTE TIMES)))) (* INCF and DECF implemented by CMLSETF. *) (* CONJUGATE implemented in section 2.1.4 above. *) (FNS CL:GCD %%GCD LCM)) (COMS (* Section 12.6 Type Conversions and Component Extractions on Numbers. *) (* * LLFLOAT replacements. LLFLOAT ufns seem OK once we modify \FLOAT appropriately. *) (FNS FLOAT \FLOAT) (* NUMERATOR and DENOMINATOR implemented in section 2.1.2 above. *) (FNS CL:FLOOR TRUNCATE CEILING ROUND CL:MOD REM FFLOOR FCEILING FTRUNCATE FROUND) (* Page 218 functions. *) (FNS DECODE-FLOAT SCALE-FLOAT FLOAT-RADIX FLOAT-SIGN FLOAT-DIGITS FLOAT-PRECISION INTEGER-DECODE-FLOAT) (* EXPT COMPLEX REALPART and IMAGPART are defined by CMLFLOAT. * )) (COMS (* * LLARITH replacements. Either you have to live with these replacements or you have to start fixing CLISP for loops, the history mechanism etc. Larry tried taking these out and the things I had fixed by putting these replacements in started breaking again. These replacements are supposed to be good for you in any case. *) (COMS (* Non ufns *) (* GREATERP and LESSP are made to work on ratios. EQP, ABS, and MINUS is fixed to work on ratios and complexs. *) (FNS NEW-LESSP NEW-EQP NEW-ABS NEW-MINUS) (DECLARE: DONTEVAL@LOAD DOCOPY (P (MOVD (QUOTE %%>) (QUOTE GREATERP)) (MOVD (QUOTE NEW-LESSP) (QUOTE LESSP)) (MOVD (QUOTE NEW-EQP) (QUOTE EQP)) (MOVD (QUOTE NEW-ABS) (QUOTE ABS)) (MOVD (QUOTE NEW-MINUS) (QUOTE MINUS))))) (COMS (* New LLARITH UFNS *) (COMS (* INTEGER ARITH UFNS .UNBOX. is made to understand RATIOs so integer arith ufns must be recompiled. \IQUOTREM has not changed, but \IQUOTREM uses .UNBOX. and NEW-SLOWIQUOTIENT and NEW-IREMAINDER use \IQUOTREM. *) (DECLARE: EVAL@COMPILE DONTCOPY (MACROS .CMLUNBOX. .CMLIQUOTREM.)) (FNS NEW-SLOWIPLUS2 NEW-SLOWIDIFFERENCE NEW-SLOWITIMES2 NEW-SLOWIQUOTIENT NEW-IREMAINDER NEW-SLOWIGREATERP)) (DECLARE: DONTEVAL@LOAD DOCOPY (P (\SETUFNENTRY (CAR (\FINDOP (QUOTE IPLUS2))) (QUOTE NEW-SLOWIPLUS2) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IDIFFERENCE))) (QUOTE NEW-SLOWIDIFFERENCE) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE ITIMES2))) ( QUOTE NEW-SLOWITIMES2) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IQUOTIENT))) (QUOTE NEW-SLOWIQUOTIENT) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IREMAINDER))) (QUOTE NEW-IREMAINDER) 2 0) (\SETUFNENTRY (CAR ( \FINDOP (QUOTE IGREATERP))) (QUOTE NEW-SLOWIGREATERP) 2 0))))) (COMS (* New general arithmetic UFNs which know about ratio and complex *) (* NOTE: %%/ CAN NOT COMPILE INTO THE EXISTING QUOTIENT OPCODE. This is because %%/ is supposed to produce a rational when numerator is not evenly divisible by denominator. Therefore, there is no MACRO for %%/ below. *) (PROP DOPVAL %%+ %%- %%* %%>) (FNS %%+ %%- %%* %%/) (DECLARE: DONTEVAL@LOAD DOCOPY (P (\SETUFNENTRY (CAR (\FINDOP (QUOTE PLUS2))) (QUOTE %%+) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE DIFFERENCE))) (QUOTE %%-) 2 0) (\SETUFNENTRY (CAR (\FINDOP ( QUOTE TIMES2))) (QUOTE %%*) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE GREATERP))) (QUOTE %%>) 2 0)))) ( COMS (* Section 12.7 Logical Operations on Numbers. *) (* Page 221 functions. LOGAND LOGXOR are OK. *) (FNS LOGIOR LOGEQV LOGNAND LOGNOR LOGANDC1 LOGANDC2 LOGORC1 LOGORC2) (* Page 222.0 BOOLE and constants. *) (FNS BOOLE) (INITVARS (BOOLE-CLR 0) (BOOLE-SET 1) (BOOLE-1 2) (BOOLE-2 3) (BOOLE-C1 4) ( BOOLE-C2 5) (BOOLE-AND 6) (BOOLE-IOR 7) (BOOLE-XOR 8) (BOOLE-EQV 9) (BOOLE-NAND 10) (BOOLE-NOR 11) ( BOOLE-ANDC1 12) (BOOLE-ANDC2 13) (BOOLE-ORC1 14) (BOOLE-ORC2 15)) (* Remainder of section 12.7 LOGNOT is OK. *) (FNS LOGTEST LOGBITP) (FNS ASH) (FNS LOGCOUNT %%LOGCOUNT) (FNS INTEGER-LENGTH)) (COMS (* Section 12.8 Byte Manipulations Functions. *) (* BYTE macro already implemented. Should be function. * ) (FNS BYTE-SIZE BYTE-POSITION) (* LDB macro already implemented. Should be function. *) (FNS LDB-TEST MASK-FIELD) (* DPB macro already implemented. Should be function. *) (FNS DEPOSIT-FIELD)) (DECLARE: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP) LLFLOAT LLBIGNUM)) (PROP FILETYPE CMLARITH) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA LOGEQV LOGIOR FLOAT-SIGN FROUND FTRUNCATE FCEILING FFLOOR ROUND CEILING TRUNCATE CL:FLOOR LCM CL:GCD CL:* + /= ODDP EVENP %%COMPLEX-PRINT COMPLEX %%RATIONALIZE-FLOAT))))) ISQRT D1 (L (0 INTEGER)) W@3 Jj@E@ 1kHkm YdHkjmj ԺJkIIIJm [dd@KZo@ (124Q CL:ERROR 75Q ASH 53Q ASH 34Q ASH 31Q ASH 15Q INTEGER-LENGTH) NIL ( 120Q "Isqrt: ~S argument must be a nonnegative integer") PRIMEP D1 (L (0 X)) h@dll@h @l hkjhj@l hlkllIdj KHIj h@K \LJlKJԻ(124Q \MVLIST 121Q TRUNCATE 111Q %%= 76Q %%= 52Q %%= 47Q REM 25Q %%=) NIL () PHASE D1 (L (0 NUMBER)) @ @ @ j@oo(17Q CL:ATAN 14Q COMPLEX-REALPART 10Q COMPLEX-IMAGPART 3 COMPLEXP) NIL ( 35Q 0.0 30Q 3.141593) SIGNUM D1 (L (0 NUMBER)) (@djdd @ @ km@d (45Q %%/ 42Q ABS 27Q PLUSP 22Q RATIONALP 14Q \FZEROP) NIL () %%SIGNUM D1 (L (0 X)) -@d kj@m@H@ jH(44Q \FZEROP 4 PLUSP) (40Q FLOATP) () RATIO-DENOMINATOR D1 (L (0 OBJECT)) @NIL (3 RATIO) () setf-RATIO-DENOMINATOR D1 (L (1 VALUE 0 OBJECT)) @AANIL (3 RATIO) () (REMPROP (QUOTE RATIO-DENOMINATOR) (QUOTE SETF-METHOD-EXPANDER)) (PUTPROPS RATIO-DENOMINATOR SETF-INVERSE setf-RATIO-DENOMINATOR) RATIO-NUMERATOR D1 (L (0 OBJECT)) @NIL (3 RATIO) () setf-RATIO-NUMERATOR D1 (L (1 VALUE 0 OBJECT)) @AANIL (3 RATIO) () (REMPROP (QUOTE RATIO-NUMERATOR) (QUOTE SETF-METHOD-EXPANDER)) (PUTPROPS RATIO-NUMERATOR SETF-INVERSE setf-RATIO-NUMERATOR) RATIO-P D1 (L (0 OBJECT)) @`NIL (4 RATIOTYPE#) () COPY-RATIO D1 (L (0 OBJECT)) `@ (6 NCREATE2) (2 RATIOTYPE#) () (DEFPRINT (QUOTE RATIO) (FUNCTION (LAMBDA (X STREAM) (APPLY* (FUNCTION %%RATIO-PRINT) X STREAM 0) T))) %%internal-make-RATIO D1 (L (0 -args-)) \eHkJdI(g1HkKdJ)g`dIdLagJkaJlZagKkaKl[NIL (113Q :DENOMINATOR 70Q :NUMERATOR 50Q RATIOTYPE# 44Q :READ-ONLY 22Q :READ-ONLY) () %%MAKE-RATIO D1 (L (1 DENOMINATOR 0 NUMERATOR)) `d@dANIL (2 RATIOTYPE#) () (PUTPROP (QUOTE RATIO) (QUOTE STRUCTURE-CONSTRUCTOR) (QUOTE %%internal-make-RATIO)) (PUTPROP (QUOTE RATIO) (QUOTE %%SLOT-DESCRIPTIONS) (QUOTE ((NUMERATOR :READ-ONLY) (DENOMINATOR :READ-ONLY)))) (/DECLAREDATATYPE (QUOTE RATIO) (QUOTE (POINTER POINTER)) (QUOTE ((RATIO 0 POINTER) (RATIO 2 POINTER)) ) (QUOTE 4)) (\SETTYPEMASK (\TYPENUMBERFROMNAME (QUOTE RATIO)) (LOGOR \TT.NUMBERP \TT.ATOM)) NUMERATOR D1 (L (0 RATIONAL)) $@Hd3 @`@ gHo (41Q CHECK-TYPE-FAIL 25Q RATIO-NUMERATOR) (31Q RATIONAL 16Q RATIOTYPE#) ( 36Q (OR INTEGER RATIO)) DENOMINATOR D1 (L (0 RATIONAL)) $@Hd3 k`@ gHo (41Q CHECK-TYPE-FAIL 25Q RATIO-DENOMINATOR) (31Q RATIONAL 16Q RATIOTYPE#) ( 36Q (OR INTEGER RATIO)) RATIONALP D1 (I 0 NUMBER) @d3 i (11Q RATIO-P) NIL () RATIONAL D1 (L (0 NUMBER)) {@aHYd3 @l<@ ZJK KM jLNkML NL kM Id``@ @ gHo (170Q CHECK-TYPE-FAIL 154Q %%MAKE-COMPLEX 151Q RATIONAL 146Q IMAGPART 142Q RATIONAL 137Q REALPART 112Q %%BUILD-RATIO 107Q ASH 102Q ASH 74Q %%BUILD-RATIO 71Q ASH 54Q TRUNCATE 51Q SCALE-FLOAT 43Q FLOAT-PRECISION 30Q \MVLIST 25Q DECODE-FLOAT) (160Q NUMBER 130Q COMPLEXTYPE# 121Q RATIOTYPE#) ( 165Q (OR INTEGER FLOAT RATIO COMPLEX)) RATIONALIZE D1 (L (0 NUMBER)) H@HY3 Id`@l@o I`@ @ gHo (105Q CHECK-TYPE-FAIL 71Q %%MAKE-COMPLEX 66Q RATIONALIZE 63Q IMAGPART 57Q RATIONALIZE 54Q REALPART 37Q %%RATIONALIZE-FLOAT) (75Q NUMBER 45Q COMPLEXTYPE# 16Q RATIOTYPE#) ( 102Q (OR OR INTEGER RATIO FLOAT COMPLEX) 34Q 1.192093E-7) %%RATIO-PRINT D1 (P 3 \THISFILELINELENGTH P 2 *PRINT-RADIX* P 1 BOTTOM P 0 TOP I 1 STREAM I 0 NUMBER F 4 \THISFILELINELENGTH F 5 *READTABLE*) i@ @ UjoA gHIhA 9TH I AkTA HA oA IA i(145Q \PRINDATUM 137Q PRIN3 126Q \PRINDATUM 115Q FRESHLINE 74Q NCHARS 70Q NCHARS 53Q \PRINDATUM 35Q PRIN1 7 DENOMINATOR 3 NUMERATOR) (100Q STREAM 41Q / 16Q READTABLEP) ( 133Q "/" 31Q "|.") %%BUILD-RATIO D1 (L (1 Y 0 X)) S@A 1HHZj6J,@A [k @K bAK bjAj@jA  I@A (120Q %%MAKE-RATIO 107Q \FZEROP 103Q %%MAKE-RATIO 62Q %%/ 52Q %%/ 44Q %%= 37Q %%GCD 7 \MVLIST 4 TRUNCATE) NIL () %%RATIONALIZE-FLOAT D1 (L (0 -args-)) eka!lHolajIjdI IjHI>Id [kdjNj4NN *IMINI I JMN  joLKI d [MOKNOMN__(203Q TRUNCATE 177Q %%/ 154Q \FZEROP 150Q %%/ 140Q ABS 135Q %%/ 130Q %%/ 106Q \FZEROP 62Q TRUNCATE 41Q RATIONALIZE) (173Q FLOATP 125Q FLOATP 117Q FLOATP) ( 164Q 1.0 21Q 1.192093E-7) %%RATIO* D1 (L (1 Y 0 X)) @ 1A @ A HJIK (34Q %%RATIO-TIMES-QUOTIENT 24Q DENOMINATOR 17Q DENOMINATOR 12Q NUMERATOR 3 NUMERATOR) NIL () %%RATIO/ D1 (L (1 Y 0 X)) /@ 1A @ A jIHJjKjI HJKI (54Q %%RATIO-TIMES-QUOTIENT 44Q %%RATIO-TIMES-QUOTIENT 24Q DENOMINATOR 17Q DENOMINATOR 12Q NUMERATOR 3 NUMERATOR) NIL () %%RATIO-TIMES-QUOTIENT D1 (L (3 K2 2 H2 1 K1 0 H1)) R@C BA Hk @H bCH bIk BI bAI b@BACIk HHI (117Q %%MAKE-RATIO 107Q %%= 65Q %%/ 55Q %%/ 47Q %%= 37Q %%/ 27Q %%/ 21Q %%= 11Q %%GCD 4 %%GCD) NIL () %%RATIO+ D1 (L (1 Y 0 X)) @A (4 %%RATIO-PLUS-DIFFERENCE) NIL () %%RATIO- D1 (L (1 Y 0 X)) @Ai (5 %%RATIO-PLUS-DIFFERENCE) NIL () %%RATIO-PLUS-DIFFERENCE D1 (L (2 DIFFERENCEFLG 1 Y 0 X)) @  @ A A IK BjJպLk HKJIIK IL HKL JM^L _K_Ok KO _NO M_k OO NNMO (203Q %%MAKE-RATIO 170Q %%= 160Q %%= 150Q %%/ 137Q %%/ 130Q %%= 113Q %%GCD 101Q %%/ 72Q %%/ 64Q %%MAKE-RATIO 46Q %%= 32Q %%GCD 24Q DENOMINATOR 17Q NUMERATOR 12Q DENOMINATOR 3 NUMERATOR) NIL () %%RATIO-INTEGER* D1 (L (1 Y 0 X)) LAj.A$@ HA Yk AI bHI X jHk @ A@ AH (111Q %%MAKE-RATIO 103Q NUMERATOR 74Q NUMERATOR 67Q %%= 56Q \FZEROP 51Q %%/ 41Q %%/ 32Q %%= 25Q %%GCD 15Q DENOMINATOR) NIL () %%RATIO-INTEGER+ D1 (L (1 Y 0 X)) @ @ HAH (22Q %%MAKE-RATIO 12Q RATIO-NUMERATOR 3 RATIO-DENOMINATOR) NIL () %%RATIO-INTEGER- D1 (L (1 Y 0 X)) @ @ HAH (22Q %%MAKE-RATIO 12Q RATIO-NUMERATOR 3 RATIO-DENOMINATOR) NIL () COMPLEX-IMAGPART D1 (L (0 OBJECT)) @NIL (3 COMPLEX) () setf-COMPLEX-IMAGPART D1 (L (1 VALUE 0 OBJECT)) @AANIL (3 COMPLEX) () (REMPROP (QUOTE COMPLEX-IMAGPART) (QUOTE SETF-METHOD-EXPANDER)) (PUTPROPS COMPLEX-IMAGPART SETF-INVERSE setf-COMPLEX-IMAGPART) COMPLEX-REALPART D1 (L (0 OBJECT)) @NIL (3 COMPLEX) () setf-COMPLEX-REALPART D1 (L (1 VALUE 0 OBJECT)) @AANIL (3 COMPLEX) () (REMPROP (QUOTE COMPLEX-REALPART) (QUOTE SETF-METHOD-EXPANDER)) (PUTPROPS COMPLEX-REALPART SETF-INVERSE setf-COMPLEX-REALPART) COMPLEXP D1 (L (0 OBJECT)) @`NIL (4 COMPLEXTYPE#) () COPY-COMPLEX D1 (L (0 OBJECT)) `@ (6 NCREATE2) (2 COMPLEXTYPE#) () (DEFPRINT (QUOTE COMPLEX) (FUNCTION (LAMBDA (X STREAM) (APPLY* (FUNCTION %%COMPLEX-PRINT) X STREAM 0) T))) %%internal-make-COMPLEX D1 (L (0 -args-)) \eHkJdI(g1HkKdJ)g`dIdLagJkaJlZagKkaKl[NIL (113Q :IMAGPART 70Q :REALPART 50Q COMPLEXTYPE# 44Q :READ-ONLY 22Q :READ-ONLY) () %%MAKE-COMPLEX D1 (L (1 IMAGPART 0 REALPART)) `d@dANIL (2 COMPLEXTYPE#) () (PUTPROP (QUOTE COMPLEX) (QUOTE STRUCTURE-CONSTRUCTOR) (QUOTE %%internal-make-COMPLEX)) (PUTPROP (QUOTE COMPLEX) (QUOTE %%SLOT-DESCRIPTIONS) (QUOTE ((REALPART :READ-ONLY) (IMAGPART :READ-ONLY)))) (/DECLAREDATATYPE (QUOTE COMPLEX) (QUOTE (POINTER POINTER)) (QUOTE ((COMPLEX 0 POINTER) (COMPLEX 2 POINTER))) (QUOTE 4)) (\SETTYPEMASK (\TYPENUMBERFROMNAME (QUOTE COMPLEX)) (LOGOR \TT.NUMBERP \TT.ATOM)) COMPLEX D1 (L (0 -args-)) zekaQlHjlaI^]`Md3 ;Jdj:IlIJ igLo Z\[`Kd3 ٿIJ lIJ igNo Y(165Q CHECK-TYPE-FAIL 150Q %%MAKE-COMPLEX 132Q %%MAKE-COMPLEX 105Q CHECK-TYPE-FAIL 70Q %%MAKE-COMPLEX) (155Q REALPART 145Q FLOATP 114Q RATIOTYPE# 75Q IMAGPART 64Q FLOATP 32Q RATIOTYPE#) ( 162Q (OR RATIONAL FLOAT) 102Q (OR RATIONAL FLOAT)) REALPART D1 (L (0 NUMBER)) %@Hd`@ 3@gHo (42Q CHECK-TYPE-FAIL 20Q COMPLEX-REALPART) (32Q NUMBER 11Q COMPLEXTYPE#) ( 37Q (OR COMPLEX NUMBER)) IMAGPART D1 (L (0 NUMBER)) 1@HYd`@ loI3jgHo (56Q CHECK-TYPE-FAIL 21Q COMPLEX-IMAGPART) (46Q NUMBER 12Q COMPLEXTYPE#) ( 53Q (OR COMPLEX FLOAT NUMBER) 33Q 0.0) %%COMPLEX+ D1 (L (1 Y 0 X)) @ A @ A (24Q COMPLEX 20Q IMAGPART 14Q IMAGPART 7 REALPART 3 REALPART) NIL () %%COMPLEX- D1 (L (1 Y 0 X)) @ A @ A (24Q COMPLEX 20Q IMAGPART 14Q IMAGPART 7 REALPART 3 REALPART) NIL () %%COMPLEX* D1 (L (1 Z2 0 Z1)) )@ 1@ A A HJIKIJHK (46Q COMPLEX 24Q IMAGPART 17Q REALPART 12Q IMAGPART 3 REALPART) NIL () %%COMPLEX/ D1 (L (1 Z2 0 Z1)) =@ Q@ A A JdּKdֽHJIKLM IJHKLM (72Q COMPLEX 67Q %%/ 52Q %%/ 24Q IMAGPART 17Q REALPART 12Q IMAGPART 3 REALPART) NIL () %%COMPLEX-ABS D1 (L (0 Z)) @ @ HdId (24Q CL:SQRT 7 COMPLEX-IMAGPART 3 COMPLEX-REALPART) NIL () %%COMPLEX-MINUS D1 (L (0 Z)) j@ j@ (16Q COMPLEX 12Q IMAGPART 4 REALPART) NIL () %%COMPLEX-TIMESI D1 (L (0 Z)) j@ @ (14Q COMPLEX 11Q REALPART 4 IMAGPART) NIL () CONJUGATE D1 (P 1 $$TYPE-VALUE P 0 ETYPECASE0226 I 0 NUMBER) /@HYd`@ j@ 3@gHo (54Q CHECK-TYPE-FAIL 32Q %%MAKE-COMPLEX 26Q COMPLEX-IMAGPART 21Q COMPLEX-REALPART) (44Q NUMBER 12Q COMPLEXTYPE#) ( 51Q (OR COMPLEX NUMBER)) %%COMPLEX-PRINT D1 (L (1 STREAM 0 COMPLEX) F 0 *READTABLE*) AoP @ @ (32Q FORMAT 26Q COMPLEX-IMAGPART 22Q COMPLEX-REALPART 16Q INT-CHAR) (10Q READTABLEP) ( 4 "~CC(~S ~S)") NEW-MINUSP D1 (I 0 NUMBER) j@NIL NIL () (MOVD (QUOTE NEW-MINUSP) (QUOTE MINUSP)) CL:ZEROP D1 (L (0 NUMBER)) @j (4 %%=) NIL () EVENP D1 (L (0 -args-)) &eka!ldHaIJ [j KK (43Q \FZEROP 25Q CL:MOD) NIL () ODDP D1 (L (0 -args-)) (eka!ldHaIJ [j KK h(43Q \FZEROP 25Q CL:MOD) NIL () PLUSP D1 (L (0 NUMBER)) @jNIL NIL () %%= D1 (NAME = P 11Q $$TYPE-VALUE P 10Q CTYPECASE0239 P 7 $$TYPE-VALUE P 6 CTYPECASE0236 P 5 $$TYPE-VALUE P 4 CTYPECASE0233 P 3 $$TYPE-VALUE P 2 CTYPECASE0230 P 1 $$TYPE-VALUE P 0 CTYPECASE0227 I 1 Y I 0 X)  @A:w@HId3 OAJKdl@A `@A =jA K3higJo b`oALMd`@ A :@ A :l@A:Md3 `@A A j igLo bIdlUANOdl_3 Od`@A `@A gA j igNo b`YAO Od`@ A $@ A 3@ A @ j igOo bigHo bh(634Q CHECK-TYPE-FAIL 612Q CHECK-TYPE-FAIL 574Q %%= 570Q COMPLEX-IMAGPART 562Q %%= 556Q COMPLEX-REALPART 545Q %%= 542Q COMPLEX-IMAGPART 536Q COMPLEX-IMAGPART 530Q %%= 525Q COMPLEX-REALPART 521Q COMPLEX-REALPART 454Q CHECK-TYPE-FAIL 437Q %%= 433Q COMPLEX-IMAGPART 425Q %%= 422Q COMPLEX-REALPART 405Q FEQP 321Q CHECK-TYPE-FAIL 304Q %%= 300Q COMPLEX-IMAGPART 266Q %%= 263Q COMPLEX-REALPART 223Q RATIO-DENOMINATOR 217Q RATIO-DENOMINATOR 204Q RATIO-NUMERATOR 200Q RATIO-NUMERATOR 135Q CHECK-TYPE-FAIL 112Q %%= 107Q COMPLEX-IMAGPART 74Q %%= 71Q COMPLEX-REALPART 54Q FEQP) (624Q X 601Q Y 511Q COMPLEXTYPE# 466Q COMPLEXTYPE# 444Q Y 412Q COMPLEXTYPE# 375Q RATIOTYPE# 311Q Y 253Q COMPLEXTYPE# 236Q FLOATP 170Q RATIOTYPE# 147Q RATIOTYPE# 125Q Y 61Q COMPLEXTYPE#) ( 631Q (OR INTEGER RATIO FLOAT COMPLEX) 607Q (OR COMPLEX NUMBER) 451Q (OR FLOAT OR INTEGER RATIO COMPLEX) 316Q (OR RATIO FLOAT INTEGER COMPLEX) 132Q (OR FLOAT COMPLEX NUMBER)) %%> D1 (NAME > P 7 $$TYPE-VALUE P 6 CTYPECASE0251 P 5 $$TYPE-VALUE P 4 CTYPECASE0248 P 3 $$TYPE-VALUE P 2 CTYPECASE0245 P 1 $$TYPE-VALUE P 0 CTYPECASE0242 I 1 Y I 0 X) @HId3 CAJKd3 @Al@AK`A @A igJo bl>ALM3 Mdl@A`A @A igLo bI`]ANOd3 @ @ Al@ @ AO`@ A A @ igNo bigHo b(377Q CHECK-TYPE-FAIL 355Q CHECK-TYPE-FAIL 336Q DENOMINATOR 332Q NUMERATOR 325Q DENOMINATOR 321Q NUMERATOR 300Q DENOMINATOR 274Q NUMERATOR 257Q DENOMINATOR 253Q NUMERATOR 212Q CHECK-TYPE-FAIL 174Q NUMERATOR 166Q DENOMINATOR 110Q CHECK-TYPE-FAIL 72Q NUMERATOR 64Q DENOMINATOR) (367Q X 345Q Y 312Q RATIOTYPE# 225Q RATIOTYPE# 202Q Y 160Q RATIOTYPE# 100Q Y 56Q RATIOTYPE#) ( 374Q (OR INTEGER FLOAT RATIO) 352Q (OR INTEGER FLOAT RATIO) 207Q (OR OR INTEGER FLOAT RATIO) 105Q (OR INTEGER FLOAT RATIO)) = D1 (L (0 -args-)) I eka!Hl2MdLNZ!ia_OOh_Mk]O&_IK hJ(100Q %%=) NIL () %%= D1 (NAME = P 11Q $$TYPE-VALUE P 10Q CTYPECASE0266 P 7 $$TYPE-VALUE P 6 CTYPECASE0263 P 5 $$TYPE-VALUE P 4 CTYPECASE0260 P 3 $$TYPE-VALUE P 2 CTYPECASE0257 P 1 $$TYPE-VALUE P 0 CTYPECASE0254 I 1 Y I 0 X)  @A:w@HId3 OAJKdl@A `@A =jA K3higJo b`oALMd`@ A :@ A :l@A:Md3 `@A A j igLo bIdlUANOdl_3 Od`@A `@A gA j igNo b`YAO Od`@ A $@ A 3@ A @ j igOo bigHo bh(634Q CHECK-TYPE-FAIL 612Q CHECK-TYPE-FAIL 574Q %%= 570Q COMPLEX-IMAGPART 562Q %%= 556Q COMPLEX-REALPART 545Q %%= 542Q COMPLEX-IMAGPART 536Q COMPLEX-IMAGPART 530Q %%= 525Q COMPLEX-REALPART 521Q COMPLEX-REALPART 454Q CHECK-TYPE-FAIL 437Q %%= 433Q COMPLEX-IMAGPART 425Q %%= 422Q COMPLEX-REALPART 405Q FEQP 321Q CHECK-TYPE-FAIL 304Q %%= 300Q COMPLEX-IMAGPART 266Q %%= 263Q COMPLEX-REALPART 223Q RATIO-DENOMINATOR 217Q RATIO-DENOMINATOR 204Q RATIO-NUMERATOR 200Q RATIO-NUMERATOR 135Q CHECK-TYPE-FAIL 112Q %%= 107Q COMPLEX-IMAGPART 74Q %%= 71Q COMPLEX-REALPART 54Q FEQP) (624Q X 601Q Y 511Q COMPLEXTYPE# 466Q COMPLEXTYPE# 444Q Y 412Q COMPLEXTYPE# 375Q RATIOTYPE# 311Q Y 253Q COMPLEXTYPE# 236Q FLOATP 170Q RATIOTYPE# 147Q RATIOTYPE# 125Q Y 61Q COMPLEXTYPE#) ( 631Q (OR INTEGER RATIO FLOAT COMPLEX) 607Q (OR COMPLEX NUMBER) 451Q (OR FLOAT OR INTEGER RATIO COMPLEX) 316Q (OR RATIO FLOAT INTEGER COMPLEX) 132Q (OR FLOAT COMPLEX NUMBER)) /= D1 (L (0 -args-)) JeHk2JdIK1IZ%iaL Mh\JkZM&JL hK[ihJ(67Q %%=) NIL () < D1 (L (0 -args-)) X eka!Hl2MdLNZhJI J[Kd!ia_OOh_Mk]O&_KhKNIL NIL () > D1 (L (0 -args-)) X eka!Hl2MdLNZhIJ J[Kd!ia_OOh_Mk]O&_KhKNIL NIL () <= D1 (L (0 -args-)) Z eka!Hl2MdLNZhIJh J[Kd!ia_OOh_Mk]O&_KhKNIL NIL () >= D1 (L (0 -args-)) Z eka!Hl2MdLNZhJIh J[Kd!ia_OOh_Mk]O&_KhKNIL NIL () (PUTPROPS = DMACRO (DEFMACRO (N &REST NS) (COND ((CDR NS) (LET ((NNAME (GENSYM))) (BQUOTE (LET (((\, NNAME) (\, N))) (AND (\,@ (for X in NS collect (BQUOTE (%%= (\, NNAME) (\, X)))))))))) (T (BQUOTE (%%= (\, N) (\, (CAR NS)))))))) (PUTPROPS /= DMACRO (DEFMACRO (N &REST NS) (COND (NS (COND ((CDR NS) (LET ((VARS (for X in (CONS N NS) collect (LIST (GENSYM (QUOTE /=)) X)))) (BQUOTE (LET (\, VARS) (AND (\,@ (for X on VARS join (for Y on (CDR VARS) collect (BQUOTE (NOT (= (\, (CAAR X)) (\, (CAAR Y))))))))))))) (T (BQUOTE (NOT (= (\, N) (\, (CAR NS)))))))) (T T)))) (PUTPROPS < DMACRO (DEFMACRO (N &REST NS) (COND ((NULL NS) T) ((CDR NS) (LET ((VARS (FOR X IN (CONS N NS) COLLECT (LIST (GENSYM (QUOTE /=)) X)))) (BQUOTE ((OPENLAMBDA (\, (MAPCAR VARS (QUOTE CAR))) (AND ( \,@ (for X on VARS while (CDR X) collect (BQUOTE (LESSP (\, (CAAR X)) (\, (CAADR X)))))))) (\,@ ( MAPCAR VARS (QUOTE CADR))))))) (T (BQUOTE (LESSP (\, N) (\, (CAR NS)))))))) (PUTPROPS > DMACRO (DEFMACRO (N &REST NS) (COND ((NULL NS) T) ((CDR NS) (LET ((VARS (FOR X IN (CONS N NS) COLLECT (LIST (GENSYM (QUOTE /=)) X)))) (BQUOTE ((OPENLAMBDA (\, (MAPCAR VARS (QUOTE CAR))) (AND ( \,@ (for X on VARS while (CDR X) collect (BQUOTE (GREATERP (\, (CAAR X)) (\, (CAADR X)))))))) (\,@ ( MAPCAR VARS (QUOTE CADR))))))) (T (BQUOTE (GREATERP (\, N) (\, (CAR NS)))))))) (PUTPROPS <= DMACRO (DEFMACRO (N &REST NS) (COND ((NULL NS) T) ((CDR NS) (LET ((VARS (FOR X IN (CONS N NS) COLLECT (LIST (GENSYM (QUOTE /=)) X)))) (BQUOTE ((OPENLAMBDA (\, (MAPCAR VARS (QUOTE CAR))) (AND (\,@ (for X on VARS while (CDR X) collect (BQUOTE (LEQ (\, (CAAR X)) (\, (CAADR X)))))))) (\,@ (MAPCAR VARS (QUOTE CADR))))))) (T (BQUOTE (LEQ (\, N) (\, (CAR NS)))))))) (PUTPROPS >= DMACRO (DEFMACRO (N &REST NS) (COND ((NULL NS) T) ((CDR NS) (LET ((VARS (FOR X IN (CONS N NS) COLLECT (LIST (GENSYM (QUOTE >=)) X)))) (BQUOTE ((OPENLAMBDA (\, (MAPCAR VARS (QUOTE CAR))) (AND (\,@ (for X on VARS while (CDR X) collect (BQUOTE (NOT (< (\, (CAAR X)) (\, (CAADR X))))))))) (\,@ ( MAPCAR VARS (FUNCTION CADR))))))) (T (BQUOTE (GEQ (\, N) (\, (CAR NS)))))))) + D1 (P 3 J P 2 R P 1 A P 0 N) %e0HjjkakKHKk[aJIԺJNIL NIL () - D1 (P 3 J P 2 R P 1 A P 0 N) *e0HkkajIkakKHKk[aJIպJNIL NIL () CL:* D1 (P 3 J P 2 R P 1 A P 0 N) %e0HjkkakKHKk[aJIֺJNIL NIL () / D1 (L (0 -args-)) M eka!Hl2MdLN/kI a_OOh_Mk]O&_IK JZI(102Q %%/ 35Q %%/) NIL () %%/ D1 (NAME / P 11Q $$TYPE-VALUE P 10Q CTYPECASE0281 P 7 $$TYPE-VALUE P 6 CTYPECASE0278 P 5 $$TYPE-VALUE P 4 CTYPECASE0275 P 3 $$TYPE-VALUE P 2 CTYPECASE0272 P 1 $$TYPE-VALUE P 0 CTYPECASE0269 I 1 N2 I 0 N1)  @HId3 fAJKd3 @A j@A@A l@AKd`A @A `@j A igJo blTALM3 Mdl@A`A @A M`@o A igLo bId`[ANOd3 @ @ A l@AOd`@A `@j A igNo b`eAO Od3 @Aj l@Ao Od`A @A `@A igOo bigHo bZ(641Q CHECK-TYPE-FAIL 617Q CHECK-TYPE-FAIL 601Q %%COMPLEX/ 565Q %%/ 562Q NUMERATOR 554Q DENOMINATOR 535Q %%COMPLEX/ 532Q %%MAKE-COMPLEX 513Q %%COMPLEX/ 510Q %%MAKE-COMPLEX 445Q CHECK-TYPE-FAIL 430Q %%COMPLEX/ 424Q %%MAKE-COMPLEX 410Q %%RATIO/ 357Q %%BUILD-RATIO 352Q DENOMINATOR 346Q NUMERATOR 303Q CHECK-TYPE-FAIL 266Q %%COMPLEX/ 262Q %%MAKE-COMPLEX 242Q %%/ 237Q NUMERATOR 231Q DENOMINATOR 153Q CHECK-TYPE-FAIL 136Q %%COMPLEX/ 132Q %%MAKE-COMPLEX 116Q %%/ 113Q NUMERATOR 105Q DENOMINATOR 56Q %%BUILD-RATIO 42Q IMOD) (631Q N1 606Q N2 572Q COMPLEXTYPE# 545Q RATIOTYPE# 457Q COMPLEXTYPE# 435Q N2 415Q COMPLEXTYPE# 400Q RATIOTYPE# 317Q RATIOTYPE# 273Q N2 250Q COMPLEXTYPE# 223Q RATIOTYPE# 143Q N2 123Q COMPLEXTYPE# 76Q RATIOTYPE#) ( 636Q (OR INTEGER FLOAT RATIO COMPLEX) 614Q (OR INTEGER FLOAT RATIO COMPLEX) 527Q 0.0 442Q (OR INTEGER FLOAT RATIO COMPLEX) 300Q (OR OR INTEGER FLOAT RATIO COMPLEX) 257Q 0.0 150Q (OR INTEGER FLOAT RATIO COMPLEX)) 1+ D1 (L (0 NUMBER)) @kNIL NIL () 1- D1 (L (0 NUMBER)) @kNIL NIL () (PUTPROPS + DMACRO (DEFMACRO (&REST NUMBERS) (COND ((NULL NUMBERS) 0) (T (BQUOTE (PLUS (\., NUMBERS))) )))) (PUTPROPS - DMACRO (DEFMACRO (NUMBER &REST NUMBERS) (COND ((NULL NUMBERS) (BQUOTE (DIFFERENCE 0 (\, NUMBER)))) (T (for X in NUMBERS do (SETQ NUMBER (BQUOTE (DIFFERENCE (\, NUMBER) (\, X)))) finally ( RETURN NUMBER)))))) (PUTPROPS CL:* DMACRO (DEFMACRO (&REST NUMBERS) (COND ((NULL NUMBERS) 1) (T (BQUOTE (TIMES (\., NUMBERS))))))) (PUTPROPS / DMACRO (DEFMACRO (NUMBER &REST NUMBERS) (COND ((NULL NUMBERS) (BQUOTE (%%/ 1 (\, NUMBER))) ) (T (for X in NUMBERS do (SETQ NUMBER (BQUOTE (%%/ (\, NUMBER) (\, X)))) finally (RETURN NUMBER)))))) (PUTPROPS 1+ DMACRO (DEFMACRO (X) (BQUOTE (PLUS (\, X) 1)))) (PUTPROPS 1- DMACRO (DEFMACRO (X) (BQUOTE (DIFFERENCE (\, X) 1)))) (MOVD (QUOTE +) (QUOTE PLUS)) (MOVD (QUOTE -) (QUOTE DIFFERENCE)) (MOVD (QUOTE 1+) (QUOTE ADD1)) (MOVD (QUOTE 1-) (QUOTE SUB1)) (MOVD (QUOTE CL:*) (QUOTE TIMES)) CL:GCD D1 (L (0 -args-)) heHk2JdIK1IjaL Mh\JkZM&3 oI I ZI[J\3 oL JL ZdkK(134Q %%GCD 126Q CL:ERROR 100Q ABS 72Q CL:ERROR) NIL ( 122Q "GCD: ~S is not an integer." 65Q "GCD: ~S is not an integer.") %%GCD D1 (L (1 V 0 U)) @ A 2HjHkI kH k IjHkjIkjJHdkjjIհHm Im Jk԰m \jLdd HK kjLm \L LXjLչHIհ(206Q PLUSP 177Q ASH 163Q ASH 154Q \FZEROP 137Q ASH 124Q ASH 115Q ASH 45Q \FZEROP 37Q %%= 31Q %%= 7 ABS 3 ABS) NIL () LCM D1 (L (0 -args-)) ekaAHl2 OdNOI3 %,a_OOh__Ok_O&_oI I [J\K]3 oM M KM K[dj޿L(161Q %%/ 156Q %%GCD 151Q ABS 144Q CL:ERROR 116Q ABS 111Q CL:ERROR) NIL ( 140Q "LCM: ~S is not an integer." 105Q "LCM: ~S is not an integer.") FLOAT D1 (L (1 OTHER 0 NUMBER)) @NIL (3 FLOATP) () \FLOAT D1 (P 2 SIGN P 1 LO P 0 HI I 0 X) @@d3 dlB@@jHn%IjHjnHkظnHٸnIkعkZJlHIi k2jjj@@k@jkjn@kJlHIi @  @ @ @l i bY(245Q \LISPERROR 234Q RATIO-DENOMINATOR 230Q RATIO-NUMERATOR 223Q RATIO-P 217Q \BIGNUM.TO.FLOAT 212Q \MAKEFLOAT 126Q \MAKEFLOAT) NIL () CL:FLOOR D1 (L (0 -args-)) OekaAlHklaIJ [K]j#MM jJI jILkMJ LM (114Q VALUES 106Q VALUES 70Q PLUSP 56Q \FZEROP 33Q \MVLIST 30Q TRUNCATE) NIL () TRUNCATE D1 (L (0 -args-)) eka lHklah[JkI^]d3 IplIeM`I I ۰VigNo Yl;O`IJ igOo Zgl>J__3 OdlIJ [IKJ\KL `igOo ZO`igOo I__d3 J__d3 lIJ۰(320Q CHECK-TYPE-FAIL 267Q CHECK-TYPE-FAIL 242Q VALUES 226Q \FIXP.FROM.FLOATP 165Q CHECK-TYPE-FAIL 147Q TRUNCATE 144Q %%/ 116Q CHECK-TYPE-FAIL 77Q RATIO-DENOMINATOR 73Q RATIO-NUMERATOR) (307Q NUMBER 300Q RATIOTYPE# 256Q DIVISOR 247Q RATIOTYPE# 154Q DIVISOR 135Q RATIOTYPE# 106Q NUMBER 65Q RATIOTYPE#) ( 315Q (OR INTEGER FLOAT RATIO) 264Q (OR OR INTEGER FLOAT RATIO) 162Q (OR INTEGER FLOAT RATIO) 113Q (OR INTEGER FLOAT RATIO)) CEILING D1 (L (0 -args-)) OekaAlHklaIJ [K]j#MM jJjII LkMJ LM (114Q VALUES 106Q VALUES 74Q PLUSP 56Q \FZEROP 33Q \MVLIST 30Q TRUNCATE) NIL () ROUND D1 (L (0 -args-)) ekaqlHkilaJK l oIK ]M_LOL NkjjK.NkOK jL_OOO NdkjjKNkOK NO (211Q VALUES 202Q VALUES 150Q %%= 126Q VALUES 77Q %%= 56Q \MVLIST 53Q TRUNCATE 40Q %%/ 33Q ABS) NIL ( 45Q .5) CL:MOD D1 (L (1 DIVISOR 0 NUMBER)) -@A HdjHd jA@ j@HAH(40Q PLUSP 25Q \FZEROP 4 REM) NIL () REM D1 (L (1 DIVISOR 0 NUMBER)) @A (7 \MVLIST 4 TRUNCATE) NIL () FFLOOR D1 (L (0 -args-)) -ekaAlHklaIJ [KLM (52Q VALUES 33Q \MVLIST 30Q CL:FLOOR) (46Q FLOATP) () FCEILING D1 (L (0 -args-)) -ekaAlHklaIJ [KLM (52Q VALUES 33Q \MVLIST 30Q CEILING) (46Q FLOATP) () FTRUNCATE D1 (L (0 -args-)) -ekaAlHklaIJ [KLM (52Q VALUES 33Q \MVLIST 30Q TRUNCATE) (46Q FLOATP) () FROUND D1 (L (0 -args-)) -ekaAlHklaIJ [KLM (52Q VALUES 33Q \MVLIST 30Q ROUND) (46Q FLOATP) () DECODE-FLOAT D1 (L (0 FLOAT)) *@n?@@l~@joo (47Q VALUES) NIL ( 44Q -1.0 37Q 1.0) SCALE-FLOAT D1 (I 1 INTEGER I 0 FLOAT) $@bd@Al@l@i (41Q \MAKEFLOAT) (3 FLOATP) () FLOAT-RADIX D1 (L (0 FLOAT)) lNIL NIL () FLOAT-SIGN D1 (L (0 -args-)) (ekalHkIlajIjJJjJNIL (23Q FLOATP) () FLOAT-DIGITS D1 (L (0 FLOAT)) @llo@ (20Q CL:ERROR) NIL ( 14Q "Float-digits: ~A not a float") FLOAT-PRECISION D1 (L (0 FLOAT)) @j@dd j (22Q FLOAT-DIGITS 14Q \FZEROP) NIL () INTEGER-DECODE-FLOAT D1 (L (0 FLOAT)) +@ Q@ YI[KJH LHM (50Q VALUES 41Q TRUNCATE 36Q SCALE-FLOAT 15Q \MVLIST 12Q DECODE-FLOAT 3 FLOAT-PRECISION) NIL () NEW-LESSP D1 (I 1 Y I 0 X) A@NIL NIL () NEW-EQP D1 (I 1 Y I 0 X) D@A?@d3A3@A @A(@dl@Al@Cl@A (101Q EQDEFP 23Q %%=) (64Q ARRAYP) () NEW-ABS D1 (P 1 $$TYPE-VALUE P 0 CTYPECASE0310 I 0 X) f@HYd3 j@j@@lo@o@Id`j@ j@ @ `@ igHo b(137Q CHECK-TYPE-FAIL 122Q %%COMPLEX-ABS 107Q %%MAKE-RATIO 104Q DENOMINATOR 77Q NUMERATOR 67Q NUMERATOR) (127Q X 114Q COMPLEXTYPE# 56Q RATIOTYPE#) ( 134Q (OR INTEGER SINGLE-FLOAT RATIO COMPLEX) 45Q 0.0 35Q 0.0) NEW-MINUS D1 (I 0 N) j@NIL NIL () (MOVD (QUOTE %%>) (QUOTE GREATERP)) (MOVD (QUOTE NEW-LESSP) (QUOTE LESSP)) (MOVD (QUOTE NEW-EQP) (QUOTE EQP)) (MOVD (QUOTE NEW-ABS) (QUOTE ABS)) (MOVD (QUOTE NEW-MINUS) (QUOTE MINUS)) NEW-SLOWIPLUS2 D1 (NAME IPLUS P 5 $$TYPE-VALUE P 4 SIGNX P 3 LY P 2 HY P 1 LX P 0 HX I 1 Y I 0 X) P@dl@@dk$j@j@n@ӹAdlAAAKl@ b@ @ @ b@M3e@l i bdk,jAjAnAӻHnHdnJGnJkٰ?lA bA A A boAM3@A Al i bRJظIdnKHdnjkظInKkفKعLJnLHnHI(323Q \LISPERROR 313Q \BIGNUM.PLUS 267Q RATIO-DENOMINATOR 263Q RATIO-NUMERATOR 256Q RATIO-P 246Q \FIXP.FROM.FLOATP 152Q \LISPERROR 123Q RATIO-DENOMINATOR 117Q RATIO-NUMERATOR 112Q RATIO-P 102Q \FIXP.FROM.FLOATP) NIL () NEW-SLOWIDIFFERENCE D1 (NAME IDIFFERENCE P 5 $$TYPE-VALUE P 4 SIGNX P 3 LY P 2 HY P 1 LX P 0 HX I 1 Y I 0 X) bP@dl@@dk$j@j@n@ӹAdlAAALl@ b@ @ @ b@M3h@l i bdk.jAjA[nAӻAjKjMJjVnJkغLlA bA A A blAM3@A Al i bOnJٺnKkػHnKj KHdnJnJkٰ JnHJL9JظIdnKHdnjkظInKkفKعLJnLHnpHI(421Q \FZEROP 326Q \LISPERROR 316Q \BIGNUM.DIFFERENCE 272Q RATIO-DENOMINATOR 266Q RATIO-NUMERATOR 261Q RATIO-P 250Q \FIXP.FROM.FLOATP 152Q \LISPERROR 123Q RATIO-DENOMINATOR 117Q RATIO-NUMERATOR 112Q RATIO-P 102Q \FIXP.FROM.FLOATP) NIL () NEW-SLOWITIMES2 D1 (NAME ITIMES P 10Q $$TYPE-VALUE P 7 CARRY P 6 LR P 5 HR P 4 SIGN P 3 LY P 2 LX P 1 HY P 0 HX I 1 Y I 0 X) 2 @jAjjj]@dl@@dk$j@j@n@ӺAdlBAALl@ b@ @ @ b@O3p@l i bdk5jAjAnAӻHnk@o@JjNHjWnHkظMlA bwA A A bdAO3@A Al i bFnHٸnJkغiIdn0AoKjIjnIkعnIٹnKkػLhIjHjKJIHKdkjKNdnJnJkپkJؾj_MHO]n#KjaL\MnSNjLoKjNKDn@H[Hn@-JjJ"J LKkMjNjo L?Nj,Mdj5nMk]*HJdnHkԸJnັ-nMٽnNkؾMN(752Q \FZEROP 704Q \FZEROP 354Q \LISPERROR 344Q \BIGNUM.TIMES 317Q RATIO-DENOMINATOR 313Q RATIO-NUMERATOR 306Q RATIO-P 275Q \FIXP.FROM.FLOATP 170Q \LISPERROR 140Q RATIO-DENOMINATOR 134Q RATIO-NUMERATOR 127Q RATIO-P 117Q \FIXP.FROM.FLOATP) NIL ( 746Q -20000000000Q 632Q -20000000000Q 420Q -20000000000Q 236Q -20000000000Q) NEW-SLOWIQUOTIENT D1 (NAME IQUOTIENT P 11Q $$TYPE-VALUE P 10Q SIGNREMAINDER P 7 SIGNQUOTIENT P 6 LY P 5 HY P 4 LX P 3 HX P 2 LZ P 1 HZ P 0 CNT I 1 Y I 0 X F 12Q \OVERFLOW)  jddc@dl@@dk$j@j@n@ӼAdlCAAMl@ b@ @ @ b@ O3@l i bdk-jAjAnAӾKndLjKKjTnKkػJlA b~A A A bkA O3JAl i bPnKٻnLkؼi__Mn)NjMjnMkؽnMٽnNkؾOh_KjzMj$LjNdjWioA jk'LjOBJj-Idj4nIkY(LNNdnHkظNLLNټJkغNHkٸjHJະMjXN]jOONkKnLj\jlMKLNKdMnMMNdnMkԽNnHkذOOLjKnMdj𲴿Nk@A nNLkؼkٻJkغNMdkjNnؾMHkٸjHIJdnIkԹJnKMMKNdL񳿿KMNLLNټjnIٹnJkغIJ(1035Q \BIGNUM.QUOTIENT 502Q ERROR 330Q \LISPERROR 276Q RATIO-DENOMINATOR 272Q RATIO-NUMERATOR 265Q RATIO-P 254Q \FIXP.FROM.FLOATP 157Q \LISPERROR 126Q RATIO-DENOMINATOR 122Q RATIO-NUMERATOR 115Q RATIO-P 105Q \FIXP.FROM.FLOATP) NIL ( 476Q "DIVIDE BY ZERO") NEW-IREMAINDER D1 (P 11Q $$TYPE-VALUE P 10Q SIGNREMAINDER P 7 SIGNQUOTIENT P 6 LY P 5 HY P 4 LX P 3 HX P 2 LZ P 1 HZ P 0 CNT I 1 Y I 0 X F 12Q \OVERFLOW)  jddc@dl@@dk$j@j@n@ӼAdlCAAMl@ b@ @ @ b@ O3@l i bdk-jAjAnAӾKndLjKKjTnKkػJlA b~A A A bkA O3JAl i bPnKٻnLkؼi__Mn)NjMjnMkؽnMٽnNkؾOh_KjzMj$LjNdjWioA jk'LjOBLj-Kdj4nKk[(LNNdnHkظNLLNټJkغNHkٸjHJະMjXN]jOONkKnLj\jlMKLNKdMnMMNdnMkԽNnHkذOOLjKnMdj𲴿Nk@A nNLkؼkٻJkغNMdkjNnؾMHkٸjHIJdnIkԹJnKMMKNdL񳿿KMNLLNټjnKٻnLkؼKL(1035Q \BIGNUM.REMAINDER 502Q ERROR 330Q \LISPERROR 276Q RATIO-DENOMINATOR 272Q RATIO-NUMERATOR 265Q RATIO-P 254Q \FIXP.FROM.FLOATP 157Q \LISPERROR 126Q RATIO-DENOMINATOR 122Q RATIO-NUMERATOR 115Q RATIO-P 105Q \FIXP.FROM.FLOATP) NIL ( 476Q "DIVIDE BY ZERO") NEW-SLOWIGREATERP D1 (NAME IGREATERP P 4 $$TYPE-VALUE P 3 LY P 2 HY P 1 LX P 0 HX I 1 Y I 0 X) @@dl@@dk$j@j@n@ӹAdlAAAKl@ b@ @ @ b@L3V@l i bdkjAjAnAӻHdJDIKlA bA A A b~AL3@A kAl i b_nJn(306Q \LISPERROR 274Q \BIGNUM.COMPARE 250Q RATIO-DENOMINATOR 244Q RATIO-NUMERATOR 237Q RATIO-P 227Q \FIXP.FROM.FLOATP 152Q \LISPERROR 123Q RATIO-DENOMINATOR 117Q RATIO-NUMERATOR 112Q RATIO-P 102Q \FIXP.FROM.FLOATP) NIL () (\SETUFNENTRY (CAR (\FINDOP (QUOTE IPLUS2))) (QUOTE NEW-SLOWIPLUS2) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IDIFFERENCE))) (QUOTE NEW-SLOWIDIFFERENCE) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE ITIMES2))) (QUOTE NEW-SLOWITIMES2) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IQUOTIENT))) (QUOTE NEW-SLOWIQUOTIENT) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IREMAINDER))) (QUOTE NEW-IREMAINDER) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE IGREATERP))) (QUOTE NEW-SLOWIGREATERP) 2 0) (PUTPROPS %%+ DOPVAL (2 PLUS2)) (PUTPROPS %%- DOPVAL (2 DIFFERENCE)) (PUTPROPS %%* DOPVAL (2 TIMES2)) (PUTPROPS %%> DOPVAL (2 GREATERP)) %%+ D1 (NAME + P 11Q $$TYPE-VALUE P 10Q CTYPECASE0325 P 7 $$TYPE-VALUE P 6 CTYPECASE0322 P 5 $$TYPE-VALUE P 4 CTYPECASE0319 P 3 $$TYPE-VALUE P 2 CTYPECASE0316 P 1 $$TYPE-VALUE P 0 CTYPECASE0313 I 1 N2 I 0 N1)  @HId3 OAJKd3 @Al@AKd`A@ `@j A igJo blRALM3 Mdl@A`@A A M`@o A igLo bId`[ANOd3 @A l@ @ AOd`@A `@j A igNo b`WAO Od3 @Aj l@Ao Od``@A igOo bigHo b(572Q CHECK-TYPE-FAIL 550Q CHECK-TYPE-FAIL 532Q %%COMPLEX+ 504Q %%COMPLEX+ 501Q %%MAKE-COMPLEX 462Q %%COMPLEX+ 457Q %%MAKE-COMPLEX 414Q CHECK-TYPE-FAIL 377Q %%COMPLEX+ 373Q %%MAKE-COMPLEX 357Q %%RATIO+ 334Q DENOMINATOR 330Q NUMERATOR 316Q %%RATIO-INTEGER+ 252Q CHECK-TYPE-FAIL 235Q %%COMPLEX+ 231Q %%MAKE-COMPLEX 207Q DENOMINATOR 203Q NUMERATOR 124Q CHECK-TYPE-FAIL 107Q %%COMPLEX+ 103Q %%MAKE-COMPLEX 67Q %%RATIO-INTEGER+) (562Q N1 537Q N2 523Q COMPLEXTYPE# 514Q RATIOTYPE# 426Q COMPLEXTYPE# 404Q N2 364Q COMPLEXTYPE# 347Q RATIOTYPE# 266Q RATIOTYPE# 242Q N2 217Q COMPLEXTYPE# 174Q RATIOTYPE# 114Q N2 74Q COMPLEXTYPE# 57Q RATIOTYPE#) ( 567Q (OR INTEGER FLOAT RATIO COMPLEX) 545Q (OR INTEGER FLOAT RATIO COMPLEX) 476Q 0.0 411Q (OR INTEGER FLOAT RATIO COMPLEX) 247Q (OR OR INTEGER FLOAT RATIO COMPLEX) 226Q 0.0 121Q (OR INTEGER FLOAT RATIO COMPLEX)) %%- D1 (NAME - P 11Q $$TYPE-VALUE P 10Q CTYPECASE0340 P 7 $$TYPE-VALUE P 6 CTYPECASE0337 P 5 $$TYPE-VALUE P 4 CTYPECASE0334 P 3 $$TYPE-VALUE P 2 CTYPECASE0331 P 1 $$TYPE-VALUE P 0 CTYPECASE0328 I 1 N2 I 0 N1)  @HId3 SAJKd3 @Al@AKd`@k A `@j A igJo blRALM3 Mdl@A`@A A M`@o A igLo bId`[ANOd3 @A l@ @ AOd`@A `@j A igNo b`WAO Od3 @Aj l@Ao Od``@A igOo bigHo b}(576Q CHECK-TYPE-FAIL 554Q CHECK-TYPE-FAIL 536Q %%COMPLEX- 510Q %%COMPLEX- 505Q %%MAKE-COMPLEX 466Q %%COMPLEX- 463Q %%MAKE-COMPLEX 420Q CHECK-TYPE-FAIL 403Q %%COMPLEX- 377Q %%MAKE-COMPLEX 363Q %%RATIO- 340Q DENOMINATOR 334Q NUMERATOR 322Q %%RATIO-INTEGER- 256Q CHECK-TYPE-FAIL 241Q %%COMPLEX- 235Q %%MAKE-COMPLEX 213Q DENOMINATOR 207Q NUMERATOR 130Q CHECK-TYPE-FAIL 113Q %%COMPLEX- 107Q %%MAKE-COMPLEX 73Q %%RATIO- 67Q %%MAKE-RATIO) (566Q N1 543Q N2 527Q COMPLEXTYPE# 520Q RATIOTYPE# 432Q COMPLEXTYPE# 410Q N2 370Q COMPLEXTYPE# 353Q RATIOTYPE# 272Q RATIOTYPE# 246Q N2 223Q COMPLEXTYPE# 200Q RATIOTYPE# 120Q N2 100Q COMPLEXTYPE# 57Q RATIOTYPE#) ( 573Q (OR INTEGER FLOAT RATIO COMPLEX) 551Q (OR INTEGER FLOAT RATIO COMPLEX) 502Q 0.0 415Q (OR INTEGER FLOAT RATIO COMPLEX) 253Q (OR OR INTEGER FLOAT RATIO COMPLEX) 232Q 0.0 125Q (OR INTEGER FLOAT RATIO COMPLEX)) %%* D1 (NAME CL:* P 11Q $$TYPE-VALUE P 10Q CTYPECASE0355 P 7 $$TYPE-VALUE P 6 CTYPECASE0352 P 5 $$TYPE-VALUE P 4 CTYPECASE0349 P 3 $$TYPE-VALUE P 2 CTYPECASE0346 P 1 $$TYPE-VALUE P 0 CTYPECASE0343 I 1 N2 I 0 N1)  AHId3 O@JKd3 @Al@AKd`@A `@Aj igJo blR@LM3 Mdl@A`@ @ AM`@Ao igLo bId`[@NOd3 A@ l@A A Od`A@ `@Aj igNo b`W@O O3 Od`@j A l@o A O`@A igOo bigHo b(572Q CHECK-TYPE-FAIL 550Q CHECK-TYPE-FAIL 532Q %%COMPLEX* 514Q %%COMPLEX* 510Q %%MAKE-COMPLEX 472Q %%COMPLEX* 466Q %%MAKE-COMPLEX 414Q CHECK-TYPE-FAIL 377Q %%COMPLEX* 374Q %%MAKE-COMPLEX 357Q %%RATIO* 335Q DENOMINATOR 331Q NUMERATOR 316Q %%RATIO-INTEGER* 252Q CHECK-TYPE-FAIL 235Q %%COMPLEX* 232Q %%MAKE-COMPLEX 206Q DENOMINATOR 202Q NUMERATOR 124Q CHECK-TYPE-FAIL 107Q %%COMPLEX* 104Q %%MAKE-COMPLEX 67Q %%RATIO-INTEGER*) (562Q N2 537Q N1 523Q COMPLEXTYPE# 456Q RATIOTYPE# 426Q COMPLEXTYPE# 404Q N1 364Q COMPLEXTYPE# 347Q RATIOTYPE# 266Q RATIOTYPE# 242Q N1 217Q COMPLEXTYPE# 174Q RATIOTYPE# 114Q N1 74Q COMPLEXTYPE# 57Q RATIOTYPE#) ( 567Q (OR INTEGER FLOAT RATIO COMPLEX) 545Q (OR OR INTEGER RATIO FLOAT COMPLEX) 505Q 0.0 411Q (OR INTEGER FLOAT RATIO COMPLEX) 247Q (OR OR INTEGER FLOAT RATIO COMPLEX) 227Q 0.0 121Q (OR INTEGER FLOAT RATIO COMPLEX)) %%/ D1 (NAME / P 11Q $$TYPE-VALUE P 10Q CTYPECASE0370 P 7 $$TYPE-VALUE P 6 CTYPECASE0367 P 5 $$TYPE-VALUE P 4 CTYPECASE0364 P 3 $$TYPE-VALUE P 2 CTYPECASE0361 P 1 $$TYPE-VALUE P 0 CTYPECASE0358 I 1 N2 I 0 N1)  @HId3 fAJKd3 @A j@A@A l@AKd`A @A `@j A igJo blTALM3 Mdl@A`A @A M`@o A igLo bId`[ANOd3 @ @ A l@AOd`@A `@j A igNo b`eAO Od3 @Aj l@Ao Od`A @A `@A igOo bigHo bZ(641Q CHECK-TYPE-FAIL 617Q CHECK-TYPE-FAIL 601Q %%COMPLEX/ 565Q %%/ 562Q NUMERATOR 554Q DENOMINATOR 535Q %%COMPLEX/ 532Q %%MAKE-COMPLEX 513Q %%COMPLEX/ 510Q %%MAKE-COMPLEX 445Q CHECK-TYPE-FAIL 430Q %%COMPLEX/ 424Q %%MAKE-COMPLEX 410Q %%RATIO/ 357Q %%BUILD-RATIO 352Q DENOMINATOR 346Q NUMERATOR 303Q CHECK-TYPE-FAIL 266Q %%COMPLEX/ 262Q %%MAKE-COMPLEX 242Q %%/ 237Q NUMERATOR 231Q DENOMINATOR 153Q CHECK-TYPE-FAIL 136Q %%COMPLEX/ 132Q %%MAKE-COMPLEX 116Q %%/ 113Q NUMERATOR 105Q DENOMINATOR 56Q %%BUILD-RATIO 42Q IMOD) (631Q N1 606Q N2 572Q COMPLEXTYPE# 545Q RATIOTYPE# 457Q COMPLEXTYPE# 435Q N2 415Q COMPLEXTYPE# 400Q RATIOTYPE# 317Q RATIOTYPE# 273Q N2 250Q COMPLEXTYPE# 223Q RATIOTYPE# 143Q N2 123Q COMPLEXTYPE# 76Q RATIOTYPE#) ( 636Q (OR INTEGER FLOAT RATIO COMPLEX) 614Q (OR INTEGER FLOAT RATIO COMPLEX) 527Q 0.0 442Q (OR INTEGER FLOAT RATIO COMPLEX) 300Q (OR OR INTEGER FLOAT RATIO COMPLEX) 257Q 0.0 150Q (OR INTEGER FLOAT RATIO COMPLEX)) (\SETUFNENTRY (CAR (\FINDOP (QUOTE PLUS2))) (QUOTE %%+) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE DIFFERENCE))) (QUOTE %%-) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE TIMES2))) (QUOTE %%*) 2 0) (\SETUFNENTRY (CAR (\FINDOP (QUOTE GREATERP))) (QUOTE %%>) 2 0) LOGIOR D1 (L (0 N)) AeHdlkalakkajHjjkalalalJHIJaJkZINIL NIL () LOGEQV D1 (L (0 -args-)) GeHk2JdIKImIIJaL Mh\JkZM&JIImNIL NIL () LOGNAND D1 (L (1 INTEGER2 0 INTEGER1)) @AmNIL NIL () LOGNOR D1 (L (1 INTEGER2 0 INTEGER1)) @AmNIL NIL () LOGANDC1 D1 (L (1 INTEGER2 0 INTEGER1)) @mANIL NIL () LOGANDC2 D1 (L (1 INTEGER2 0 INTEGER1)) @AmNIL NIL () LOGORC1 D1 (L (1 INTEGER2 0 INTEGER1)) @mANIL NIL () LOGORC2 D1 (L (1 INTEGER2 0 INTEGER1)) @AmNIL NIL () BOOLE D1 (L (2 INTEGER2 1 INTEGER1 0 OP)) @djjkm@dlAlB@dlAmlBm@dlABlAB @dlABl AB @dl AB l AB @dl AB l AB @dlAB lAB o@ (246Q CL:ERROR 235Q LOGORC2 223Q LOGORC1 206Q LOGANDC2 174Q LOGANDC1 157Q LOGNOR 145Q LOGNAND 130Q LOGEQV 103Q LOGIOR) NIL ( 242Q "~S is not of type (mod 16).") (RPAQ? BOOLE-CLR 0) (RPAQ? BOOLE-SET 1) (RPAQ? BOOLE-1 2) (RPAQ? BOOLE-2 3) (RPAQ? BOOLE-C1 4) (RPAQ? BOOLE-C2 5) (RPAQ? BOOLE-AND 6) (RPAQ? BOOLE-IOR 7) (RPAQ? BOOLE-XOR 8) (RPAQ? BOOLE-EQV 9) (RPAQ? BOOLE-NAND 10) (RPAQ? BOOLE-NOR 11) (RPAQ? BOOLE-ANDC1 12) (RPAQ? BOOLE-ANDC2 13) (RPAQ? BOOLE-ORC1 14) (RPAQ? BOOLE-ORC2 15) LOGTEST D1 (L (1 INTEGER2 0 INTEGER1)) @AjhNIL NIL () LOGBITP D1 (L (1 INTEGER 0 INDEX)) A@ kk(4 RSH) NIL () ASH D1 (I 1 COUNT I 0 INTEGER) 5AjAj@@jA @jjAdl@A dj@dbkٰ(43Q \BIGNUM.LSH 20Q RSH) NIL () LOGCOUNT D1 (L (0 INTEGER)) P@@d3 j@@m@ `)j@@m@jHIIJ ԹHXo@ (115Q CL:ERROR 76Q %%LOGCOUNT 26Q %%LOGCOUNT) (53Q BIGNUM 33Q BIGNUMTYPE#) ( 111Q "Argument not integer, ~A.") %%LOGCOUNT D1 (L (0 N)) jX@djHdkbHkԸNIL NIL () INTEGER-LENGTH D1 (I 0 INTEGER) j@m@bo@n@Cl@"l@l@@jjkll@lll@@l @lll@lln@ n@n@l l n@l l n@@n @l ln@ll@m l(250Q INTEGER-LENGTH 245Q ASH) NIL ( 16Q 200000Q) BYTE-SIZE D1 (L (0 BYTESPEC)) @NIL NIL () BYTE-POSITION D1 (L (0 BYTESPEC)) @NIL NIL () LDB-TEST D1 (L (1 INTEGER 0 BYTESPEC)) @A jh(4 MASK-FIELD) NIL () MASK-FIELD D1 (L (1 INTEGER 0 BYTESPEC)) @@kIkHANIL NIL () DEPOSIT-FIELD D1 (L (2 INTEGER 1 BYTESPEC 0 NEWBYTE)) #@AAHkJkImBkJkINIL NIL () (PUTPROPS CMLARITH FILETYPE COMPILE-FILE) (PUTPROPS CMLARITH COPYRIGHT ("Xerox Corporation" 1985 1986)) STOP