(FILECREATED "16-May-86 11:38:26" ("compiled on " . {ERIS}<LISPCORE>SOURCES>LLBIGNUM.;16) 
"14-May-86 16:07:00" "COMPILE-FILEd" in "Xerox Lisp 14-May-86 ..." dated "14-May-86 16:39:45")
(FILECREATED "14-May-86 10:47:48" {ERIS}<LISPCORE>SOURCES>LLBIGNUM.;16 32959 changes to: (FNS 
\BIGNUM.LOGOR \BIGNUM.LOGAND \BN.LOGANDC2) previous date: " 5-May-86 12:26:21" 
{ERIS}<LISPCORE>SOURCES>LLBIGNUM.;15)
(RPAQQ LLBIGNUMCOMS ((COMS (DECLARE: EVAL@COMPILE DONTCOPY (RECORDS BIGNUM)) (INITRECORDS BIGNUM) (
CONSTANTS \BIGNUM.THETA (\BIGNUM.BETA (EXPT 2 14)) (\BIGNUM.BETA1 (SUB1 \BIGNUM.BETA))) (DECLARE: 
EVAL@COMPILE (ADDVARS (CHARACTERNAMES (INFINITY 8551)))) (ADDVARS (GLOBALVARS MIN.INTEGER MAX.INTEGER 
\BIG.0 \BIG.1))) (COMS (* entries) (FNS \BIGNUM.COMPARE \BIGNUM.DIFFERENCE \BIGNUM.INTEGERLENGTH 
\BIGNUM.LOGAND \BIGNUM.LOGOR \BIGNUM.LOGXOR \BIGNUM.PLUS \BIGNUM.LSH \BIGNUM.TIMES \BIGNUM.QUOTIENT 
\BIGNUM.REMAINDER \BIGNUM.TO.FLOAT)) (COMS (* internal functions) (FNS \BIGNUM.TO.INT \BN.2TH \BN.ABS 
\BN.DIFFERENCE \BN.DIVIDE \BN.FLOAT \BN.IGNN BIGNUM.DEFPRINT \BN.INTEGERLENGTH \BN.LOGAND \BN.LOGANDC2
 \BN.LOGOR \BN.LOGXOR \BN.MINUS \BN.PLUS2 \BN.SIGN \BN.TIMES2 \BN.COMPAREN \BN.D2TH \BN.FROM.FIXP 
\BN.ICANON \BN.IDIVIDE \BN.ISUM0 \BN.ISUM1 \BN.MADD \BN.TO.FIXP \BN.NZEROS \BN.QRS \BN.SIGN \BN.TH2B 
\BN.TH2D)) (COMS (FNS \INITBIGNUMS) (* MAKERATIONAL needs work) (* needs work: MASK.1'S MASK.0'S 
BITTEST BITSET BITCLEAR LOGNOT LOADBYTE DEPOSITBYTE IMODLESSP IMODPLUS IMODDIFFERENCE ROT) (DECLARE: 
DONTEVAL@LOAD DOCOPY (P (\INITBIGNUMS))))))
(/DECLAREDATATYPE (QUOTE BIGNUM) (QUOTE (POINTER)) (QUOTE ((BIGNUM 0 POINTER))) (QUOTE 2))
(DEFPRINT (QUOTE BIGNUM) (QUOTE BIGNUM.DEFPRINT))
(RPAQQ \BIGNUM.THETA 10000)
(FUNCALL (FUNCTION RPAQ) (QUOTE \BIGNUM.BETA) (QUOTE (EXPT 2 14)))
(FUNCALL (FUNCTION RPAQ) (QUOTE \BIGNUM.BETA1) (QUOTE (SUB1 \BIGNUM.BETA)))
(CONSTANTS \BIGNUM.THETA (\BIGNUM.BETA (EXPT 2 14)) (\BIGNUM.BETA1 (SUB1 \BIGNUM.BETA)))
(ADDTOVAR CHARACTERNAMES (INFINITY 8551))
(ADDTOVAR GLOBALVARS MIN.INTEGER MAX.INTEGER \BIG.0 \BIG.1)
\BIGNUM.COMPARE D1
(I 1 Y I 0 X) �<���@d`��ð›¿A`��ð‘jmÿ`��ð˜A`��ð³ñkAd`��ð³ø`��ð³ã@	��A	��
���(71Q \BN.COMPAREN 66Q \BN.FROM.FIXP 62Q \BN.FROM.FIXP)
(53Q MAX.INTEGER 45Q MIN.INTEGER 33Q MAX.INTEGER 25Q MAX.INTEGER 13Q MIN.INTEGER 4 MIN.INTEGER)
()
\BIGNUM.DIFFERENCE D1
(I 1 Y I 0 X) ����@	��A	��
��	���(15Q \BN.TO.FIXP 12Q \BN.DIFFERENCE 7 \BN.FROM.FIXP 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.INTEGERLENGTH D1
(I 0 X) �	���@	��	���(6 \BN.INTEGERLENGTH 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.LOGAND D1
(I 1 Y I 0 X) �N���@jð£Ajð‘jjdAó²$@óœmÿ@mÿæAmÿæäÕ@	��mÿAÕ	��
��	��@ó˜A@b¿b�°Å@	��A	��
��	���(113Q \BN.TO.FIXP 110Q \BN.LOGAND 105Q \BN.FROM.FIXP 101Q \BN.FROM.FIXP 60Q \BN.TO.FIXP 55Q \BN.LOGANDC2 52Q \BN.FROM.FIXP 43Q \BN.FROM.FIXP)
NIL
()
\BIGNUM.LOGOR D1
(I 1 Y I 0 X) �1���@jð‘AAjð‘@@jó²Ajóž@	��A	��
��	��mÿd@ÕmÿAÕåÕ�(42Q \BN.TO.FIXP 37Q \BN.LOGOR 34Q \BN.FROM.FIXP 30Q \BN.FROM.FIXP)
NIL
()
\BIGNUM.LOGXOR D1
(I 1 Y I 0 X) �&���j@ó£jAó@A
��@A
��
��@	��A	��
��	���(43Q \BN.TO.FIXP 40Q \BN.LOGXOR 35Q \BN.FROM.FIXP 31Q \BN.FROM.FIXP 24Q \BIGNUM.DIFFERENCE 21Q \BIGNUM.LOGAND 14Q \BIGNUM.LOGOR)
NIL
()
\BIGNUM.PLUS D1
(I 1 Y I 0 X) ����@	��A	��
��	���(15Q \BN.TO.FIXP 12Q \BN.PLUS2 7 \BN.FROM.FIXP 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.LSH D1
(I 1 N I 0 X) �,���jAñª@lA
��
��@djñ›ljAÙ
��
��	��A
��	���(51Q MINUS 46Q \BIGNUM.LSH 42Q MINUS 36Q \BIGNUM.QUOTIENT 33Q EXPT 15Q \BIGNUM.TIMES 12Q EXPT)
NIL
()
\BIGNUM.TIMES D1
(I 1 Y I 0 X) ����@	��A	��
��	���(15Q \BN.TO.FIXP 12Q \BN.TIMES2 7 \BN.FROM.FIXP 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.QUOTIENT D1
(I 1 Y I 0 X) ����@	��A	��
��	���(16Q \BN.TO.FIXP 12Q \BN.DIVIDE 7 \BN.FROM.FIXP 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.REMAINDER D1
(I 1 Y I 0 X) ����@	��A	��
��	���(16Q \BN.TO.FIXP 12Q \BN.DIVIDE 7 \BN.FROM.FIXP 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.TO.FLOAT D1
(I 0 X) �	���@	��	���(6 \BN.FLOAT 3 \BN.FROM.FIXP)
NIL
()
\BIGNUM.TO.INT D1
(I 0 X) ����@d¡@	��n@�ÚØ�(13Q \BIGNUM.TO.INT)
NIL
()
\BN.2TH D1
(P 1 B P 0 L I 0 A) ��� @µIn'
��Xb�¿HI¹°ë�(15Q \BN.QRS)
NIL
()
\BN.ABS D1
(I 0 U) ����j@	��ñ”@	��@�(12Q \BN.MINUS 4 \BN.SIGN)
NIL
()
\BN.DIFFERENCE D1
(I 1 V I 0 U) �
���@A	��
���(7 \BN.PLUS2 4 \BN.MINUS)
NIL
()
\BN.DIVIDE D1
(P 32Q L2 P 31Q L1 P 30Q BIP P 27Q IP P 26Q X P 25Q Q P 24Q V P 23Q U P 22Q R2 P 21Q R1 P 20Q C1 P 17Q QHAT P 16Q A3 P 15Q A2 P 14Q A1 P 13Q B2 P 12Q B1 P 11Q F P 10Q E P 7 W P 6 D P 5 C P 4 ST P 3 SA P 2 K P 1 N P 0 M I 2 FLG I 1 B I 0 A) ù#��ððP"@’Aµ`��@³@A
��_0Bg��ðhð´O0	��@	��¸A	��¹HIÙºjJñ³Ì@	��»A_&¿IkÙk_8¿_6¿O8O6ó­O&_&¿O8kÔ_8°ðO&½k¼jMñ–mÿ¼jMÙ½n@�MkØÛ¾KLÚ_¿@KNÚ	��
��b�¿ALNÚ	��
��b¿@_&¿h_2¿JkØk_<¿_:¿O<O:ó³O&O2_2¿O&_&¿O<kÔ_<°çO2_4¿IlÙk_@¿_>¿O@O>ó³O&O4_4¿O&_&¿O@kÔ_@°çO&¤O&j&¿A_&¿IlÙk_D¿_B¿ODOBó­O&_&¿ODkÔ_D°ðO&_¿O&_¿O4_&_¿O&_&_¿O&_&_¿O&_&¿OOñ£n?ÿ‹On@�ÚOØOÛ_OÚn@�
��_.¿OO.Ù_"¿OO.Ù_$¿jO$ñŸO$n@�Ø_$¿O"kÙ_"O"jñ³5OOÚn@�
��_.¿O$O.Ù_"jñ³OO.Ù_$¿jO"ñ¤jO$ñ•OkÙ°”O2_&¿A_(¿j_ ¿jOÙ_O(Ún@�
��_.¿O(_(¿O._¿O&_¿O OO.ØØn@�
��_._¿O._ ¿jOñOn@�Ø_¿O kفO OØ_ ¿O&O¿O&_,_&¿O(³•O&O Ø_¿O,`��¿Ojð³KO2_&¿A_(¿j_ ¿OkÙ_¿O&_¿O(_¿O(_(¿O OOØØn@�
��_.¿O&O.¿O&_&¿O(³ÎOjð’O*šOOÚO*_*¿O2_2¿O4_&¿O4_4¿O2’±þYO*Bg��ðhð´
@KNÚ
���(1364Q \BN.QRS 1243Q \BN.IDIVIDE 1037Q \BN.IDIVIDE 773Q \BN.IDIVIDE 665Q \BN.IDIVIDE 572Q \BN.IDIVIDE 240Q \BN.TIMES2 235Q \BN.FROM.FIXP 223Q \BN.TIMES2 220Q \BN.FROM.FIXP 107Q \BN.SIGN 71Q FLENGTH 64Q FLENGTH 56Q \BN.FROM.FIXP 34Q \BN.QRS)
(1350Q QUOTIENT 1146Q \BIG.0 43Q QUOTIENT 20Q \BIG.0)
()
\BN.FLOAT D1
(I 0 X) ����@µo���@	��o���êè�(15Q \BN.FLOAT)
NIL
( 21Q 16384.0 6 0.0)
\BN.IGNN D1
(P 0 Y I 0 U) �(��@¡hn@�@ñ“@h�@n@�ÛX@Hn@�ÚÙb�dH	���(44Q \BN.FROM.FIXP)
NIL
()
BIGNUM.DEFPRINT D1
(P 11Q C P 10Q CHARS P 7 B P 6 L P 5 ELS P 4 TH P 1 RADIX P 0 R I 1 STREAM I 0 BIGN F 12Q *READTABLE* F 13Q \THISFILELINELENGTH F 14Q *PRINT-BASE* F 15Q *PRINT-RADIX*) L
�@`��ð¦@`��ð²#W��Ê	��o���
��@`��ð“g��‚g��W�Hdœ¿kHñ¦Hdl$ñ”¿H	��!Idl
ð•¿n'°lð“n�ŒIZIÖdn@�ó²ø¿J@��É�!Mµ2OIL��W¢±�ŠIdlð²,¿W��Ê jð²OlQh
��°iL
��^½NO_¿°¾Ilð“lo°<Idlð”¿lx°1lð“lb°)lrO_¿l
Iñ³Il

��l0ØO_¿Il
ÛY€Il0ØO_¿W��ÊO_¿W²O	��A��ÈØWñ”A	��¿O°d	A��É »AOlKµêi�(453Q FRESHLINE 434Q LENGTH 354Q IMOD 257Q \BN.QRS 251Q \NCONC2 203Q \BN.TH2D 107Q \INVALID.RADIX 36Q CONCAT 27Q CHARACTER)
(471Q STREAM 440Q STREAM 412Q READTABLEP 231Q READTABLEP 163Q BIGNUM 53Q MAX.INTEGER 47Q MIN.INTEGER 42Q MIN.INTEGER 21Q READTABLEP 11Q MAX.INTEGER 3 MIN.INTEGER)
( 33Q ".")
\BN.INTEGERLENGTH D1
(I 0 X) ����@µj˜@	��lØ@	���(24Q INTEGERLENGTH 13Q \BN.INTEGERLENGTH)
NIL
()
\BN.LOGAND D1
(P 0 B I 1 B2 I 0 B1) �'��@¡hA´þ�@A
��X@Aåb�H¦ddjð’H@H�(20Q \BN.LOGAND)
NIL
()
\BN.LOGANDC2 D1
(P 0 B I 1 B2 I 0 B1) �+��@¡hA¡@�@A
��X@mÿAÕåb�H¦ddjð’H@H�(21Q \BN.LOGANDC2)
NIL
()
\BN.LOGOR D1
(I 1 B2 I 0 B1) ����@¡AA¡@@Aä@A
���(23Q \BN.LOGOR)
NIL
()
\BN.LOGXOR D1
(I 1 B2 I 0 B1) ����@¡AA¡@@Aæ@A
���(23Q \BN.LOGXOR)
NIL
()
\BN.MINUS D1
(I 0 U) ����@¡hj@Ù@	���(14Q \BN.MINUS)
NIL
()
\BN.PLUS2 D1
(P 0 L I 1 V I 0 U) �L��@¡AA¡@�@	��A	��ÙXjHñœ@jHÙ	��
��b�HjñšAH	��
��b¿@	��A	��ð•@A
��@A
���(111Q \BN.ISUM1 103Q \BN.ISUM0 74Q \BN.SIGN 70Q \BN.SIGN 61Q \APPEND2 56Q \BN.NZEROS 42Q \APPEND2 37Q \BN.NZEROS 22Q FLENGTH 16Q FLENGTH)
NIL
()
\BN.SIGN D1
(L (0 U)) ����@µjjñ‘kj@ñ’mÿ@b�°ê�NIL
NIL
()
\BN.TIMES2 D1
(P 10Q BP P 7 AP P 6 C P 5 L P 4 W2 P 3 W1 P 2 W P 1 U1 P 0 TAIL I 1 V I 0 U) ���°
@´A¡hjdh¸@	��A	��lÙØ½HºMk_¿_¿OOó«jJºOkÔ_°òJ»@¹K¼j¾IAÚn@�
��_¿LONØØn@�
��_¿LO¿OOؾL¼IYµÎLN¿K»Ab³ºNjð’HhJ�(134Q \BN.IDIVIDE 113Q \BN.IDIVIDE 27Q FLENGTH 23Q FLENGTH)
NIL
()
\BN.COMPAREN D1
(P 3 S P 2 ST P 1 SV P 0 SU I 1 V I 0 U) �f��jddd@	��Xjð–jA	��ÙA	��Yjð‘HHIÙ[jð³"Kjñ‘kjKñ’mÿ��Kjñ³ðjKñ³ñjA²Ø@AÙZjð¡J»Ab¿@b�³éA²ÚjHÙ�(67Q SHOULDNT 31Q \BN.SIGN 23Q \BN.SIGN 12Q \BN.SIGN)
NIL
()
\BN.D2TH D1
(P 5 AI P 4 M P 3 BI P 2 V P 1 S P 0 B I 0 U) �b��`@µHg��ð¦@g��ð—@¹@b�„g��¹@²=@	��Zb�¿j»k¼@²n'Lñ²@½@b�¿MLÚKØ»Ll
Ú°ãIg��ð“jKÙ€KH¸@³ÏH�(47Q REVERSE)
(121Q - 37Q + 22Q - 13Q +)
()
\BN.FROM.FIXP D1
(I 0 U) �a���@d`��ð²`��ð§@d`��ð™¿o���@
����É�´@djð‘h‘@j@ñ²&@o���ô²@n'Ø	��n'	��
��j@Ù	��	��@	���(136Q \BN.IGNN 131Q \BN.MINUS 126Q \BN.IGNN 117Q \BN.DIFFERENCE 114Q \BN.FROM.FIXP 106Q \BN.FROM.FIXP 35Q ERROR)
(41Q BIGNUM 22Q MAX.INTEGER 13Q MIN.INTEGER 5 BIGNUMTYPE#)
( 73Q -20000000000Q 31Q "Can't do arithmetic with ")
\BN.ICANON D1
(L (1 SIGN 0 U)) �6��@j@IغAjñ–jJñ’mÿŠjAñ•Jjñ‘k€j¹JIn@�ÚÙº@J¿@b�µÕH�NIL
NIL
()
\BN.IDIVIDE D1
(L (1 B 0 A)) �	���@AÛ@AÜ�NIL
NIL
()
\BN.ISUM0 D1
(P 2 BP P 1 RES P 0 CARRY I 1 V I 0 U) �3��j!@AHØØn@�
��Z¸JI¹@b�¿Ab³âHjð¤HIY€I	���(60Q REVERSE 20Q \BN.IDIVIDE)
NIL
()
\BN.ISUM1 D1
(P 2 RES P 1 S P 0 C I 1 V I 0 U) �5��0j¹@AØXdjð YJº@b�¿Ab³éIjð‘hJ	��jIñ’mÿ€k
���(62Q \BN.ICANON 47Q DREVERSE)
NIL
()
\BN.MADD D1
(P 4 IPP P 3 IP P 2 TTT P 1 TT P 0 H I 2 C I 1 B I 0 A) �E��P@¹j¸AIÚn@�
��»BKHØØn@�
��¼IL¿K¸Lb¿IZY³×BHØbjð‘@JBJ@�(35Q \BN.IDIVIDE 20Q \BN.IDIVIDE)
NIL
()
\BN.TO.FIXP D1
(I 0 X) �+���@µjo���
��kð«@o���
��mÿð™`��d@�¿@	���(50Q \BIGNUM.TO.INT 26Q \BN.COMPAREN 13Q \BN.COMPAREN)
(35Q BIGNUMTYPE#)
( 23Q (0 0 -10Q) 10Q (37777Q 37777Q 7))
\BN.NZEROS D1
(L (0 N)) �"��@k2IHó³j¼Kµ
Lh[ºIkÔY°îL&»°÷J�NIL
NIL
()
\BN.QRS D1
(P 3 C2 P 2 C1 P 1 CP P 0 D I 1 I I 0 B) �I��@@´AAjð—o���	��¿@	��b�¿jº@»Jn@�ÚKØA
��¹H¤Ijð¤IH¸@b�¿Iº@µÝHJj�(50Q \BN.IDIVIDE 25Q REVERSE 20Q ERROR)
NIL
( 15Q " QRS DIV BY 0 ")
\BN.SIGN D1
(L (0 U)) ����@µjjñ‘kj@ñ’mÿ@b�°ê�NIL
NIL
()
\BN.TH2B D1
(P 1 B P 0 AI I 0 U) �*�� @µIX@b�HIY@µI¸@b�¿In'H��¹°ë�(45Q \BN.MADD)
NIL
()
\BN.TH2D D1
(P 5 M P 4 RESULT P 3 DIGIT P 2 AI P 1 MAXFACTOR I 2 TH I 1 RADIX I 0 A) �k��A¤l
b¿@µl0hBAÛ2Hµ
@jñ²EL	��ºIJMÛ»JKMÚÙºL¤Kjð³l
K	��[ó¦Kl
ÙlA‚Kl0ØL¼Mdkð•HX°»AÛ½°Êl-L	���(147Q REVERSE 100Q ABS 42Q REVERSE)
NIL
()
\INITBIGNUMS D1
NIL �8����j	����k	����`��dg���¿��`��dg���¿��g��	��n8�
���(65Q \SETTYPEMASK 57Q \TYPENUMBERFROMNAME 12Q \BN.FROM.FIXP 3 \BN.FROM.FIXP)
(54Q BIGNUM 51Q MAX.INTEGER 43Q MAX.INTEGER 36Q BIGNUMTYPE# 33Q MIN.INTEGER 25Q MIN.INTEGER 20Q BIGNUMTYPE# 15Q \BIG.1 6 \BIG.0)
()
(\INITBIGNUMS)
(PUTPROPS LLBIGNUM COPYRIGHT ("Xerox Corporation" 1985 1986))
STOP