(FILECREATED "16-Jul-85 17:29:28" {ERIS}<LISPCORE>LIBRARY>CMLARITH.;1 8148         changes to:  (VARS CMLARITHCOMS)		   (RECORDS RATIO)		   (FNS PLUSP = /= < > <= >= %%= - / %%/)		   (MACROS = /= < > <= >= + CL:* - /))(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)(PRETTYCOMPRINT CMLARITHCOMS)(RPAQQ CMLARITHCOMS ((RECORDS RATIO COMPLEX)		     (FNS PLUSP)		     (* MINUSP ODDP EVENP are close enough)		     (FNS = /= < > <= >=)		     (MACROS = /= < > <= >=)		     (FNS %%=)		     (MACROS =)		     (* MAX and MIN are OK)		     (P (MOVD (QUOTE PLUS)			      (QUOTE +))			(MOVD (QUOTE TIMES)			      (QUOTE CL:*)))		     (PROP DMACRO + CL:*)		     (FNS - / %%/)		     (PROP DMACRO - /)		     (FNS 1+ 1-)		     (MACROS 1+ 1-)))[DECLARE: EVAL@COMPILE (DATATYPE RATIO (NUMERATOR DENOMINATOR))(QUOTE (no RECORD declaration for COMPLEX))](/DECLAREDATATYPE (QUOTE RATIO)		  (QUOTE (POINTER POINTER))		  (QUOTE ((RATIO 0 POINTER)			  (RATIO 2 POINTER)))		  (QUOTE 4))(DEFINEQ(PLUSP  (CL:LAMBDA (NUMBER)    (GREATERP NUMBER 0))))(* MINUSP ODDP EVENP are close enough)(DEFINEQ(=  (CL:LAMBDA (NUMBER &REST MORE-NUMBERS)                     (* lmm "16-Jul-85 16:51")    (for X in MORE-NUMBERS always (%%= NUMBER X))))(/=  [CL:LAMBDA (&REST NUMBERS)                                 (* lmm "16-Jul-85 16:56")    (for X on NUMBERS always (for Y in (CDR X) always (NOT (= (CAR X)							      Y])(<  [CL:LAMBDA (&REST MORE-NUMBERS)                            (* lmm "16-Jul-85 17:03")    (for X on MORE-NUMBERS while (CDR X) always (LESSP (CAR X)						       (CADR X])(>  [CL:LAMBDA (&REST MORE-NUMBERS)                            (* lmm "16-Jul-85 17:04")    (for X on MORE-NUMBERS while (CDR X) always (GREATERP (CAR X)							  (CADR X])(<=  [CL:LAMBDA (&REST MORE-NUMBERS)                            (* lmm "16-Jul-85 17:18")    (for X on MORE-NUMBERS while (CDR X) always (LEQ (CAR X)						     (CADR X])(>=  [CL:LAMBDA (&REST MORE-NUMBERS)                            (* lmm "16-Jul-85 17:19")    (for X on MORE-NUMBERS while (CDR X) always (GEQ (CAR X)						     (CADR X]))(DECLARE: EVAL@COMPILE [PUTPROPS = DMACRO (DEFMACRO (N &REST NS)			     (COND ((CDR NS)				    (BQUOTE ([OPENLAMBDA (N)							 (AND (= N (\, (CAR NS)))							      (= N (\,@ (CDR NS]					     , N)))				   (T (BQUOTE (%%= (\, N)						   (\, (CAR NS][PUTPROPS  /= DMACRO  (DEFMACRO    (N &REST NS)    (COND      [NS	(IF	  (CDR NS)	  THEN	  [LET [(VARS (FOR X IN (CONS N NS)			   COLLECT			   (LIST (GENSYM (QUOTE /=))				 X]	       (BQUOTE ([OPENLAMBDA			  (\, (MAPCAR VARS (QUOTE CAR)))			  (AND (\,@ (for X on VARS join					 (for Y on (CDR VARS)					      collect					      (BQUOTE (NOT (= (\, (CAAR X))							      (\, (CAAR Y]			(\,@ (MAPCAR VARS (QUOTE CADR]	  ELSE	  (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 (GEQ (\, (CAAR X))								   (\, (CAADR X]				     (\,@ (MAPCAR VARS (QUOTE CADR]		      (T (BQUOTE (GEQ (\, N)				      (\, (CAR NS])(DEFINEQ(%%=  [LAMBDA (X Y)                                              (* lmm "16-Jul-85 17:01")                                                             (* sort of like EQP)    (if (AND (FIXP X)	     (FIXP Y))	then (IEQP X Y)      else (FEQP X Y]))(DECLARE: EVAL@COMPILE [PUTPROPS = DMACRO (DEFMACRO (N &REST NS)			     (COND ((CDR NS)				    (BQUOTE ([OPENLAMBDA (N)							 (AND (= N (\, (CAR NS)))							      (= N (\,@ (CDR NS]					     , N)))				   (T (BQUOTE (%%= (\, N)						   (\, (CAR NS])(* MAX and MIN are OK)(MOVD (QUOTE PLUS)      (QUOTE +))(MOVD (QUOTE TIMES)      (QUOTE CL:*))(PUTPROPS + DMACRO (= . PLUS))(PUTPROPS CL:* DMACRO (= . TIMES))(DEFINEQ(-  (CL:LAMBDA (NUMBER &REST NUMBERS)    (IF (NULL NUMBERS)	THEN (DIFFERENCE 0 NUMBER)      ELSE (LET ((RESULT NUMBER))	        (FOR X IN NUMBERS DO (SETQ RESULT (DIFFERENCE RESULT X)))	    RESULT))))(/  [LAMBDA (NUMBER &REST NUMBERS)    (IF (NULL NUMBERS)	THEN (%%/ 1 NUMBER)      ELSE (FOR X IN NUMBERS DO (SETQ NUMBER (%%/ NUMBER X)) FINALLY (RETURN X])(%%/  [LAMBDA (X Y)    (IF (EVENP X Y)	THEN (QUOTIENT X Y)      ELSE (ERROR "Ratios not implemented"]))(PUTPROPS - DMACRO [DEFMACRO (NUMBER &REST NUMBERS)			     (IF (NULL NUMBERS)				 THEN				 (BQUOTE (DIFFERENCE 0 (\, NUMBER)))				 ELSE				 (FOR X IN NUMBERS DO [SETQ NUMBER (BQUOTE (DIFFERENCE (\, NUMBER)										       (\, X]				      FINALLY				      (RETURN NUMBER])(PUTPROPS / DMACRO [DEFMACRO (NUMBER &REST NUMBERS)			     (IF (NULL NUMBERS)				 THEN				 (BQUOTE (%%/ 0 (\, NUMBER)))				 ELSE				 (FOR X IN NUMBERS DO [SETQ NUMBER (BQUOTE (%%/ (\, NUMBER)										(\, X]				      FINALLY				      (RETURN NUMBER])(DEFINEQ(1+  [LAMBDA (X)    (PLUS X 1])(1-  [LAMBDA (X)    (DIFFERENCE X 1]))(DECLARE: EVAL@COMPILE (PUTPROPS 1+ DMACRO ((X)	   (PLUS X 1)))(PUTPROPS 1- DMACRO ((X)	   (DIFFERENCE X 1))))(PRETTYCOMPRINT CMLARITHCOMS)(RPAQQ CMLARITHCOMS [(RECORDS RATIO COMPLEX)		     (FNS PLUSP)		     (* MINUSP ODDP EVENP are close enough)		     (FNS = /= < > <= >=)		     (MACROS = /= < > <= >=)		     (FNS %%=)		     (MACROS =)		     (* MAX and MIN are OK)		     (P (MOVD (QUOTE PLUS)			      (QUOTE +))			(MOVD (QUOTE TIMES)			      (QUOTE CL:*)))		     (PROP DMACRO + CL:*)		     (FNS - / %%/)		     (PROP DMACRO - /)		     (FNS 1+ 1-)		     (MACROS 1+ 1-)		     (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS			       (ADDVARS (NLAMA)					(NLAML)					(LAMA /= =])(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA )(ADDTOVAR NLAML )(ADDTOVAR LAMA /= =))(PUTPROPS CMLARITH COPYRIGHT ("Xerox Corporation" 1985))(DECLARE: DONTCOPY  (FILEMAP (NIL (1033 1107 (PLUSP 1043 . 1105)) (1155 2420 (= 1165 . 1330) (/= 1332 . 1557) (< 1559 . 1774) (> 1776 . 1990) (<= 1992 . 2204) (>= 2206 . 2418)) (5197 5504 (%%= 5207 . 5502)) (5947 6559 (- 5957 . 6207) (/ 6209 . 6421) (%%/ 6423 . 6557)) (7109 7211 (1+ 7119 . 7160) (1- 7162 . 7209)))))STOP