$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLARITH!9
0000000 ( D E F I N E - F I L E - I N F
0000020 O 247 R E A D T A B L E " X C
0000040 L " 247 P A C K A G E " I N T
0000060 E R L I S P " ) \r 006 001 ( F I L E
0000100 C R E A T E D " 2 2 - O c t -
0000120 8 6 1 6 : 3 0 : 0 2 " 006 004 {
0000140 E R I S } < L I S P C O R E > S
0000160 O U R C E S > C M L A R I T H .
0000200 \ ; 9 006 001 1 1 7 1 9 6 \r \r
0000220 | c h a n g e s | |
0000240 t o : | ( F N S % C O M P
0000260 L E X - T I M E S I C L : C O
0000300 N J U G A T E % = C O M P L
0000320 E X C L : R E A L P A R T C
0000340 L : I M A G P A R T ) \r \r
0000360 | p r e v i o u s | | d
0000400 a t e : | " 3 0 - S e p - 8 6
0000420 0 0 : 3 1 : 1 7 " { E R I S
0000440 } < L I S P C O R E > S O U R C
0000460 E S > C M L A R I T H . \ ; 6 )
0000500 \r \r \r ; C o p y r i g h t (
0000520 c ) 1 9 8 5 , 1 9 8 6 b y
0000540 X e r o x C o r p o r a t i
0000560 o n . A l l r i g h t s
0000600 r e s e r v e d . \r \r ( P R E T
0000620 T Y C O M P R I N T C M L A R
0000640 I T H C O M S ) \r \r ( R P A Q Q
0000660 006 002 C M L A R I T H C O M S 006
0000700 001 \r ( ( * | ;
0000720 ; ; | " C M L A R I T H .
0000740 C o m m o n L i s p A r i t
0000760 h m e t i c . C o v e r s
0001000 a l l o f C o m m o n L i
0001020 s p a r i t h m e t i c e x
0001040 c e p t f o r h i g h e r
0001060 m a t h f u n c t i o n s .
0001100 C o v e r s s e c t i o n s
0001120 2 . 1 - 2 . 1 . 4 , 1 2 . 1
0001140 - 1 2 . 4 , a n d 1 2 . 6 -
0001160 1 2 . 1 0 D o e s n ' t c o
0001200 v e r s e c t i o n s 1 2 .
0001220 5 - 1 2 . 5 . 3 . - - B y
0001240 K e l l y R o a c h " \r
0001260 ) \r
0001300 ( C O M S ( * \ ;
0001320 " M i s c e l l a n e o u s .
0001340 " ) \r
0001360 ( F N S C L : I S Q R T P
0001400 R I M E P C L : P H A S E C
0001420 L : S I G N U M % S I G N U M
0001440 ) ) \r ( C O M S
0001460 ( * \ ; " S e c t i o n
0001500 2 . 1 . 2 R a t i o s . " )
0001520 \r (
0001540 S T R U C T U R E S R A T I O
0001560 ) \r
0001600 ( D E C L A R E \ : D O N T E
0001620 V A L @ L O A D D O C O P Y
0001640 ( P ( * \ ; " T h e f o
0001660 l l o w i n g m a k e s N U
0001700 M B E R P t r u e o n r a
0001720 t i o s " ) \r
0001740
*
0002000 ( \ \ S E T T Y
0002020 P E M A S K ( \ \ T Y P E N U
0002040 M B E R F R O M N A M E ' R A
0002060 T I O ) \r
0002100
*
0002140 ( L O
0002160 G O R \ \ T T . N U M B E R P
0002200 \ \ T T . A T O M ) ) ) ) \r
0002220 ( F N
0002240 S C L : N U M E R A T O R C
0002260 L : D E N O M I N A T O R C L
0002300 : R A T I O N A L P C L : R A
0002320 T I O N A L C L : R A T I O N
0002340 A L I Z E % R A T I O - P R I
0002360 N T \r
0002400 % B U I L D - R A
0002420 T I O % R A T I O N A L I Z E
0002440 - F L O A T % R A T I O * %
0002460 R A T I O / % R A T I O - T I
0002500 M E S - Q U O T I E N T % R A
0002520 T I O + \r
0002540 % R A T I O -
0002560 % R A T I O - P L U S - D I F
0002600 F E R E N C E % R A T I O - I
0002620 N T E G E R * % R A T I O - I
0002640 N T E G E R + % R A T I O - I
0002660 N T E G E R - ) ) \r
0002700 ( C O M S ( * \ ; " S
0002720 e c t i o n 2 . 1 . 4 C o m
0002740 p l e x N u m b e r s . " ) \r
0002760 ( S
0003000 T R U C T U R E S C O M P L E
0003020 X ) \r
0003040 ( D E C L A R E \ : D O N T
0003060 E V A L @ L O A D D O C O P Y
0003100 ( P ( * \ ; " M a k e
0003120 i t s o t h a t C O M P L
0003140 E X i s N U M B E R P " ) \r
0003160
*
0003240 ( \ \ S E T T Y P E M A S K
0003260 ( \ \ T Y P E N U M B E R F R O
0003300 M N A M E ' C O M P L E X ) \r
0003320
*
0003400 ( L O G O R \
0003420 \ T T . N U M B E R P \ \ T T
0003440 . A T O M ) ) ) ) \r
0003460 ( F N S C O M
0003500 P L E X C L : R E A L P A R T
0003520 C L : I M A G P A R T % C O
0003540 M P L E X + % C O M P L E X -
0003560 % C O M P L E X * % C O M P
0003600 L E X / \r
0003620 % C O M P L E
0003640 X - A B S % C O M P L E X - M
0003660 I N U S % C O M P L E X - T I
0003700 M E S I C L : C O N J U G A T
0003720 E % C O M P L E X - P R I N T
0003740 ) ) \r ( C O M S
0003760 ( * \ ; " S e c t i o n
0004000 1 2 . 2 P r e d i c a t e s
0004020 o n N u m b e r s . " ) \r
0004040 ( * \
0004060 ; " M I N U S P i s m a d
0004100 e t o w o r k o n r a t
0004120 i o s . O t h e r w i s e ,
0004140 b a c k w a r d s c o m p a
0004160 t i b l e . " ) \r
0004200 ( F N S N E W -
0004220 M I N U S P ) \r
0004240 ( D E C L A R E \ :
0004260 D O N T E V A L @ L O A D D
0004300 O C O P Y ( P ( M O V D '
0004320 N E W - M I N U S P ' M I N U
0004340 S P ) ) ) \r
0004360 ( F N S C L : Z E R O
0004400 P ) \r
0004420 ( F N S E V E N P O D D P
0004440 C L : P L U S P ) ) \r
0004460 ( C O M S ( * \ ;
0004500 " S e c t i o n 1 2 . 3 C o
0004520 m p a r i s o n s o n N u m
0004540 b e r s . " ) \r
0004560 ( F N S % = % >
0004600 ) \r
0004620 ( F N S = % = C L : / =
0004640 < > < = > = ) \r
0004660 ( O P T I M I
0004700 Z E R S = C L : / = < >
0004720 < = > = ) \r
0004740 ( * | ; ; | \r
0004760 " M A X a n d M I N a r e
0005000 O K b e c a u s e t h e y
0005020 u s e G R E A T E R P a n
0005040 d G R E A T E R P i s f i
0005060 x e d b y t h i s f i l e
0005100 t o w o r k o n r a t i
0005120 o s . " \r
0005140 ) ) \r
0005160 ( C O M S ( * \ ; " S e
0005200 c t i o n 1 2 . 4 A r i t h
0005220 m e t i c O p e r a t i o n s
0005240 . " ) \r
0005260 ( F N S + - C L : *
0005300 / % / C L : 1 + C L : 1 -
0005320 ) \r
0005340 ( O P T I M I Z E R S + -
0005360 C L : * / C L : 1 + C L :
0005400 1 - ) \r
0005420 ( D E C L A R E \ : D O N
0005440 T E V A L @ L O A D D O C O P
0005460 Y ( P ( M O V D ' + ' P
0005500 L U S ) \r
0005520
*
0005560 ( M O V D ' - '
0005600 D I F F E R E N C E ) \r
0005620
*
0005660 ( M O
0005700 V D ' C L : 1 + ' A D D 1 )
0005720 \r
0005740
*
0006000 ( M O V D ' C L : 1 - '
0006020 S U B 1 ) \r
0006040
*
0006100 ( M O V D ' C L
0006120 : * ' T I M E S ) ) ) \r
0006140 ( * \ ;
0006160 " I N C F a n d D E C F
0006200 i m p l e m e n t e d b y C
0006220 M L S E T F . " ) \r
0006240 ( * \ ; " C
0006260 O N J U G A T E i m p l e m e
0006300 n t e d i n s e c t i o n
0006320 2 . 1 . 4 a b o v e . " ) \r
0006340 ( F N
0006360 S C L : G C D % G C D C L
0006400 : L C M ) ) \r (
0006420 C O M S ( * \ ; " S e c t
0006440 i o n 1 2 . 6 T y p e C o
0006460 n v e r s i o n s a n d C o
0006500 m p o n e n t E x t r a c t i
0006520 o n s o n N u m b e r s . "
0006540 ) \r
0006560 ( * | ; ; ; | \r
0006600 " L L F L
0006620 O A T r e p l a c e m e n t s
0006640 . L L F L O A T u f n s
0006660 s e e m O K o n c e w e
0006700 m o d i f y \ \ F L O A T a
0006720 p p r o p r i a t e l y . " ) \r
0006740 ( F
0006760 N S F L O A T \ \ F L O A T
0007000 ) \r
0007020 ( * \ ; " N U M E R A T O R
0007040 a n d D E N O M I N A T O R
0007060 i m p l e m e n t e d i n
0007100 s e c t i o n 2 . 1 . 2 a b
0007120 o v e . " ) \r
0007140 ( F N S C L : F L O
0007160 O R C L : T R U N C A T E C
0007200 L : C E I L I N G R O U N D
0007220 C L : M O D C L : R E M C L
0007240 : F F L O O R C L : F C E I L
0007260 I N G \r
0007300 C L : F T R U N
0007320 C A T E C L : F R O U N D ) \r
0007340 ( *
0007360 \ ; " P a g e 2 1 8 f u
0007400 n c t i o n s . " ) \r
0007420 ( F N S C L
0007440 : D E C O D E - F L O A T C L
0007460 : S C A L E - F L O A T C L :
0007500 F L O A T - R A D I X C L : F
0007520 L O A T - S I G N C L : F L O
0007540 A T - D I G I T S \r
0007560 C L
0007600 : F L O A T - P R E C I S I O N
0007620 C L : I N T E G E R - D E C O
0007640 D E - F L O A T ) \r
0007660 ( * \ ; " E
0007700 X P T C O M P L E X R E A L
0007720 P A R T a n d I M A G P A R
0007740 T a r e d e f i n e d b y
0007760 C M L F L O A T . " ) ) \r
0010000 ( C O M S ( * |
0010020 ; ; ; | " L L A R I T H r e
0010040 p l a c e m e n t s . E i t
0010060 h e r y o u h a v e t o
0010100 l i v e w i t h t h e s e
0010120 r e p l a c e m e n t s o r
0010140 y o u h a v e t o s t a r
0010160 t f i x i n g C L I S P f
0010200 o r l o o p s , t h e h i
0010220 s t o r y m e c h a n i s m
0010240 e t c . L a r r y t r i e
0010260 d t a k i n g t h e s e o
0010300 u t a n d t h e t h i n g
0010320 s I h a d f i x e d b y
0010340 p u t t i n g t h e s e r
0010360 e p l a c e m e n t s i n s
0010400 t a r t e d b r e a k i n g
0010420 a g a i n . T h e s e r e
0010440 p l a c e m e n t s a r e s
0010460 u p p o s e d t o b e g o
0010500 o d f o r y o u i n a n
0010520 y c a s e . " \r
0010540 ) \r
0010560 ( C O M S
0010600 ( * \ ; " N o n u f n s "
0010620 ) \r
0010640 ( * | ; ; | " G
0010660 R E A T E R P a n d L E S S
0010700 P a r e m a d e t o w o
0010720 r k o n r a t i o s . E
0010740 Q P , A B S , a n d M I N
0010760 U S i s f i x e d t o w
0011000 o r k o n r a t i o s a n
0011020 d c o m p l e x s . * " \r
0011040
0011060 ) \r
0011100 ( F N
0011120 S N E W - L E S S P N E W -
0011140 E Q P N E W - A B S N E W -
0011160 M I N U S ) \r
0011200 ( D E C L
0011220 A R E \ : D O N T E V A L @ L
0011240 O A D D O C O P Y ( P ( M
0011260 O V D ' % > ' G R E A T E R
0011300 P ) \r
0011320
*
0011360 ( M O V D
0011400 ' N E W - L E S S P ' L E S S
0011420 P ) \r
0011440
*
0011500 ( M O V D
0011520 ' N E W - E Q P ' E Q P ) \r
0011540
*
0011620 ( M O V D ' N E W
0011640 - A B S ' A B S ) \r
0011660
*
0011740 ( M O V D ' N E W - M I N
0011760 U S ' M I N U S ) ) ) ) \r
0012000 ( C O M
0012020 S ( * \ ; " N e w L L A
0012040 R I T H U F N S " ) \r
0012060
0012100 ( C O M S ( * | ; ; | " I
0012120 N T E G E R A R I T H U F N
0012140 S . U N B O X . i s m a
0012160 d e t o u n d e r s t a n d
0012200 R A T I O s s o i n t e g
0012220 e r a r i t h u f n s m u
0012240 s t b e r e c o m p i l e d
0012260 . \ \ I Q U O T R E M h a
0012300 s n o t c h a n g e d , b
0012320 u t \ \ I Q U O T R E M u s
0012340 e s . U N B O X . a n d
0012360 N E W - S L O W I Q U O T I E N
0012400 T a n d N E W - I R E M A I
0012420 N D E R u s e \ \ I Q U O T
0012440 R E M . " \r
0012460
0012500 ) \r
0012520 (
0012540 D E C L A R E \ : E V A L @ C
0012560 O M P I L E D O N T C O P Y
0012600 ( M A C R O S . C M L U N B O
0012620 X . . C M L I Q U O T R E M .
0012640 ) ) \r
0012660 ( F N
0012700 S N E W - S L O W I P L U S 2
0012720 N E W - S L O W I D I F F E R
0012740 E N C E N E W - S L O W I T I
0012760 M E S 2 N E W - S L O W I Q U
0013000 O T I E N T \r
0013020
0013040 N E W - I R E M A
0013060 I N D E R N E W - S L O W I G
0013100 R E A T E R P ) ) \r
0013120 ( D
0013140 E C L A R E \ : D O N T E V A
0013160 L @ L O A D D O C O P Y ( P
0013200 ( \ \ S E T U F N E N T R Y
0013220 ( C A R ( \ \ F I N D O P '
0013240 I P L U S 2 ) ) \r
0013260
*
0013340 ' N E W - S L O W
0013360 I P L U S 2 2 0 ) \r
0013400
*
0013460 ( \ \ S E T U F N E N T R
0013500 Y ( C A R ( \ \ F I N D O P
0013520 ' I D I F F E R E N C E ) ) \r
0013540
*
0013620 ' N
0013640 E W - S L O W I D I F F E R E N
0013660 C E 2 0 ) \r
0013700
*
0013740 (
0013760 \ \ S E T U F N E N T R Y ( C
0014000 A R ( \ \ F I N D O P ' I T
0014020 I M E S 2 ) ) \r
0014040
*
0014120 ' N E W - S L O W I
0014140 T I M E S 2 2 0 ) \r
0014160
*
0014240 ( \ \ S E T U F N E N T R
0014260 Y ( C A R ( \ \ F I N D O P
0014300 ' I Q U O T I E N T ) ) \r
0014320
*
0014400 ' N E W
0014420 - S L O W I Q U O T I E N T 2
0014440 0 ) \r
0014460
*
0014520 ( \ \ L O
0014540 C K F N ' N E W - S L O W I Q
0014560 U O T I E N T ) \r
0014600
*
0014660 ( * \ ; " b e c a u s e o
0014700 r i g i n a l i s l o c k e
0014720 d " ) \r
0014740
*
0015000 ( \ \ S E
0015020 T U F N E N T R Y ( C A R (
0015040 \ \ F I N D O P ' I R E M A I
0015060 N D E R ) ) \r
0015100
*
0015160 ' N E W - I R E M A I
0015200 N D E R 2 0 ) \r
0015220
*
0015300 ( \ \ S E T U F N E N T R Y
0015320 ( C A R ( \ \ F I N D O P '
0015340 I G R E A T E R P ) ) \r
0015360
*
0015440 ' N E W - S
0015460 L O W I G R E A T E R P 2 0
0015500 ) ) ) ) ) \r ( C
0015520 O M S ( * \ ; " N e w g
0015540 e n e r a l a r i t h m e t i
0015560 c U F N s w h i c h k n o
0015600 w a b o u t r a t i o a n
0015620 d c o m p l e x " ) \r
0015640 ( * | ; ;
0015660 | " N O T E : % / C A N
0015700 N O T C O M P I L E I N T O
0015720 T H E E X I S T I N G Q U
0015740 O T I E N T O P C O D E .
0015760 T h i s i s b e c a u s e
0016000 % / i s s u p p o s e d t
0016020 o p r o d u c e a r a t i
0016040 o n a l w h e n n u m e r a
0016060 t o r i s n o t e v e n l
0016100 y d i v i s i b l e b y d
0016120 e n o m i n a t o r . T h e
0016140 r e f o r e , t h e r e i s
0016160 n o M A C R O f o r % /
0016200 b e l o w . " \r
0016220 ) \r
0016240 ( P R O P
0016260 D O P V A L % + % - % *
0016300 % > ) \r
0016320 ( F N S % + % - % *
0016340 % / ) \r
0016360 ( D E C L A R E \ : D O N
0016400 T E V A L @ L O A D D O C O P
0016420 Y ( P ( \ \ S E T U F N E N
0016440 T R Y ( C A R ( \ \ F I N D
0016460 O P ' P L U S 2 ) ) \r
0016500
*
0016560 ' % + 2 0 ) \r
0016600
*
0016640 ( \
0016660 \ S E T U F N E N T R Y ( C A
0016700 R ( \ \ F I N D O P ' D I F
0016720 F E R E N C E ) ) \r
0016740
*
0017020 ' % - 2 0 ) \r
0017040
*
0017100 ( \ \ S
0017120 E T U F N E N T R Y ( C A R
0017140 ( \ \ F I N D O P ' T I M E S
0017160 2 ) ) \r
0017200
*
0017240 ' % *
0017260 2 0 ) \r
0017300
*
0017340 ( \ \ S E T U F N E
0017360 N T R Y ( C A R ( \ \ F I N
0017400 D O P ' G R E A T E R P ) ) \r
0017420
*
0017500 ' % > 2 0 )
0017520 ) ) ) \r ( C O M
0017540 S ( * \ ; " S e c t i o n
0017560 1 2 . 7 L o g i c a l O p
0017600 e r a t i o n s o n N u m b
0017620 e r s . " ) \r
0017640 ( * \ ; " P a g e
0017660 2 2 1 f u n c t i o n s .
0017700 L O G A N D L O G X O R a
0017720 r e O K . " ) \r
0017740 ( F N S C L : L
0017760 O G I O R C L : L O G E Q V
0020000 C L : L O G N A N D C L : L O
0020020 G N O R C L : L O G A N D C 1
0020040 C L : L O G A N D C 2 C L :
0020060 L O G O R C 1 \r
0020100 C L : L
0020120 O G O R C 2 ) \r
0020140 ( * \ ; " P a g
0020160 e 2 2 2 . B O O L E a n d
0020200 c o n s t a n t s . " ) \r
0020220 ( F N S
0020240 C L : B O O L E ) \r
0020260 ( I N I T V A
0020300 R S ( C L : B O O L E - C L R
0020320 0 ) \r
0020340 ( C L : B O O
0020360 L E - S E T 1 ) \r
0020400 (
0020420 C L : B O O L E - 1 2 ) \r
0020440
0020460 ( C L : B O O L E - 2 3
0020500 ) \r
0020520 ( C L : B O O L E
0020540 - C 1 4 ) \r
0020560 ( C L :
0020600 B O O L E - C 2 5 ) \r
0020620
0020640 ( C L : B O O L E - A N D 6
0020660 ) \r
0020700 ( C L : B O O L E
0020720 - I O R 7 ) \r
0020740 ( C L
0020760 : B O O L E - X O R 8 ) \r
0021000
0021020 ( C L : B O O L E - E Q V
0021040 9 ) \r
0021060 ( C L : B O O
0021100 L E - N A N D 1 0 ) \r
0021120
0021140 ( C L : B O O L E - N O R 1
0021160 1 ) \r
0021200 ( C L : B O O L
0021220 E - A N D C 1 1 2 ) \r
0021240
0021260 ( C L : B O O L E - A N D C 2
0021300 1 3 ) \r
0021320 ( C L : B O
0021340 O L E - O R C 1 1 4 ) \r
0021360
0021400 ( C L : B O O L E - O R C 2
0021420 1 5 ) ) \r
0021440 ( * \ ; " R e m a i
0021460 n d e r o f s e c t i o n
0021500 1 2 . 7 L O G N O T i s O
0021520 K . " ) \r
0021540 ( F N S C L : L O G T E
0021560 S T C L : L O G B I T P ) \r
0021600 ( F N
0021620 S C L : A S H ) \r
0021640 ( F N S C L :
0021660 L O G C O U N T % L O G C O U
0021700 N T ) \r
0021720 ( F N S C L : I N T E G E
0021740 R - L E N G T H ) ) \r
0021760 ( C O M S ( * \ ; "
0022000 S e c t i o n 1 2 . 8 B y t
0022020 e M a n i p u l a t i o n s
0022040 F u n c t i o n s . " ) \r
0022060 ( * \ ;
0022100 " B Y T E m a c r o a l r
0022120 e a d y i m p l e m e n t e d
0022140 . S h o u l d b e f u n
0022160 c t i o n . " ) \r
0022200 ( F N S B Y T E
0022220 - S I Z E C L : B Y T E - P O
0022240 S I T I O N ) \r
0022260 ( * \ ; " L D B
0022300 m a c r o a l r e a d y i
0022320 m p l e m e n t e d . S h o
0022340 u l d b e f u n c t i o n .
0022360 " ) \r
0022400 ( F N S C L : L D B - T E S
0022420 T C L : M A S K - F I E L D )
0022440 \r (
0022460 * \ ; " D P B m a c r o
0022500 a l r e a d y i m p l e m e n
0022520 t e d . S h o u l d b e
0022540 f u n c t i o n . " ) \r
0022560 ( F N S C
0022600 L : D E P O S I T - F I E L D )
0022620 ) \r ( D E C L A
0022640 R E \ : E V A L @ C O M P I L
0022660 E D O N T C O P Y ( F I L E
0022700 S ( L O A D C O M P ) \r
0022720
*
0022760 L L F
0023000 L O A T L L C O D E L L B I
0023020 G N U M ) ) \r (
0023040 P R O P F I L E T Y P E C M
0023060 L A R I T H ) \r
0023100 ( D E C L A R E \ : D O N T E
0023120 V A L @ L O A D D O E V A L @
0023140 C O M P I L E D O N T C O P Y
0023160 C O M P I L E R V A R S \r
0023200 ( A D
0023220 D V A R S ( N L A M A ) \r
0023240
0023260 ( N L A M L ) \r
0023300
0023320 ( L A M A C L : D E P O S
0023340 I T - F I E L D C L : M A S K
0023360 - F I E L D C L : L D B - T E
0023400 S T C L : B Y T E - P O S I T
0023420 I O N B Y T E - S I Z E \r
0023440
0023460 C L : L O
0023500 G C O U N T C L : L O G B I T
0023520 P C L : L O G T E S T C L :
0023540 B O O L E C L : L O G O R C 2
0023560 C L : L O G O R C 1 \r
0023600
0023620 C L : L O G A
0023640 N D C 2 C L : L O G A N D C 1
0023660 C L : L O G N O R C L : L O
0023700 G N A N D C L : L O G E Q V
0023720 C L : L O G I O R \r
0023740
0023760 C L : I N T E G E
0024000 R - D E C O D E - F L O A T C
0024020 L : F L O A T - P R E C I S I O
0024040 N C L : F L O A T - D I G I T
0024060 S C L : F L O A T - S I G N
0024100 \r
0024120 C L :
0024140 F L O A T - R A D I X C L : D
0024160 E C O D E - F L O A T C L : F
0024200 R O U N D C L : F T R U N C A
0024220 T E C L : F C E I L I N G \r
0024240
0024260 C L : F
0024300 F L O O R C L : R E M C L :
0024320 M O D R O U N D C L : C E I
0024340 L I N G C L : T R U N C A T E
0024360 C L : F L O O R F L O A T
0024400 \r
0024420 C L :
0024440 L C M % G C D C L : G C D
0024460 / C L : * - + > = < =
0024500 > < C L : / = = C L :
0024520 P L U S P O D D P E V E N P
0024540 \r
0024560 C L
0024600 : Z E R O P % C O M P L E X -
0024620 P R I N T % C O M P L E X - T
0024640 I M E S I % C O M P L E X - M
0024660 I N U S % C O M P L E X - A B
0024700 S \r
0024720 %
0024740 C O M P L E X / % C O M P L E
0024760 X * % C O M P L E X - % C O
0025000 M P L E X + C L : I M A G P A
0025020 R T C L : R E A L P A R T C
0025040 O M P L E X \r
0025060
0025100 % R A T I O - I N T E G
0025120 E R - % R A T I O - I N T E G
0025140 E R + % R A T I O - I N T E G
0025160 E R * % R A T I O - P L U S -
0025200 D I F F E R E N C E \r
0025220
0025240 % R A T I O -
0025260 % R A T I O + % R A T I O - T
0025300 I M E S - Q U O T I E N T % R
0025320 A T I O / % R A T I O * % B
0025340 U I L D - R A T I O \r
0025360
0025400 C L : R A T I O
0025420 N A L I Z E C L : R A T I O N
0025440 A L C L : D E N O M I N A T O
0025460 R C L : N U M E R A T O R %
0025500 S I G N U M C L : S I G N U M
0025520 \r
0025540 C L
0025560 : P H A S E P R I M E P C L
0025600 : I S Q R T ) ) ) ) ) \r \r \r \r 006
0025620 004 ( * | ; ; ; | \r " C M L A
0025640 R I T H . C o m m o n L i
0025660 s p A r i t h m e t i c .
0025700 C o v e r s a l l o f C o
0025720 m m o n L i s p a r i t h m
0025740 e t i c e x c e p t f o r
0025760 h i g h e r m a t h f u n c
0026000 t i o n s . C o v e r s s
0026020 e c t i o n s 2 . 1 - 2 . 1 .
0026040 4 , 1 2 . 1 - 1 2 . 4 , a n
0026060 d 1 2 . 6 - 1 2 . 1 0 D o e
0026100 s n ' t c o v e r s e c t i
0026120 o n s 1 2 . 5 - 1 2 . 5 . 3 .
0026140 - - B y K e l l y R o
0026160 a c h " \r ) 006 001 \r \r \r \r \r 006 004
0026200 ( * \ ; " M i s c e l l a n
0026220 e o u s . " ) 006 001 \r \r ( D E F
0026240 I N E Q \r \r ( 006 004 C L : I S Q R
0026260 T 006 001 \r ( C L : L A M B D A
0026300 ( I N T E G E R ) 006 006 006 001
0026320
*
0026360 006 006 ( * | k b r : |
0026400 " 1 2 - J u l - 8 6 1 8 : 0
0026420 5 " ) 006 001 \r
0026440 \r 006 006 ( *
0026460 I S Q R T \ : | I n t e g e r
0026500 | | s q u a r e | | r o o t
0026520 | - \r 006 001
0026540 006 006 | i s q r t | ( \ n ) *
0026560 * 2 < = \ n | U p p e r |
0026600 | a n d | | l o w e r | |
0026620 b o u n d s | | o n | | t h
0026640 e | | r e s u l t | | a r e
0026660 | \r 006 001 006
0026700 006 | e s t i m a t e d | | u s
0026720 i n g | | i n t e g e r - l e
0026740 n g t h . | O \ n | e a c h
0026760 | | i t e r a t i o n , | |
0027000 o n e | | o f | | t h e |
0027020 \r 006 001 006 006 |
0027040 b o u n d s | | i s | | r e
0027060 p l a c e d | | b y | | t h
0027100 e i r | | m e a n . | \r 006 001
0027120 006 006 | T h e |
0027140 | l o w e r | | b o u n d |
0027160 | i s | | r e t u r n e d |
0027200 | w h e n | | t h e | | b
0027220 o u n d s | | m e e t | | o
0027240 r | \r 006 001
0027260 006 006 | d i f f e r | | b y |
0027300 | o n l y | 1 . 0 | I n i t
0027320 i a l | | b o u n d s | | g
0027340 u a r a n t e e | | t h a t |
0027360 | l g | \r 006 001
0027400 006 006 ( | s q r t | ( \ n )
0027420 ) = | l g | ( \ n ) / 2
0027440 | i t e r a t i o n s | | s
0027460 u f f i c e . | \r 006 001
0027500 006 006 * ) 006 001 \r \r
0027520 ( C L : I F ( A N
0027540 D ( C L : I N T E G E R P I
0027560 N T E G E R ) \r
0027600 ( N O
0027620 T ( M I N U S P I N T E G E
0027640 R ) ) ) \r
0027660 ( C L : D O * ( ( L
0027700 G ( 006 002 C L : I N T E G E R -
0027720 L E N G T H 006 001 I N T E G E R
0027740 ) ) \r
0027760 ( L O
0030000 ( 006 002 C L : A S H 006 001 1 ( 006
0030020 002 C L : A S H 006 001 ( 006 002 C L :
0030040 1 - 006 001 L G ) \r
0030060
*
0030120 - 1 ) ) ) \r
0030140
0030160 ( H I ( 006 002 + 006 001
0030200 L O ( 006 002 C L : A S H 006 001
0030220 L O ( C L : I F ( 006 002 O D D
0030240 P 006 001 L G ) \r
0030260
*
0030320 - 1
0030340 0 ) ) ) ) ) \r
0030360 ( (
0030400 006 002 < = 006 001 ( 006 002 C L : 1 - 006
0030420 001 H I ) \r
0030440 L
0030460 O ) \r
0030500 L O ) \r
0030520
0030540 ( L E T ( ( M I D
0030560 ( 006 002 C L : A S H 006 001 ( 006 002
0030600 + 006 001 L O H I ) \r
0030620
*
0030660 - 1 ) ) ) \r
0030700
0030720 ( C L : I F ( 006 002
0030740 < = 006 001 ( 006 002 C L : * 006 001 M
0030760 I D M I D ) \r
0031000
0031020 I N T E
0031040 G E R ) \r
0031060
0031100 ( S E T Q L O
0031120 M I D ) \r
0031140
0031160 ( S E T Q H
0031200 I M I D ) ) ) ) \r
0031220 ( C L : E R
0031240 R O R " I s q r t : ~ S a
0031260 r g u m e n t m u s t b e
0031300 a n o n n e g a t i v e i n
0031320 t e g e r " I N T E G E R ) )
0031340 ) ) \r \r ( 006 004 P R I M E P 006 001 \r
0031360 ( C L : L A M B D A ( X )
0031400 006 006 006 001
0031420
*
0031460 006 006 ( * | k b r : | " 7
0031500 - A p r - 8 6 2 0 : 5 4 " ) 006
0031520 001 \r \r
0031540 006 006 ( * | R e t
0031560 u r n s | T | i f f | X
0031600 | i s | \ a | p o s i t i v
0031620 e | | p r i m e | | i n t e
0031640 g e r . | \r 006 001
0031660 006 006 * ) 006 001 \r \r
0031700 ( C L : I F ( 006 002 < = 006
0031720 001 X 5 ) \r
0031740 ( A N D ( 006 002 >
0031760 = 006 001 X 2 ) \r
0032000 ( 006
0032020 002 C L : / = 006 001 X 4 ) ) \r
0032040 (
0032060 A N D ( N O T ( 006 002 E V E N
0032100 P 006 001 X ) ) \r
0032120 ( N O
0032140 T ( 006 002 = 006 001 0 ( 006 002 C L
0032160 : R E M 006 001 X 3 ) ) ) \r
0032200
0032220 ( C L : D O ( ( Q 6 )
0032240 \r
0032260 ( R
0032300 1 ) \r
0032320
0032340 ( I N C 2 ( L O G X O R
0032360 I N C 6 ) ) \r
0032400
0032420 ( D 5 ( 006 002 + 006 001
0032440 D I N C ) ) ) \r
0032460
0032500 ( ( O R ( 006 002 = 006
0032520 001 R 0 ) \r
0032540
0032560 ( 006 002 > 006 001 D
0032600 Q ) ) \r
0032620
0032640 ( 006 002 C L : / = 006 001 R 0
0032660 ) ) \r
0032700 (
0032720 C L : M U L T I P L E - V A L U
0032740 E - S E T Q ( Q R ) \r
0032760
*
0033020 ( 006 002 C L : T R U N C A T E 006 001
0033040 X D ) ) ) ) ) ) ) \r \r ( 006 004
0033060 C L : P H A S E 006 001 \r ( C L
0033100 : L A M B D A ( C L : N U M B
0033120 E R ) 006 006 006 001
0033140
0033160 006 006 ( *
0033200 | k b r : | " 2 3 - J u l -
0033220 8 6 1 6 : 1 9 " ) 006 001 \r
0033240 ( C O N D \r
0033260 ( ( C L : C O M
0033300 P L E X P C L : N U M B E R )
0033320 \r ( C
0033340 L : A T A N ( C O M P L E X -
0033360 I M A G P A R T C L : N U M B
0033400 E R ) \r
0033420 ( C O M P L E X
0033440 - R E A L P A R T C L : N U M
0033460 B E R ) ) ) \r
0033500 ( ( M I N U S P C L : N
0033520 U M B E R ) \r
0033540 % P I ) \r
0033560 ( T \r
0033600 \r 006 006
0033620 ( * | P a g e | 2 0 6 | o
0033640 f | | t h e | | s i l v e r
0033660 | | b o o k : | | T h e |
0033700 | p h a s e | | o f | \ a
0033720 | p o s i t i v e | \r 006 001
0033740 006 006 | n o n - c
0033760 o m p l e x | | n u m b e r |
0034000 | i s | | z e r o . | | T
0034020 h e | | p h a s e | | o f |
0034040 | z e r o | | i s | \r 006 001
0034060 006 006 | a r b
0034100 i t r a r i l y | | d e f i n
0034120 e d | | t o | | b e | | z
0034140 e r o . | \r 006 001
0034160 006 006 | T h e | | r e s u l
0034200 t | | i s | \ a | f l o a
0034220 t i n g - p o i n t | | n u m
0034240 b e r . | \r 006 001
0034260 006 006 * ) 006 001 \r \r
0034300 0 . 0 ) ) ) )
0034320 \r \r ( 006 004 C L : S I G N U M 006 001
0034340 \r ( C L : L A M B D A ( C
0034360 L : N U M B E R ) 006 006 006 001
0034400
*
0034440 006 006 ( * | k b r : | " 1
0034460 3 - M a y - 8 6 1 7 : 1 0 " )
0034500 006 001 \r \r
0034520 006 006 ( * I \ f
0034540 C L : N U M B E R | i s |
0034560 | z e r o , | | r e t u r n |
0034600 N U M B E R \ , | e l s e |
0034620 | r e t u r n | \r 006 001
0034640 006 006 ( / C L : N U
0034660 M B E R ( A B S C L : N U M
0034700 B E R ) ) \ . | C u r r e n t
0034720 l y | | n o t | | i m p l e
0034740 m e n t e d | | f o r | | c
0034760 o m p l e x | \r 006 001
0035000 006 006 | n u m b e r s .
0035020 | * ) 006 001 \r \r
0035040 ( C O N D \r
0035060 ( ( Z E R O P C L : N U
0035100 M B E R ) \r
0035120 C L : N U M B E R ) \r
0035140 ( T ( C O
0035160 N D \r
0035200 ( ( 006 002 C L : R A T I
0035220 O N A L P 006 001 C L : N U M B E
0035240 R ) \r
0035260 ( C O N D \r
0035300
0035320 ( ( 006 002 C L : P L U S P 006 001
0035340 C L : N U M B E R ) \r
0035360
0035400 1 ) \r
0035420 ( T -
0035440 1 ) ) ) \r
0035460 ( T ( 006 002 / 006 001
0035500 C L : N U M B E R ( A B S
0035520 C L : N U M B E R ) ) ) ) ) ) )
0035540 ) \r \r ( 006 004 % S I G N U M 006 001 \r
0035560 ( C L : L A M B D A ( X )
0035600 \r ( L E T (
0035620 ( R E S ( C O N D \r
0035640
0035660 ( ( 006 002 C L : P L U S P 006 001
0035700 X ) \r
0035720 1 ) \r
0035740
0035760 ( ( Z E R O P X )
0036000 \r
0036020 0 ) \r
0036040
0036060 ( T - 1 ) ) ) ) \r
0036100 ( C L : I
0036120 F ( F L O A T P X ) \r
0036140
0036160 ( 006 002 F L O A T 006 001 R E S
0036200 X ) \r
0036220 R E S ) ) ) )
0036240 \r ) \r \r \r \r 006 004 ( * \ ; " S
0036260 e c t i o n 2 . 1 . 2 R a t
0036300 i o s . " ) 006 001 \r \r ( D E F S
0036320 T R U C T ( 006 002 R A T I O 006 001
0036340 ( : C O N S T R U C T O R %
0036360 M A K E - R A T I O ( C L : N
0036400 U M E R A T O R C L : D E N O
0036420 M I N A T O R ) ) \r
0036440 ( : P R
0036460 I N T - F U N C T I O N % R A
0036500 T I O - P R I N T ) ) ( C L :
0036520 N U M E R A T O R : R E A D -
0036540 O N L Y ) ( C L : D E N O M I
0036560 N A T O R \r
0036600
*
0036700 : R E A D -
0036720 O N L Y ) ) \r \r ( D E C L A R E
0036740 \ : D O N T E V A L @ L O A D
0036760 D O C O P Y \r ( * \ ; "
0037000 T h e f o l l o w i n g m a
0037020 k e s N U M B E R P t r u e
0037040 o n r a t i o s " ) \r ( \ \
0037060 S E T T Y P E M A S K ( \ \ T
0037100 Y P E N U M B E R F R O M N A M
0037120 E ' R A T I O ) \r
0037140 ( L O G O R \ \ T T . N U M
0037160 B E R P \ \ T T . A T O M ) )
0037200 \r ) \r ( D E F I N E Q \r \r ( 006 004
0037220 C L : N U M E R A T O R 006 001 \r
0037240 ( C L : L A M B D A ( 006 002 C
0037260 L : R A T I O N A L 006 001 ) 006 006 006
0037300 001
0037320
0037340 006 006 ( * | k b r : |
0037360 " 1 2 - J u l - 8 6 1 8 : 0 5
0037400 " ) 006 001 \r
0037420
*
0037500 006 006 ( * | R e t u r n s |
0037520 | t h e | | n u m e r a t o
0037540 r | | o f | \ a \r 006 001
0037560
*
0037640 006 006 | r a
0037660 t i o n a l . | ) 006 001 \r
0037700 ( C L : E T Y P E C A
0037720 S E C L : R A T I O N A L (
0037740 I N T E G E R C L : R A T I O
0037760 N A L ) \r
0040000 ( R A T I O ( R A T
0040020 I O - N U M E R A T O R C L :
0040040 R A T I O N A L ) ) ) ) ) \r \r (
0040060 006 004 C L : D E N O M I N A T O R
0040100 006 001 \r ( C L : L A M B D A
0040120 ( 006 002 C L : R A T I O N A L 006 001
0040140 ) 006 006 006 001
0040160
0040200 006 006 ( * | k b
0040220 r : | " 1 2 - J u l - 8 6 1
0040240 8 : 0 5 " ) 006 001 \r
0040260
*
0040340 006 006 ( * | R e t u
0040360 r n s | | t h e | | d e n o
0040400 m i n a t o r | | o f | \r 006
0040420 001
0040440
*
0040500 006 006
0040520 \ a | r a t i o n a l . | *
0040540 ) 006 001 \r ( C L
0040560 : E T Y P E C A S E C L : R A
0040600 T I O N A L ( I N T E G E R
0040620 1 ) \r
0040640 ( R A T I O ( R A T I O
0040660 - D E N O M I N A T O R C L :
0040700 R A T I O N A L ) ) ) ) ) \r \r (
0040720 006 004 C L : R A T I O N A L P 006 001
0040740 \r ( L A M B D A ( C L : N
0040760 U M B E R ) 006 006 006 001
0041000
*
0041040 006 006 ( * | l m m | " 2 2
0041060 - M a y - 8 6 1 5 : 4 5 " ) 006
0041100 001 \r ( O R ( C L : I N
0041120 T E G E R P C L : N U M B E R
0041140 ) \r ( R A T I O
0041160 - P C L : N U M B E R ) ) ) )
0041200 \r \r ( 006 004 C L : R A T I O N A L
0041220 006 001 \r ( C L : L A M B D A
0041240 ( C L : N U M B E R ) 006 006 006 001
0041260
*
0041320 006 006 ( * | l m m | "
0041340 1 9 - J u n - 8 6 1 4 : 4 2 "
0041360 ) 006 001 \r \r
0041400 006 006 ( * | R
0041420 a t i o n a l | | p r o d u c
0041440 e s | \ a | r a t i o n a l
0041460 | | n u m b e r | | f o r |
0041500 | a n y | | n u m e r i c |
0041520 \r 006 001 006 006
0041540 | a r g u m e n t . | | R a t
0041560 i o n a l | | a s s u m e d |
0041600 | t h a t | | t h e | | f
0041620 l o a t i n g | | p o i n t |
0041640 | i s | \r 006 001
0041660 006 006 | c o m p l e t e l y
0041700 | | a c c u r a t e . | * )
0041720 006 001 \r \r ( C L
0041740 : E T Y P E C A S E C L : N U
0041760 M B E R ( I N T E G E R C L
0042000 : N U M B E R ) \r
0042020 ( 006 002 F L O A
0042040 T 006 001 ( C L : M U L T I P L E
0042060 - V A L U E - B I N D ( F E
0042100 S I G N ) \r
0042120
0042140 ( 006 002 C L : D E C O D
0042160 E - F L O A T 006 001 C L : N U M
0042200 B E R ) \r
0042220
0042240 ( L E T * ( ( P R E C I
0042260 S I O N ( 006 002 C L : F L O A T
0042300 - P R E C I S I O N 006 001 F ) )
0042320 \r
0042340
0042360 ( F ( 006 002 C L : T
0042400 R U N C A T E 006 001 ( 006 002 C L :
0042420 S C A L E - F L O A T 006 001 F
0042440 P R E C I S I O N ) ) ) \r
0042460
*
0042520 ( V ( C L : I F ( M I N
0042540 U S P E ) \r
0042560
*
0042620 ( 006 002 % B U I L D -
0042640 R A T I O 006 001 F ( 006 002 C L :
0042660 A S H 006 001 1 ( 006 002 - 006 001 P
0042700 R E C I S I O N E ) ) ) \r
0042720
*
0042760 ( 006 002
0043000 % B U I L D - R A T I O 006 001 (
0043020 006 002 C L : A S H 006 001 F E ) \r
0043040
*
0043120 ( 006 002 C L : A S H 006
0043140 001 1 P R E C I S I O N ) ) )
0043160 ) ) \r
0043200
0043220 V ) ) ) \r
0043240 ( R A T
0043260 I O C L : N U M B E R ) \r
0043300 ( 006
0043320 002 C O M P L E X 006 001 ( % M A K
0043340 E - C O M P L E X ( 006 002 C L :
0043360 R A T I O N A L 006 001 ( 006 002 C L
0043400 : R E A L P A R T 006 001 C L : N
0043420 U M B E R ) ) \r
0043440
0043460 ( 006 002 C L : R A
0043500 T I O N A L 006 001 ( 006 002 C L : I
0043520 M A G P A R T 006 001 C L : N U M
0043540 B E R ) ) ) ) ) ) ) \r \r ( 006 004 C
0043560 L : R A T I O N A L I Z E 006 001 \r
0043600 ( C L : L A M B D A ( C L
0043620 : N U M B E R ) 006 006 006 001
0043640
*
0043700 006 006 ( * | k b r : | " 1 4
0043720 - A u g - 8 6 1 5 : 0 7 " ) 006
0043740 001 \r \r
0043760 006 006 ( * | R a t
0044000 i o n a l i z e | | d o e s |
0044020 \ a | r a t i o n a l , |
0044040 | b u t | | i t | | a s s u
0044060 m e s | | t h a t | | f l o
0044100 a t s | \r 006 001
0044120 006 006 | a r e | | o n l y |
0044140 | a c c u r a t e | | t o |
0044160 | t h e i r | | p r e c i s
0044200 i o n , | | a n d | | g e n
0044220 e r a t e s | \ a | g o o d
0044240 | \r 006 001 006
0044260 006 | r a t i o n a l | | a p r
0044300 o x i m a t i o n | | o f |
0044320 | t h e m . | * ) 006 001 \r \r
0044340 ( C L : E T Y P E
0044360 C A S E C L : N U M B E R (
0044400 ( O R I N T E G E R R A T I
0044420 O ) \r
0044440
0044460 C L : N U M B E R ) \r
0044500
0044520 ( 006 002 F L O A T 006 001 ( 006 002 % R
0044540 A T I O N A L I Z E - F L O A T
0044560 006 001 C L : N U M B E R ) ) \r
0044600 (
0044620 006 002 C O M P L E X 006 001 ( % M A
0044640 K E - C O M P L E X ( 006 002 C L
0044660 : R A T I O N A L I Z E 006 001 (
0044700 006 002 C L : R E A L P A R T 006 001
0044720 C L : N U M B E R ) ) \r
0044740
0044760 ( 006 002 C
0045000 L : R A T I O N A L I Z E 006 001
0045020 ( 006 002 C L : I M A G P A R T 006 001
0045040 C L : N U M B E R ) ) ) ) ) )
0045060 ) \r \r ( 006 004 % R A T I O - P R I
0045100 N T 006 001 \r ( L A M B D A (
0045120 C L : N U M B E R S T R E A M
0045140 ) 006 006 006 001
0045160
0045200 006 006 ( * | b v m :
0045220 | " 3 - A u g - 8 6 1 6 :
0045240 0 8 " ) 006 001 \r ( L E T
0045260 ( ( T O P ( 006 002 C L : N U M E
0045300 R A T O R 006 001 C L : N U M B E
0045320 R ) ) \r ( B
0045340 O T T O M ( 006 002 C L : D E N O
0045360 M I N A T O R 006 001 C L : N U M
0045400 B E R ) ) ) \r
0045420 ( C O N D \r
0045440 ( ( N O T ( 006 002 | f e t c
0045460 h | 006 001 ( R E A D T A B L E P
0045500 C O M M O N N U M S Y N T A X
0045520 ) 006 002 | o f | 006 001 * R E A D
0045540 T A B L E * ) ) \r
0045560
*
0045640 006 006 ( * | C a n '
0045660 t | | p r i n t | | n i c e
0045700 | | r a t i o s | \r 006 001
0045720
*
0046000 006 006 | t o
0046020 | | o l d | | r e a d | |
0046040 t a b l e s | ) 006 001 \r
0046060 ( P R I N 1 "
0046100 | . " S T R E A M ) \r
0046120 ( \ \ P R I N
0046140 D A T U M ( L I S T ' / T
0046160 O P B O T T O M ) \r
0046200 S
0046220 T R E A M ) ) \r
0046240 ( T ( L E T ( * P R
0046260 I N T - R A D I X * ) \r
0046300 \r
0046320 006 006 ( * | C a n ' t | | h
0046340 a v e | | r a d i x | | s p
0046360 e c i f i e r | | i n | | r
0046400 a t i o , | | b u t | | r a
0046420 t i o | | m u s t | \r 006 001
0046440 006 006 | p r i n
0046460 t | | i n | | c u r r e n t
0046500 | | b a s e . | | N o t e |
0046520 | t h a t | | t h i s | |
0046540 m e a n s | | y o u ' d | |
0046560 b e t t e r | \r 006 001
0046600 006 006 | a l w a y s |
0046620 | r e a d | | a n d | | p r
0046640 i n t | | i n | | s a m e |
0046660 | b a s e , | | s i n c e |
0046700 | r a d i x | | s p e c i f
0046720 i e r s | \r 006 001
0046740 006 006 | c a n ' t | | h e
0046760 l p | | y o u | | h e r e |
0047000 ) 006 001 \r \r
0047020 ( . S P A C E
0047040 C H E C K . S T R E A M ( I
0047060 P L U S 1 ( N C H A R S T
0047100 O P ) \r
0047120
*
0047160 ( N C H A R S B O T T
0047200 O M ) ) ) \r
0047220 ( L E T (
0047240 \ \ T H I S F I L E L I N E L E
0047260 N G T H ) \r
0047300 (
0047320 006 002 D E C L A R E 006 001 ( S P E
0047340 C V A R S \ \ T H I S F I L E
0047360 L I N E L E N G T H ) ) \r
0047400 \r
0047420 006 006 ( * | T u r n | | o
0047440 f f | | l i n e l e n g t h |
0047460 | c h e c k | | j u s t |
0047500 | i n | | c a s e | | t h e
0047520 | N C H A R S | c o u n t |
0047540 \r 006 001 006 006
0047560 | i s | | o f f | | b e c a
0047600 u s e | | o f | | r a d i c
0047620 e s | ) 006 001 \r \r
0047640
0047660 ( \ \ P R I N D A T U M T O
0047700 P S T R E A M ) \r
0047720
0047740 ( P R I N 3 " / " S T
0047760 R E A M ) \r
0050000 (
0050020 \ \ P R I N D A T U M B O T T
0050040 O M S T R E A M ) ) ) ) ) ) \r
0050060 T ) ) \r \r ( 006 004 % B U I
0050100 L D - R A T I O 006 001 \r ( C L
0050120 : L A M B D A ( X Y ) 006 006 006
0050140 001
0050160
0050200 006 006 ( *
0050220 | k b r : | " 8 - M a y -
0050240 8 6 2 2 : 1 3 " ) 006 001 \r
0050260 \r
0050300 006 006 ( * % B U I L D - R A
0050320 T I O | t a k e s | | t w o
0050340 | | i n t e g e r | | a r g
0050360 u m e n t s | | a n d | | b
0050400 u i l d s | | t h e | \r 006 001
0050420 006 006 | r a t
0050440 i o n a l | | n u m b e r |
0050460 | w h i c h | | i s | | t h
0050500 e i r | | q u o t i e n t . |
0050520 \r 006 001 006 006 *
0050540 ) 006 001 \r \r ( C
0050560 L : M U L T I P L E - V A L U E
0050600 - B I N D ( Q R ) \r
0050620 ( 006 002 C
0050640 L : T R U N C A T E 006 001 X Y
0050660 ) \r
0050700 ( C L : I F ( Z E R O P
0050720 R ) \r
0050740 Q \r
0050760
0051000 ( L E T ( ( 006 002 C L : G
0051020 C D 006 001 ( 006 002 % G C D 006 001 X
0051040 Y ) ) ) \r
0051060
0051100 ( C L : U N L E S S ( 006 002
0051120 = 006 001 C L : G C D 1 ) \r
0051140
*
0051200 ( P R O G N ( S E T Q X
0051220 ( 006 002 / 006 001 X C L : G C D )
0051240 ) \r
0051260
0051300 ( S E T
0051320 Q Y ( 006 002 / 006 001 Y C L :
0051340 G C D ) ) ) ) \r
0051360
0051400 ( C L : I F ( M I N U
0051420 S P Y ) \r
0051440
0051460 ( % M A K E -
0051500 R A T I O ( 006 002 - 006 001 X ) \r
0051520
*
0051560 ( 006 002 - 006 001
0051600 Y ) ) \r
0051620
0051640 ( % M A K E - R
0051660 A T I O X Y ) ) ) ) ) ) ) \r
0051700 \r ( 006 004 % R A T I O N A L I Z E
0051720 - F L O A T 006 001 \r ( L A M B
0051740 D A ( X ) 006 006 006 001
0051760
*
0052020 006 006 ( * |
0052040 k b r : | " 2 0 - A u g - 8 6
0052060 1 9 : 3 6 " ) 006 001 \r
0052100
*
0052160 006 006 ( * | P r
0052200 o d u c e | \ a | r a t i o
0052220 n a l | \r 006 001
0052240
*
0052320 006 006 | a p p r o x i m
0052340 a t i n g | X . * ) 006 001 \r
0052360 ( P R O G ( S I G N X
0052400 N U M X D E N E X P T R
0052420 F O L D N U M O L D D E N
0052440 N U M D E N ) \r
0052460 \r 006 006
0052500 ( * * | T h i s | | r o u
0052520 t i n e | | p r e s u p p o s
0052540 e s | | f a m i l i a r i t y
0052560 | | w i t h | | t o p i c s
0052600 | | i n | | n u m b e r |
0052620 \r 006 001 006 006 |
0052640 t h e o r y | | a n d | I E
0052660 E E F L O A T P | r e p r e
0052700 s e n t a t i o n . | \r 006 001
0052720 006 006 | T h e |
0052740 | a l g o r i t h m | | u s e
0052760 s | \ a | s t a n d a r d |
0053000 | m a t h e m a t i c a l |
0053020 | t e c h n i q u e | | f o r
0053040 | \r 006 001 006
0053060 006 | a p p r o x i m a t i n g |
0053100 \ a | r e a l | | v a l u
0053120 e d | | n u m b e r , | | b
0053140 u t | | i n | | v e r y |
0053160 | s o p h i s t i c a t e d |
0053200 \r 006 001 006 006 |
0053220 f o r m | | m o r e | | a m
0053240 e n a b l e | | t o | | t h
0053260 e | | c o m p u t e r | | a
0053300 n d | | t h e | | n a t u r
0053320 e | | o f | I E E E \r 006 001
0053340 006 006 F L O A
0053360 T P \ s | a n d | | i s |
0053400 | n o t | | a n | | a l g o
0053420 r i t h m | | y o u | | a r
0053440 e | | l i k e l y | | t o |
0053460 | f i n d | \r 006 001
0053500 006 006 | p u b l i s h e
0053520 d | | a n y w h e r e . | |
0053540 W a r n i n g | | t o | | t
0053560 h e | | w i s e : | I \ f
0053600 | y o u | | d o n ' t | | k
0053620 n o w | \r 006 001
0053640 006 006 | a n y t h i n g | |
0053660 a b o u t | | t h e | | t h
0053700 e o r y | | o f | | c o n t
0053720 i n u e d | | f r a c t i o n
0053740 s , | | t h e n | I \r 006 001
0053760 006 006 | s u g
0054000 g e s t | | y o u | | l o o
0054020 k | | b u t | | d o n ' t |
0054040 | t o u c h . | \r 006 001
0054060 006 006 * ) 006 001 \r
0054100 \r
0054120 006 006 ( * * | F i r s t |
0054140 | o f | | a l l , | X |
0054160 i s | | r a n g e | | r e d
0054200 u c e d | | t o | | t h e |
0054220 | i n t e r v a l | \r 006 001
0054240 006 006 ( ( S Q R T
0054260 . 5 ) ( S Q R T 2 ) ) |
0054300 e x c l u d i n g | ( S Q R T
0054320 2 ) | T h i s | | s t r a
0054340 t e g y | | h a s | | t h e
0054360 | \r 006 001 006
0054400 006 | p r o p e r t y | | t h a
0054420 t | F L O A T P \ s | d i f
0054440 f e r i n g | | o n l y | |
0054460 b y | | s i g n | | a n d |
0054500 \ a | p o w e r | | o f |
0054520 \r 006 001 006 006
0054540 | t w o | | r a t i o n a l i
0054560 z e | | i n t o | | r a t i
0054600 o n a l s | | d i f f e r i n
0054620 g | | o n l y | | b y | |
0054640 s i g n | | a n d | \ a \r
0054660 006 001 006 006 | p
0054700 o w e r | | o f | | t w o .
0054720 | | T h e | | c h o i c e |
0054740 | o f | | i n t e r v a l |
0054760 \r 006 001 006 006 (
0055000 ( S Q R T . 5 ) ( S Q R T
0055020 2 ) ) | v e r s u s | | a n
0055040 o t h e r | | i n t e r v a l
0055060 | | s u c h | | a s | \r 006 001
0055100 006 006 ( . 5
0055120 1 ) | i s | | d u e | | t
0055140 o | | o u r | | w a n t i n
0055160 g | | t h e r e | | t o |
0055200 | b e | | r o u g h l y | |
0055220 t h e | | s a m e | \r 006 001
0055240 006 006 | n u m b
0055260 e r | | o f | | s i g n i f
0055300 i c a n t | | b i t s | | i
0055320 n | | t h e | | n u m e r a
0055340 t o r | | a s | | i n | |
0055360 t h e | \r 006 001
0055400 006 006 | d e n o m i n a t o r
0055420 | | o f | | t h e | | a n
0055440 s w e r | | t h a t | | i s
0055460 | | r e t u r n e d . | \r 006 001
0055500 006 006 | H e r
0055520 e , | | s i g n i f i c a n t
0055540 | | b i t s | | i s | | t
0055560 a k e n | | t o | | m e a n
0055600 | | t h e | | n u m b e r |
0055620 | o f | \r 006 001
0055640 006 006 | b i t s | | i n |
0055660 | t h e | | r e s u l t s |
0055700 | r e t u r n e d | | b y |
0055720 | t h e | | c o n t i n u e
0055740 d | | f r a c t i o n | \r 006
0055760 001 006 006 | a p
0056000 p r o x i m a t i o n | | a n
0056020 d | | e x c l u d e s | | t
0056040 h e | | b i t s | | r e s u
0056060 l t i n g | | f r o m | | m
0056100 u l t i p l y i n g | \r 006 001
0056120 006 006 | b y |
0056140 | t h e | | p o w e r | | o
0056160 f | | t w o . | * ) 006 001 \r \r
0056200 ( P R O G N
0056220
*
0056260 006 006 (
0056300 * | G e t | S I G N X N U
0056320 M X D E N | a n d | E X P
0056340 T \r 006 001
0056360
*
0056440 006 006 | f o r | X . * ) 006
0056460 001 \r
0056500 ( C L : M U L T I P L E -
0056520 V A L U E - S E T Q ( X N U M
0056540 E X P T S I G N ) \r
0056560
0056600 ( 006 002 C L : I N T E G E
0056620 R - D E C O D E - F L O A T 006 001
0056640 X ) ) \r
0056660 ( C O N D \r
0056700
0056720 ( ( E Q X N U M 0 )
0056740
0056760 006 006 ( * I \
0057000 n | c a s e | X = 0 \ ,
0057020 | j u s t | | r e t u r n |
0057040 \r 006 001
0057060
*
0057140 006 006 0 * ) 006 001 \r
0057160 (
0057200 R E T U R N 0 ) ) )
0057220
0057240 006 006 ( * 2 4 |
0057260 b e c a u s e | F L O A T P \
0057300 s | h a v e | 2 4 \r 006 001
0057320
*
0057400 006 006 | b
0057420 i t | | m a n t i s s a s . |
0057440 * ) 006 001 \r
0057460 ( S E T Q X D E
0057500 N ( C O N S T A N T ( E X P
0057520 T 2 2 4 ) ) ) \r
0057540 ( S E T Q
0057560 E X P T ( 006 002 + 006 001 E X P
0057600 T 2 4 ) ) \r
0057620 ( S E T Q R
0057640 ( 006 002 C L : D E C O D E - F L O
0057660 A T 006 001 X ) ) \r
0057700 ( C O N D \r
0057720
0057740 ( ( 006 002 < 006 001 X N U M
0057760 1 1 8 6 3 2 8 3 )
0060000
0060020 006 006 ( * 1 1 8 6 3 2 8 3 =
0060040 ( S Q R T . 5 ) | m a n t
0060060 i s s a . | \r 006 001
0060100
*
0060160 006 006 * ) 006 001 \r
0060200
0060220 ( S E T Q X D E N ( L R
0060240 S H X D E N 1 ) ) \r
0060260
0060300 ( S E T Q E X P T ( 006 002 C
0060320 L : 1 - 006 001 E X P T ) ) \r
0060340
0060360 ( S E T Q R ( 006 002 C L
0060400 : * 006 001 2 R ) ) ) ) \r
0060420 \r
0060440 006 006 ( * A \ t | t h i s
0060460 | | p o i n t , | X = (
0060500 C L : * ( / X N U M X D E
0060520 N ) \r 006 001 006
0060540 006 ( E X P T 2 E X P T ) )
0060560 | a n d | ( / X N U M X D
0060600 E N ) | i s | | i n | | t
0060620 h e | | i n t e r v a l | \r 006
0060640 001 006 006 ( ( S
0060660 Q R T . 5 ) ( S Q R T 2 )
0060700 ) * ) 006 001 \r \r
0060720 ) \r
0060740 ( S E T Q O L D N U
0060760 M 1 ) \r (
0061000 S E T Q O L D D E N 0 ) \r
0061020 ( S E T Q N
0061040 U M 0 ) \r
0061060 ( S E T Q D E N 1 ) \r
0061100 C F L O O P \r
0061120
*
0061200 006 006 ( * | C o n
0061220 t i n u e d | | f r a c t i o
0061240 n | \r 006 001
0061260
*
0061340 006 006 | a p p r o x i m a t
0061360 i o n | | l o o p . | \r 006 001
0061400
*
0061460 006 006 * )
0061500 006 001 \r ( C O
0061520 N D \r
0061540 ( ( A N D ( N O T ( E Q D
0061560 E N 0 ) ) \r
0061600 ( 006 002 = 006 001
0061620 ( F Q U O T I E N T N U M
0061640 D E N ) \r
0061660 R ) ) \r
0061700 ( C O
0061720 N D \r
0061740 ( ( 006 002 > 006 001 E X P T
0061760 0 ) \r
0062000 ( S E T Q N U M
0062020 ( 006 002 C L : A S H 006 001 N U M
0062040 E X P T ) ) ) \r
0062060 ( ( 006 002 < 006 001
0062100 E X P T 0 ) \r
0062120 ( S E T Q
0062140 D E N ( 006 002 C L : A S H 006 001
0062160 D E N ( 006 002 - 006 001 E X P T
0062200 ) ) ) ) ) \r
0062220 ( R E T U R N ( 006 002 /
0062240 006 001 ( 006 002 C L : * 006 001 S I G
0062260 N N U M ) \r
0062300
0062320 D E N ) ) ) ) \r
0062340 ( 006 002 | s w a p | 006 001 X N
0062360 U M X D E N ) \r
0062400 ( C L : M U L T I P L E -
0062420 V A L U E - S E T Q ( F X N
0062440 U M ) \r
0062460 ( 006 002 C L : T R U N C
0062500 A T E 006 001 X N U M X D E N )
0062520 ) \r ( S E T
0062540 Q N U M ( 006 002 + 006 001 O L D
0062560 N U M ( 006 002 C L : * 006 001 F
0062600 ( S E T Q O L D N U M N U M
0062620 ) ) ) ) \r (
0062640 S E T Q D E N ( 006 002 + 006 001
0062660 O L D D E N ( 006 002 C L : * 006 001
0062700 F ( S E T Q O L D D E N
0062720 D E N ) ) ) ) \r
0062740 ( G O C F L O O P ) ) ) )
0062760 \r \r ( 006 004 % R A T I O * 006 001 \r
0063000 ( C L : L A M B D A ( X Y
0063020 ) 006 006 006 001
0063040
*
0063100 006 006 ( * | k b r : | " 8 -
0063120 A p r - 8 6 1 6 : 1 0 " ) 006 001
0063140 \r \r
0063160 006 006 ( * % R A T I
0063200 O * | d o e s | \ a | r a
0063220 t i o | | t o | | r a t i o
0063240 | | m u l t i p l i c a t i o
0063260 n . | \r 006 001
0063300 006 006 % R A T I O / | d o e s |
0063320 \ a | r a t i o | | t o |
0063340 | r a t i o | | d i v i s i
0063360 o n . | \r 006 001
0063400 006 006 * ) 006 001 \r \r
0063420 ( L E T * ( ( N U M X (
0063440 006 002 C L : N U M E R A T O R 006 001
0063460 X ) ) \r
0063500 ( N U M Y ( 006 002 C L
0063520 : N U M E R A T O R 006 001 Y ) )
0063540 \r
0063560 ( D E N X ( 006 002 C L : D E N
0063600 O M I N A T O R 006 001 X ) ) \r
0063620 (
0063640 D E N Y ( 006 002 C L : D E N O M
0063660 I N A T O R 006 001 Y ) ) ) \r
0063700 ( 006 002
0063720 % R A T I O - T I M E S - Q U O
0063740 T I E N T 006 001 N U M X D E N
0063760 X N U M Y D E N Y ) ) ) ) \r
0064000 \r ( 006 004 % R A T I O / 006 001 \r
0064020 ( C L : L A M B D A ( X Y )
0064040 006 006 006 001
0064060
0064100 006
0064120 006 ( * | k b r : | " 8 - A
0064140 p r - 8 6 1 4 : 0 2 " ) 006 001 \r
0064160 ( L E T * (
0064200 ( N U M X ( 006 002 C L : N U M E
0064220 R A T O R 006 001 X ) ) \r
0064240 ( N U M
0064260 Y ( 006 002 C L : N U M E R A T O
0064300 R 006 001 Y ) ) \r
0064320 ( D E N X ( 006
0064340 002 C L : D E N O M I N A T O R 006
0064360 001 X ) ) \r
0064400 ( D E N Y ( 006 002 C
0064420 L : D E N O M I N A T O R 006 001
0064440 Y ) ) ) \r
0064460 ( C L : I F ( M I N U
0064500 S P N U M Y ) \r
0064520 (
0064540 006 002 % R A T I O - T I M E S - Q
0064560 U O T I E N T 006 001 N U M X D
0064600 E N X ( 006 002 - 006 001 D E N Y )
0064620 \r
0064640 ( 006
0064660 002 - 006 001 N U M Y ) ) \r
0064700
0064720 ( 006 002 % R A T I O - T I M E
0064740 S - Q U O T I E N T 006 001 N U M
0064760 X D E N X D E N Y N U M Y
0065000 ) ) ) ) ) \r \r ( 006 004 % R A T I O
0065020 - T I M E S - Q U O T I E N T 006
0065040 001 \r ( C L : L A M B D A (
0065060 H 1 K 1 H 2 K 2 ) 006 006 006 001
0065100
*
0065140 006 006 ( * | k b r : | "
0065160 8 - A p r - 8 6 1 6 : 4 0 "
0065200 ) 006 001 \r ( L E
0065220 T ( ( G C D H 1 K 2 ( 006 002 %
0065240 G C D 006 001 H 1 K 2 ) ) \r
0065260 ( G C
0065300 D H 2 K 1 ( 006 002 % G C D 006 001
0065320 H 2 K 1 ) ) ) \r
0065340 ( C L : U N L E S
0065360 S ( 006 002 = 006 001 G C D H 1 K 2
0065400 1 ) \r
0065420 ( P R O G N
0065440 ( S E T Q H 1 ( 006 002 / 006 001
0065460 H 1 G C D H 1 K 2 ) ) \r
0065500
0065520 ( S E T Q K
0065540 2 ( 006 002 / 006 001 K 2 G C D H
0065560 1 K 2 ) ) ) ) \r
0065600 ( C L : U N L E S S
0065620 ( 006 002 = 006 001 G C D H 2 K 1
0065640 1 ) \r
0065660 ( P R O G N (
0065700 S E T Q H 2 ( 006 002 / 006 001 H
0065720 2 G C D H 2 K 1 ) ) \r
0065740
0065760 ( S E T Q K 1
0066000 ( 006 002 / 006 001 K 1 G C D H 2
0066020 K 1 ) ) ) ) ) \r
0066040 ( L E T ( ( H ( 006 002 C L :
0066060 * 006 001 H 1 H 2 ) ) \r
0066100 ( K ( 006
0066120 002 C L : * 006 001 K 1 K 2 ) ) )
0066140 \r (
0066160 C L : I F ( 006 002 = 006 001 K 1
0066200 ) \r
0066220 H \r
0066240 ( %
0066260 M A K E - R A T I O H K ) )
0066300 ) ) ) \r \r ( 006 004 % R A T I O + 006
0066320 001 \r ( C L : L A M B D A (
0066340 X Y ) \r \r
0066360 006 006 ( * |
0066400 % s p - r a t i o + | | d o e
0066420 s | \ a | r a t i o | | t
0066440 o | | r a t i o | | a d d i
0066460 t i o n . | \r 006 001
0066500 006 006 | % s p - r a t i o -
0066520 | | d o e s | \ a | r a t
0066540 i o | | t o | | r a t i o |
0066560 | s u b t r a c t i o n . | \r
0066600 006 001 006 006 V M
0066620 \ : T * ) 006 001 \r \r
0066640 ( 006 002 % R A T I O - P L U
0066660 S - D I F F E R E N C E 006 001 X
0066700 Y N I L ) ) ) \r \r ( 006 004 % R
0066720 A T I O - 006 001 \r ( C L : L A
0066740 M B D A ( X Y ) \r
0066760 ( 006 002 % R A T I O - P L
0067000 U S - D I F F E R E N C E 006 001
0067020 X Y T ) ) ) \r \r ( 006 004 % R A
0067040 T I O - P L U S - D I F F E R E
0067060 N C E 006 001 \r ( C L : L A M B
0067100 D A ( X Y D I F F E R E N
0067120 C E F L G ) 006 006 006 001
0067140
0067160 006 006 ( * | k b r
0067200 : | " 8 - M a y - 8 6 2 1
0067220 : 0 8 " ) 006 001 \r
0067240 ( L E T * ( ( H 1 ( 006 002 C
0067260 L : N U M E R A T O R 006 001 X )
0067300 ) \r
0067320 ( K 1 ( 006 002 C L : D E N O
0067340 M I N A T O R 006 001 X ) ) \r
0067360 ( H
0067400 2 ( 006 002 C L : N U M E R A T O
0067420 R 006 001 Y ) ) \r
0067440 ( K 2 ( 006 002 C
0067460 L : D E N O M I N A T O R 006 001
0067500 Y ) ) \r
0067520 ( D 1 ( 006 002 % G C D 006
0067540 001 K 1 K 2 ) ) ) \r
0067560 ( C L : W H
0067600 E N D I F F E R E N C E F L G
0067620 ( S E T Q H 2 ( 006 002 - 006 001
0067640 H 2 ) ) ) \r
0067660 ( C L : I F ( 006 002
0067700 = 006 001 D 1 1 ) \r
0067720
0067740 ( % M A K E - R A T I O ( 006 002
0067760 + 006 001 ( 006 002 C L : * 006 001 H 1
0070000 K 2 ) \r
0070020
0070040 ( 006 002 C L
0070060 : * 006 001 H 2 K 1 ) ) \r
0070100
0070120 ( 006 002 C L :
0070140 * 006 001 K 1 K 2 ) ) \r
0070160
0070200 ( L E T * ( ( K 1 / D 1
0070220 ( 006 002 / 006 001 K 1 D 1 ) ) \r
0070240
0070260 ( T E E
0070300 ( 006 002 + 006 001 ( 006 002 C L : * 006
0070320 001 H 1 ( 006 002 / 006 001 K 2 D
0070340 1 ) ) \r
0070360
0070400 ( 006 002 C L : *
0070420 006 001 H 2 K 1 / D 1 ) ) ) \r
0070440
0070460 ( D 2
0070500 ( 006 002 % G C D 006 001 T E E D 1
0070520 ) ) \r
0070540
0070560 ( K 2 / D 2 K 2 ) ) \r
0070600
0070620 ( C L : U N L E
0070640 S S ( 006 002 = 006 001 D 2 1 ) \r
0070660
*
0070720 ( P R O G N ( S E T Q
0070740 K 2 / D 2 ( 006 002 / 006 001 K 2
0070760 D 2 ) ) \r
0071000
0071020 (
0071040 S E T Q T E E ( 006 002 / 006 001
0071060 T E E D 2 ) ) ) ) \r
0071100
0071120 ( C L : I F ( 006
0071140 002 = 006 001 K 1 / D 1 1 K 2 /
0071160 D 2 ) \r
0071200
0071220 T E E \r
0071240
0071260 ( %
0071300 M A K E - R A T I O T E E (
0071320 006 002 C L : * 006 001 K 1 / D 1 K
0071340 2 / D 2 ) ) ) ) ) ) ) ) \r \r ( 006
0071360 004 % R A T I O - I N T E G E R *
0071400 006 001 \r ( C L : L A M B D A
0071420 ( X Y ) 006 006 006 001
0071440
*
0071500 006 006 ( * | k b r : |
0071520 " 8 - A p r - 8 6 2 0 : 1 9
0071540 " ) 006 001 \r
0071560
*
0071640 006 006 ( * % R A T I O - I N
0071660 T E G E R * | m u l t i p l i
0071700 e s | \ a \r 006 001
0071720
*
0072000 006 006 | r a t i o |
0072020 | b y | | a n | | i n t e
0072040 g e r . | \r 006 001
0072060
*
0072140 006 006 * ) 006 001 \r
0072160 ( C L : I F ( Z E R
0072200 O P Y ) \r
0072220 0 \r
0072240 ( L E T * ( (
0072260 D E N ( 006 002 C L : D E N O M I
0072300 N A T O R 006 001 X ) ) \r
0072320
0072340 ( 006 002 C L : G C D 006 001 (
0072360 006 002 % G C D 006 001 D E N Y ) )
0072400 ) \r
0072420 ( C L : U N L E
0072440 S S ( 006 002 = 006 001 C L : G C D
0072460 1 ) \r
0072500
0072520 ( P R O G N ( S E T Q Y
0072540 ( 006 002 / 006 001 Y C L : G C D )
0072560 ) \r
0072600
0072620 ( S E T Q D E N
0072640 ( 006 002 / 006 001 D E N C L : G C
0072660 D ) ) ) ) \r
0072700 ( C L :
0072720 I F ( 006 002 = 006 001 D E N 1 )
0072740 \r
0072760 ( 006
0073000 002 C L : * 006 001 ( 006 002 C L : N U
0073020 M E R A T O R 006 001 X ) \r
0073040
*
0073100 Y ) \r
0073120
0073140 ( % M A K E - R A T I O ( 006 002
0073160 C L : * 006 001 ( 006 002 C L : N U M
0073200 E R A T O R 006 001 X ) \r
0073220
*
0073260 Y ) \r
0073300
*
0073340 D E N ) ) ) ) ) ) \r \r ( 006
0073360 004 % R A T I O - I N T E G E R +
0073400 006 001 \r ( C L : L A M B D A
0073420 ( X Y ) 006 006 006 001
0073440
*
0073500 006 006 ( * | l m m | "
0073520 2 2 - M a y - 8 6 1 5 : 4 1 "
0073540 ) 006 001 \r
0073560
*
0073640 006 006 ( * % R A T I O - I N T
0073660 E G E R + | a d d s | | a n
0073700 | \r 006 001
0073720
*
0074000 006 006 | i n t e g e r | | t
0074020 o | \ a | r a t i o . | \r 006
0074040 001
0074060
*
0074120 006 006
0074140 * ) 006 001 \r ( L
0074160 E T ( ( D E N X ( R A T I O
0074200 - D E N O M I N A T O R X ) )
0074220 ) \r
0074240 ( % M A K E - R A T I O ( 006 002
0074260 + 006 001 ( R A T I O - N U M E R
0074300 A T O R X ) \r
0074320
0074340 ( 006 002 C L : * 006 001
0074360 D E N X Y ) ) \r
0074400 D E
0074420 N X ) ) ) ) \r \r ( 006 004 % R A T I
0074440 O - I N T E G E R - 006 001 \r (
0074460 C L : L A M B D A ( X Y ) 006
0074500 006 006 001
0074520
0074540 006 006
0074560 ( * | l m m | " 2 2 - M a y
0074600 - 8 6 1 5 : 4 1 " ) 006 001 \r
0074620
*
0074700 006 006 ( *
0074720 % R A T I O - I N T E G E R -
0074740 | s u b t r a c t s | | a n |
0074760 \r 006 001
0075000
*
0075060 006 006 | i n t e g e r | | f r
0075100 o m | \ a | r a t i o . | \r
0075120 006 001
0075140
*
0075200 006
0075220 006 * ) 006 001 \r (
0075240 L E T ( ( D E N X ( R A T I
0075260 O - D E N O M I N A T O R X )
0075300 ) ) \r
0075320 ( % M A K E - R A T I O ( 006
0075340 002 - 006 001 ( R A T I O - N U M E
0075360 R A T O R X ) \r
0075400
0075420 ( 006 002 C L : * 006 001
0075440 D E N X Y ) ) \r
0075460 D
0075500 E N X ) ) ) ) \r ) \r \r \r \r 006 004 (
0075520 * \ ; " S e c t i o n 2 .
0075540 1 . 4 C o m p l e x N u m b
0075560 e r s . " ) 006 001 \r \r ( D E F S T
0075600 R U C T ( 006 002 C O M P L E X 006
0075620 001 ( : P R E D I C A T E C L
0075640 : C O M P L E X P ) \r
0075660 (
0075700 : C O N S T R U C T O R % M A
0075720 K E - C O M P L E X ( C L : R
0075740 E A L P A R T C L : I M A G P
0075760 A R T ) ) \r
0076000 ( : P R I N
0076020 T - F U N C T I O N % C O M P
0076040 L E X - P R I N T ) ) ( C L :
0076060 R E A L P A R T : R E A D - O
0076100 N L Y ) ( C L : I M A G P A R
0076120 T \r
0076140
*
0076240 : R E A D - O
0076260 N L Y ) ) \r \r ( D E C L A R E \
0076300 : D O N T E V A L @ L O A D
0076320 D O C O P Y \r ( * \ ; " M
0076340 a k e i t s o t h a t C
0076360 O M P L E X i s N U M B E R
0076400 P " ) \r ( \ \ S E T T Y P E M A
0076420 S K ( \ \ T Y P E N U M B E R
0076440 F R O M N A M E ' C O M P L E
0076460 X ) \r ( L O G O R
0076500 \ \ T T . N U M B E R P \ \
0076520 T T . A T O M ) ) \r ) \r ( D E F
0076540 I N E Q \r \r ( 006 004 C O M P L E X
0076560 006 001 \r ( C L : L A M B D A
0076600 ( 006 002 C L : R E A L P A R T 006 001
0076620 & O P T I O N A L ( 006 002 C L
0076640 : I M A G P A R T 006 001 0 ) ) 006
0076660 006 006 001 006 006 ( *
0076700 | k b r : | " 9 - J u l -
0076720 8 6 2 1 : 0 5 " ) 006 001 \r
0076740 \r
0076760 006 006 ( * | B u i l d s |
0077000 \ a | c o m p l e x | | n u
0077020 m b e r | | f r o m | | t h
0077040 e | | s p e c i f i e d | |
0077060 c o m p o n e n t s . | \r 006 001
0077100 006 006 | N o t e
0077120 : | C L : I M A G P A R T =
0077140 0 . 0 | o r | | f l o a t
0077160 i n g | C L : R E A L P A R T
0077200 | i m p l i e s | | t h a t
0077220 | | w e | \r 006 001
0077240 006 006 | m u s t | | b u
0077260 i l d | \ a | c o m p l e x
0077300 | | n o t | \ a | r e a l
0077320 | | a c c o r d i n g | | t
0077340 o | | t h e | | m a n u a l
0077360 | \r 006 001 006
0077400 006 | w h i l e | C L : I M A G
0077420 P A R T = 0 | a n d | |
0077440 r a t i o n a l | C L : R E A
0077460 L P A R T | i m p l i e s |
0077500 | t h a t | | w e | \r 006 001
0077520 006 006 | b u i l
0077540 d | \ a | r e a l . | | S
0077560 t r a n g e , | | b u t | |
0077600 t h a t ' s | | t h e | | w
0077620 a y | | G u y | | S t e e l
0077640 e | | w a n t s | \r 006 001
0077660 006 006 | i t . |
0077700 * ) 006 001 \r \r (
0077720 C T Y P E C A S E C L : R E A
0077740 L P A R T ( 006 002 C L : R A T I
0077760 O N A L 006 001 ( C L : I F ( E
0100000 Q L C L : I M A G P A R T 0
0100020 ) \r
0100040
*
0100100 C L : R E A L P A R
0100120 T \r
0100140
*
0100200 ( C T Y P E C A S E
0100220 C L : I M A G P A R T ( 006 002
0100240 C L : R A T I O N A L 006 001 ( \r
0100260
*
0100400 % M A K E - C O
0100420 M P L E X \r
0100440
*
0100540 C
0100560 L : R E A L P A R T \r
0100600
*
0100720 C L : I M A G P A R T
0100740 ) \r
0100760
*
0101060 ) \r
0101100
*
0101160 ( 006 002 F L O A T 006 001 ( % M A
0101200 K E - C O M P L E X ( 006 002 F L
0101220 O A T 006 001 C L : R E A L P A R
0101240 T ) \r
0101260
*
0101340 C L : I
0101360 M A G P A R T ) ) ) ) ) \r
0101400 ( 006 002
0101420 F L O A T 006 001 ( % M A K E - C
0101440 O M P L E X C L : R E A L P A
0101460 R T ( 006 002 F L O A T 006 001 C L
0101500 : I M A G P A R T ) ) ) ) ) ) \r
0101520 \r ( 006 004 C L : R E A L P A R T 006
0101540 001 \r ( C L : L A M B D A (
0101560 C L : N U M B E R ) 006 006 006 001
0101600
*
0101640 006 006 ( * | l m m | " 2
0101660 2 - M a y - 8 6 1 6 : 1 9 " )
0101700 006 001 \r ( C L :
0101720 E T Y P E C A S E C L : N U M
0101740 B E R ( 006 002 C O M P L E X 006 001
0101760 ( C O M P L E X - R E A L P A
0102000 R T C L : N U M B E R ) ) \r
0102020 (
0102040 C L : N U M B E R C L : N U M
0102060 B E R ) ) ) ) \r \r ( 006 004 C L : I
0102100 M A G P A R T 006 001 \r ( C L :
0102120 L A M B D A ( C L : N U M B E
0102140 R ) 006 006 006 001
0102160
0102200 006 006 ( *
0102220 | l m m | " 2 2 - M a y - 8 6
0102240 1 6 : 5 6 " ) 006 001 \r
0102260 ( C L : E T Y P E C A S
0102300 E C L : N U M B E R ( 006 002 C
0102320 O M P L E X 006 001 ( C O M P L E
0102340 X - I M A G P A R T C L : N U
0102360 M B E R ) ) \r
0102400 ( 006 002 F L O A T 006
0102420 001 0 . 0 ) \r
0102440 ( C L : N U M B E
0102460 R 0 ) ) ) ) \r \r ( 006 004 % C O M
0102500 P L E X + 006 001 \r ( C L : L A
0102520 M B D A ( X Y )
0102540
*
0102600 006 006 ( * | a d d i t
0102620 i o n | * ) 006 001 \r
0102640 ( 006 002 C O M P L E X 006 001
0102660 ( 006 002 + 006 001 ( 006 002 C L : R E A
0102700 L P A R T 006 001 X ) \r
0102720
0102740 ( 006 002 C L : R E A L P A R T 006 001
0102760 Y ) ) \r
0103000 ( 006 002 + 006 001 ( 006 002 C
0103020 L : I M A G P A R T 006 001 X ) \r
0103040
0103060 ( 006 002 C L : I M A G P A R
0103100 T 006 001 Y ) ) ) ) ) \r \r ( 006 004 %
0103120 C O M P L E X - 006 001 \r ( C L
0103140 : L A M B D A ( X Y )
0103160
*
0103220 006 006 ( * | s u
0103240 b t r a c t i o n | * ) 006 001 \r
0103260 ( 006 002 C O M P
0103300 L E X 006 001 ( 006 002 - 006 001 ( 006 002
0103320 C L : R E A L P A R T 006 001 X )
0103340 \r
0103360 ( 006 002 C L : R E A L
0103400 P A R T 006 001 Y ) ) \r
0103420 ( 006 002 - 006
0103440 001 ( 006 002 C L : I M A G P A R T
0103460 006 001 X ) \r
0103500 ( 006 002 C L : I
0103520 M A G P A R T 006 001 Y ) ) ) ) )
0103540 \r \r ( 006 004 % C O M P L E X * 006 001
0103560 \r ( C L : L A M B D A ( Z
0103600 1 Z 2 )
0103620
0103640 006 006
0103660 ( * | m u l t i p l i c a t i
0103700 o n | * ) 006 001 \r
0103720 ( L E T * ( ( R 1 ( 006 002
0103740 C L : R E A L P A R T 006 001 Z 1
0103760 ) ) \r
0104000 ( C 1 ( 006 002 C L : I M A
0104020 G P A R T 006 001 Z 1 ) ) \r
0104040 ( R 2
0104060 ( 006 002 C L : R E A L P A R T 006
0104100 001 Z 2 ) ) \r
0104120 ( C 2 ( 006 002 C L
0104140 : I M A G P A R T 006 001 Z 2 ) )
0104160 ) \r
0104200 ( 006 002 C O M P L E X 006 001 ( 006
0104220 002 - 006 001 ( 006 002 C L : * 006 001 R
0104240 1 R 2 ) \r
0104260
0104300 ( 006 002 C L : * 006 001 C 1 C 2
0104320 ) ) \r
0104340 ( 006 002 + 006 001
0104360 ( 006 002 C L : * 006 001 C 1 R 2 )
0104400 \r
0104420 ( 006 002 C L :
0104440 * 006 001 R 1 C 2 ) ) ) ) ) ) \r
0104460 \r ( 006 004 % C O M P L E X / 006 001 \r
0104500 ( C L : L A M B D A ( Z 1
0104520 Z 2 ) 006 006 006 001
0104540
*
0104600 006 006 ( * | k b r : | " 2 3
0104620 - A p r - 8 6 0 0 : 0 5 " ) 006
0104640 001 \r
0104660
*
0104720 006
0104740 006 ( * | c o m p l e x | | d
0104760 i v i s i o n | * ) 006 001 \r
0105000 ( L E T * ( ( R
0105020 1 ( 006 002 C L : R E A L P A R T
0105040 006 001 Z 1 ) ) \r
0105060 ( C 1 ( 006 002 C
0105100 L : I M A G P A R T 006 001 Z 1 )
0105120 ) \r
0105140 ( R 2 ( 006 002 C L : R E A L
0105160 P A R T 006 001 Z 2 ) ) \r
0105200 ( C 2
0105220 ( 006 002 C L : I M A G P A R T 006 001
0105240 Z 2 ) ) \r
0105260 ( C O N S 1 ( 006 002
0105300 C L : * 006 001 R 2 R 2 ) ) \r
0105320 (
0105340 C O N S 2 ( 006 002 C L : * 006 001
0105360 C 2 C 2 ) ) \r
0105400 ( M U L T 1 (
0105420 006 002 C L : * 006 001 R 1 R 2 ) )
0105440 ) \r
0105460 ( 006 002 C O M P L E X 006 001 ( 006
0105500 002 / 006 001 ( 006 002 + 006 001 M U L T
0105520 1 ( 006 002 C L : * 006 001 C 1 C
0105540 2 ) ) \r
0105560 (
0105600 006 002 + 006 001 C O N S 1 C O N S
0105620 2 ) ) \r
0105640 ( 006 002 / 006 001
0105660 ( 006 002 - 006 001 ( 006 002 C L : * 006
0105700 001 C 1 R 2 ) \r
0105720
0105740 ( 006 002 C L : * 006 001 R
0105760 1 C 2 ) ) \r
0106000
0106020 ( 006 002 + 006 001 C O N S 1 C O N
0106040 S 2 ) ) ) ) ) ) \r \r ( 006 004 % C O
0106060 M P L E X - A B S 006 001 \r ( C
0106100 L : L A M B D A ( Z ) 006 006 006 001
0106120
*
0106160 006 006 (
0106200 * | l m m | " 2 7 - J u n -
0106220 8 6 2 2 : 3 6 " ) 006 001 \r
0106240 ( L E T ( ( X (
0106260 C O M P L E X - R E A L P A R T
0106300 Z ) ) \r
0106320 ( Y ( C O M P L E X -
0106340 I M A G P A R T Z ) ) ) \r
0106360 ( C L :
0106400 S Q R T ( 006 002 + 006 001 ( 006 002 C
0106420 L : * 006 001 X X ) \r
0106440
0106460 ( 006 002 C L : * 006 001 Y
0106500 Y ) ) ) ) ) ) \r \r ( 006 004 % C O
0106520 M P L E X - M I N U S 006 001 \r
0106540 ( C L : L A M B D A ( Z ) 006 006
0106560 006 001
0106600
0106620 006
0106640 006 ( * | k b r : | " 8 - A
0106660 p r - 8 6 0 0 : 0 6 " ) 006 001 \r
0106700 ( 006 002 C O M P
0106720 L E X 006 001 ( 006 002 - 006 001 ( 006 002
0106740 C L : R E A L P A R T 006 001 Z )
0106760 ) \r
0107000 ( 006 002 - 006 001 ( 006 002 C L : I
0107020 M A G P A R T 006 001 Z ) ) ) ) )
0107040 \r \r ( 006 004 % C O M P L E X - T I
0107060 M E S I 006 001 \r ( C L : L A M
0107100 B D A ( Z ) 006 006 006 001
0107120
*
0107160 006 006 ( * | k b
0107200 r : | " 8 - A p r - 8 6 0
0107220 0 : 0 6 " ) 006 001 \r
0107240
*
0107320 006 006 ( * | m u l t
0107340 i p l y i n g | \ i ( | t h
0107360 e | | s q u a r e | \r 006 001
0107400
*
0107460 006 006 | r
0107500 o o t | | o f | - 1 ) | t
0107520 i m e s | \ a | n u m b e r
0107540 | * ) 006 001 \r
0107560 ( 006 002 C O M P L E X 006 001 ( 006 002
0107600 - 006 001 ( 006 002 C L : I M A G P A
0107620 R T 006 001 Z ) ) \r
0107640 ( 006 002 C L : R
0107660 E A L P A R T 006 001 Z ) ) ) ) \r
0107700 \r ( 006 004 C L : C O N J U G A T E
0107720 006 001 \r ( L A M B D A ( C L
0107740 : N U M B E R ) 006 006 006 001
0107760
*
0110020 006 006 ( * | l m m | "
0110040 2 2 - M a y - 8 6 1 6 : 5 7 "
0110060 ) 006 001 \r ( C L : E T Y P
0110100 E C A S E C L : N U M B E R
0110120 ( 006 002 C O M P L E X 006 001 ( % M
0110140 A K E - C O M P L E X ( C O M
0110160 P L E X - R E A L P A R T C L
0110200 : N U M B E R ) \r
0110220
*
0110260 ( 006 002 - 006 001 ( C O M
0110300 P L E X - I M A G P A R T C L
0110320 : N U M B E R ) ) ) ) \r
0110340 ( C L : N U M B E
0110360 R C L : N U M B E R ) ) ) ) \r
0110400 \r ( 006 004 % C O M P L E X - P R I
0110420 N T 006 001 \r ( C L : L A M B D
0110440 A ( 006 002 C O M P L E X 006 001 S
0110460 T R E A M ) 006 006 006 001
0110500
0110520 006 006 ( * |
0110540 l m m | " 2 6 - J u n - 8 6
0110560 1 0 : 3 1 " ) 006 001 \r
0110600 ( F O R M A T S T R E A
0110620 M " ~ C C ( ~ S ~ S ) " (
0110640 C L : I N T - C H A R ( 006 002 |
0110660 f e t c h | 006 001 ( R E A D T A
0110700 B L E P H A S H M A C R O C H
0110720 A R ) 006 002 | o f | 006 001 \r
0110740
*
0111060 * R E A D T A B
0111100 L E * \r
0111120
*
0111160 ) ) \r
0111200
0111220 ( C O M P L E X - R E A L P A R
0111240 T C O M P L E X ) \r
0111260 ( C O M P
0111300 L E X - I M A G P A R T C O M
0111320 P L E X ) ) ) ) \r ) \r \r \r \r 006 004
0111340 ( * \ ; " S e c t i o n 1
0111360 2 . 2 P r e d i c a t e s o
0111400 n N u m b e r s . " ) 006 001 \r \r
0111420 \r \r \r 006 004 ( * \ ; " M I N U
0111440 S P i s m a d e t o w o
0111460 r k o n r a t i o s . O
0111500 t h e r w i s e , b a c k w a
0111520 r d s c o m p a t i b l e . "
0111540 ) 006 001 \r \r ( D E F I N E Q \r \r (
0111560 006 004 N E W - M I N U S P 006 001 \r
0111600 ( L A M B D A ( C L : N U M
0111620 B E R ) 006 006 006 001
0111640
*
0111700 006 006 ( * | k b r : | " 9 -
0111720 J u l - 8 6 2 2 : 1 0 " ) 006 001
0111740 \r ( 006 002 % > 006 001 0 C
0111760 L : N U M B E R ) ) ) \r ) \r ( D
0112000 E C L A R E \ : D O N T E V A
0112020 L @ L O A D D O C O P Y \r (
0112040 M O V D ' N E W - M I N U S P
0112060 ' M I N U S P ) \r ) \r ( D E F
0112100 I N E Q \r \r ( 006 004 C L : Z E R O
0112120 P 006 001 \r ( C L : L A M B D A
0112140 ( C L : N U M B E R ) 006 006 006 001
0112160
*
0112220 006 006 ( * | k b r : |
0112240 " 2 1 - J u l - 8 6 1 7 : 1
0112260 9 " ) 006 001 \r (
0112300 006 002 = 006 001 C L : N U M B E R
0112320 0 ) ) ) \r ) \r ( D E F I N E Q \r
0112340 \r ( 006 004 E V E N P 006 001 \r ( C
0112360 L : L A M B D A ( C L : N U M
0112400 B E R & O P T I O N A L ( M
0112420 O D U L U S 2 ) ) 006 006 006 001
0112440 006 006 (
0112460 * | l m m | " 2 2 - M a y -
0112500 8 6 1 7 : 2 5 " ) 006 001 \r
0112520 ( Z E R O P ( 006 002
0112540 C L : M O D 006 001 C L : N U M B
0112560 E R M O D U L U S ) ) ) ) \r \r
0112600 ( 006 004 O D D P 006 001 \r ( C L :
0112620 L A M B D A ( C L : N U M B E
0112640 R & O P T I O N A L ( M O D
0112660 U L U S 2 ) ) 006 006 006 001
0112700 006 006 ( *
0112720 | l m m | " 2 2 - M a y - 8 6
0112740 1 7 : 2 6 " ) 006 001 \r
0112760 ( N O T ( Z E R O P
0113000 ( 006 002 C L : M O D 006 001 C L : N
0113020 U M B E R M O D U L U S ) ) )
0113040 ) ) \r \r ( 006 004 C L : P L U S P 006
0113060 001 \r ( C L : L A M B D A (
0113100 C L : N U M B E R ) 006 006 006 001
0113120
*
0113160 006 006 ( * | l m m | " 2
0113200 2 - M a y - 8 6 1 6 : 5 9 " )
0113220 006 001 \r ( 006 002 >
0113240 006 001 C L : N U M B E R 0 ) )
0113260 ) \r ) \r \r \r \r 006 004 ( * \ ; "
0113300 S e c t i o n 1 2 . 3 C o m
0113320 p a r i s o n s o n N u m b
0113340 e r s . " ) 006 001 \r \r ( D E F I N
0113360 E Q \r \r ( 006 004 % = 006 001 \r ( L
0113400 A M B D A ( X Y ) 006 006 006 001
0113420
*
0113460 006 006 (
0113500 * | k b r : | " 9 - J u l
0113520 - 8 6 1 9 : 3 7 " ) 006 001 \r
0113540 \r
0113560 006 006 ( * % = | d o e s
0113600 | | c o e r c i o n | | w h
0113620 e n | | c h e c k i n g | |
0113640 n u m b e r s | | f o r | |
0113660 e q u a l i t y . | \r 006 001
0113700 006 006 | P a g e |
0113720 1 9 6 | o f | | s i l v e r
0113740 | | b o o k . | * ) 006 001 \r \r
0113760 ( \ \ C A L L M E ' =
0114000 ) \r ( O R ( E Q L X
0114020 Y ) \r ( C T Y
0114040 P E C A S E X ( I N T E G E
0114060 R ( C T Y P E C A S E Y (
0114100 006 002 F L O A T 006 001 ( F E Q P
0114120 X Y ) ) \r
0114140
0114160 ( 006 002 C O
0114200 M P L E X 006 001 ( A N D ( 006 002
0114220 % = 006 001 X ( C O M P L E X -
0114240 R E A L P A R T Y ) ) \r
0114260
*
0114340 ( 006 002 % = 006 001 0 ( C O M P L
0114360 E X - I M A G P A R T Y ) ) )
0114400 ) \r
0114420
0114440 ( C L : N U M B E
0114460 R N I L ) ) ) \r
0114500 ( R A T I O (
0114520 C T Y P E C A S E Y ( R A T
0114540 I O ( A N D ( E Q L ( R A
0114560 T I O - N U M E R A T O R X )
0114600 \r
0114620
*
0114660 ( R A T I O - N U M E
0114700 R A T O R Y ) ) \r
0114720
*
0114760 ( E Q L ( R
0115000 A T I O - D E N O M I N A T O R
0115020 X ) \r
0115040
*
0115100 ( R A T I O - D
0115120 E N O M I N A T O R Y ) ) ) )
0115140 \r
0115160 ( 006
0115200 002 F L O A T 006 001 ( E Q L ( 006
0115220 002 F L O A T 006 001 X ) \r
0115240
*
0115300 Y ) ) \r
0115320
0115340 ( I N T E G E R N
0115360 I L ) \r
0115400
0115420 ( 006 002 C O M P L E X 006 001 ( A
0115440 N D ( 006 002 % = 006 001 X ( C O
0115460 M P L E X - R E A L P A R T Y
0115500 ) ) \r
0115520
0115540 ( 006
0115560 002 % = 006 001 ( C O M P L E X - I
0115600 M A G P A R T Y ) \r
0115620
*
0115660 0 ) ) ) ) )
0115700 \r
0115720 ( 006 002 F L O A T 006 001 ( C T Y P
0115740 E C A S E Y ( 006 002 F L O A T
0115760 006 001
0116000 006 006 ( * E Q L |
0116020 f a i l e d | ) 006 001 \r
0116040
*
0116100 N I L ) \r
0116120
0116140 ( ( O R I N T E
0116160 G E R R A T I O ) \r
0116200
0116220 ( F E Q P X
0116240 Y ) ) \r
0116260
0116300 ( 006 002 C O M P L E X 006 001 (
0116320 A N D ( 006 002 % = 006 001 X ( C
0116340 O M P L E X - R E A L P A R T
0116360 Y ) ) \r
0116400
0116420 (
0116440 006 002 % = 006 001 ( C O M P L E X -
0116460 I M A G P A R T Y ) \r
0116500
*
0116540 0 ) ) ) )
0116560 ) \r
0116600 ( 006 002 C O M P L E X 006 001 ( C
0116620 T Y P E C A S E Y ( 006 002 C O
0116640 M P L E X 006 001 ( A N D ( 006 002
0116660 % = 006 001 ( C O M P L E X - R E
0116700 A L P A R T X ) \r
0116720
*
0117000 ( C O M P L E X - R E A L P A
0117020 R T Y ) ) \r
0117040
*
0117100 ( 006 002 % = 006
0117120 001 ( C O M P L E X - I M A G P
0117140 A R T X ) \r
0117160
*
0117220 ( C
0117240 O M P L E X - I M A G P A R T
0117260 Y ) ) ) ) \r
0117300
0117320 ( C L : N U M B E R
0117340 ( A N D ( 006 002 % = 006 001 ( C O
0117360 M P L E X - R E A L P A R T X
0117400 ) \r
0117420
*
0117460 Y ) \r
0117500
*
0117540 ( 006 002 % = 006 001 (
0117560 C O M P L E X - I M A G P A R T
0117600 X ) \r
0117620
*
0117660 0 ) ) ) ) ) ) ) )
0117700 ) \r \r ( 006 004 % > 006 001 \r ( L A
0117720 M B D A ( X Y ) 006 006 006 001
0117740
*
0120000 006 006 ( *
0120020 | l m m | " 2 0 - J u n - 8
0120040 6 0 7 : 1 6 " ) 006 001 \r
0120060 ( \ \ C A L L M E ' > ) \r
0120100 ( C T Y P E C A S E X (
0120120 I N T E G E R ( C T Y P E C A
0120140 S E Y ( I N T E G E R ( I
0120160 G R E A T E R P X Y ) ) \r
0120200
*
0120240 ( 006 002 F L O A T 006 001 ( F G R E
0120260 A T E R P X Y ) ) \r
0120300
0120320 ( R A
0120340 T I O ( I G R E A T E R P (
0120360 006 002 C L : * 006 001 ( 006 002 C L : D
0120400 E N O M I N A T O R 006 001 Y ) \r
0120420
*
0120500 X ) \r
0120520
*
0120560 ( 006 002 C L
0120600 : N U M E R A T O R 006 001 Y ) )
0120620 ) ) ) \r (
0120640 006 002 F L O A T 006 001 ( C T Y P E
0120660 C A S E Y ( ( O R I N T E
0120700 G E R F L O A T ) \r
0120720
0120740 ( F G R E
0120760 A T E R P X Y ) ) \r
0121000
0121020 ( R A T I O ( F G R
0121040 E A T E R P ( 006 002 C L : * 006 001
0121060 ( 006 002 C L : D E N O M I N A T
0121100 O R 006 001 Y ) \r
0121120
*
0121160 X ) \r
0121200
*
0121240 ( 006 002 C L : N U M E R A T
0121260 O R 006 001 Y ) ) ) ) ) \r
0121300 ( R A T I O ( C
0121320 T Y P E C A S E Y ( I N T E
0121340 G E R ( I G R E A T E R P (
0121360 006 002 C L : N U M E R A T O R 006 001
0121400 X ) \r
0121420
*
0121460 ( 006 002 C L : * 006 001 ( 006 002
0121500 C L : D E N O M I N A T O R 006 001
0121520 X ) \r
0121540
*
0121600 Y ) ) ) \r
0121620
0121640 ( 006 002 F L O A T 006
0121660 001 ( F G R E A T E R P ( F Q
0121700 U O T I E N T ( 006 002 C L : N U
0121720 M E R A T O R 006 001 X ) \r
0121740
*
0122000 (
0122020 006 002 C L : D E N O M I N A T O R
0122040 006 001 X ) ) \r
0122060
0122100 Y )
0122120 ) \r
0122140 ( R A T I
0122160 O ( I G R E A T E R P ( 006 002
0122200 C L : * 006 001 ( 006 002 C L : N U M
0122220 E R A T O R 006 001 X ) \r
0122240
*
0122300 ( 006 002
0122320 C L : D E N O M I N A T O R 006 001
0122340 Y ) ) \r
0122360
0122400 ( 006 002 C
0122420 L : * 006 001 ( 006 002 C L : N U M E
0122440 R A T O R 006 001 Y ) \r
0122460
*
0122520 ( 006 002 C L : D E
0122540 N O M I N A T O R 006 001 X ) ) )
0122560 ) ) ) ) ) ) \r ) \r ( D E F I N E
0122600 Q \r \r ( 006 004 = 006 001 \r ( C L :
0122620 L A M B D A ( C L : N U M B E
0122640 R & R E S T M O R E - N U M
0122660 B E R S ) 006 006 006 001
0122700 006 006 ( *
0122720 | k b r : | " 9 - J u l - 8
0122740 6 1 9 : 2 8 " ) 006 001 \r
0122760 ( 006 002 | f o r | 006 001
0123000 N 006 002 | i n | 006 001 M O R E -
0123020 N U M B E R S 006 002 | a l w a y
0123040 s | 006 001 ( 006 002 % = 006 001 C L :
0123060 N U M B E R N ) ) ) ) \r \r ( 006
0123100 004 % = 006 001 \r ( L A M B D A
0123120 ( X Y ) 006 006 006 001
0123140
*
0123200 006 006 ( * | k b r
0123220 : | " 9 - J u l - 8 6 1 9
0123240 : 3 7 " ) 006 001 \r
0123260 \r 006 006 (
0123300 * % = | d o e s | | c o e
0123320 r c i o n | | w h e n | | c
0123340 h e c k i n g | | n u m b e r
0123360 s | | f o r | | e q u a l i
0123400 t y . | \r 006 001
0123420 006 006 | P a g e | 1 9 6 | o
0123440 f | | s i l v e r | | b o o
0123460 k . | * ) 006 001 \r \r ( \
0123500 \ C A L L M E ' = ) \r
0123520 ( O R ( E Q L X Y ) \r
0123540 ( C T Y P E C A S E
0123560 X ( I N T E G E R ( C T Y
0123600 P E C A S E Y ( 006 002 F L O A
0123620 T 006 001 ( F E Q P X Y ) ) \r
0123640
*
0123700 ( 006 002 C O M P L E X 006
0123720 001 ( A N D ( 006 002 % = 006 001 X
0123740 ( C O M P L E X - R E A L P A
0123760 R T Y ) ) \r
0124000
*
0124040 ( 006 002 % = 006
0124060 001 0 ( C O M P L E X - I M A
0124100 G P A R T Y ) ) ) ) \r
0124120
*
0124160 ( C L : N U M B E R N I L )
0124200 ) ) \r
0124220 ( R A T I O ( C T Y P E C
0124240 A S E Y ( R A T I O ( A N
0124260 D ( E Q L ( R A T I O - N U
0124300 M E R A T O R X ) \r
0124320
*
0124360 (
0124400 R A T I O - N U M E R A T O R
0124420 Y ) ) \r
0124440
*
0124500 ( E Q L ( R A T I O - D
0124520 E N O M I N A T O R X ) \r
0124540
*
0124620 ( R A T I O - D E N O M I N
0124640 A T O R Y ) ) ) ) \r
0124660
0124700 ( 006 002 F L O A T
0124720 006 001 ( E Q L ( 006 002 F L O A T
0124740 006 001 X ) \r
0124760
0125000 Y
0125020 ) ) \r
0125040
0125060 ( I N T E G E R N I L ) \r
0125100
0125120 ( 006 002 C O
0125140 M P L E X 006 001 ( A N D ( 006 002
0125160 % = 006 001 X ( C O M P L E X -
0125200 R E A L P A R T Y ) ) \r
0125220
*
0125260 ( 006 002 % = 006 001
0125300 ( C O M P L E X - I M A G P A R
0125320 T Y ) \r
0125340
*
0125400 0 ) ) ) ) ) \r
0125420 ( 006 002 F L O
0125440 A T 006 001 ( C T Y P E C A S E
0125460 Y ( 006 002 F L O A T 006 001
0125500
0125520 006 006 ( * E Q L | f a i l e d
0125540 | ) 006 001 \r
0125560
0125600 N
0125620 I L ) \r
0125640
0125660 ( ( O R I N T E G E R R A
0125700 T I O ) \r
0125720
0125740 ( F E Q P X Y ) ) \r
0125760
0126000 ( 006 002 C
0126020 O M P L E X 006 001 ( A N D ( 006
0126040 002 % = 006 001 X ( C O M P L E X
0126060 - R E A L P A R T Y ) ) \r
0126100
*
0126140 ( 006 002 % = 006 001
0126160 ( C O M P L E X - I M A G P A
0126200 R T Y ) \r
0126220
*
0126260 0 ) ) ) ) ) \r
0126300 ( 006 002 C O
0126320 M P L E X 006 001 ( C T Y P E C A
0126340 S E Y ( 006 002 C O M P L E X 006
0126360 001 ( A N D ( 006 002 % = 006 001 (
0126400 C O M P L E X - R E A L P A R T
0126420 X ) \r
0126440
*
0126500 ( C O M P
0126520 L E X - R E A L P A R T Y ) )
0126540 \r
0126560
*
0126620 ( 006 002 % = 006 001 ( C O M
0126640 P L E X - I M A G P A R T X )
0126660 \r
0126700
*
0126740 ( C O M P L E X
0126760 - I M A G P A R T Y ) ) ) ) \r
0127000
0127020 (
0127040 C L : N U M B E R ( A N D (
0127060 006 002 % = 006 001 ( C O M P L E X -
0127100 R E A L P A R T X ) \r
0127120
*
0127160 Y
0127200 ) \r
0127220
*
0127260 ( 006 002 % = 006 001 ( C O M P L E
0127300 X - I M A G P A R T X ) \r
0127320
*
0127400 0 ) ) ) ) ) ) ) ) ) \r \r ( 006 004
0127420 C L : / = 006 001 \r ( C L : L A
0127440 M B D A ( & R E S T N U M B
0127460 E R S ) 006 006 006 001
0127500
0127520 006 006 ( * | l
0127540 m m | " 1 6 - J u l - 8 5 1
0127560 6 : 5 6 " ) 006 001 \r
0127600 ( 006 002 | f o r | 006 001 X 006
0127620 002 | o n | 006 001 N U M B E R S
0127640 006 002 | a l w a y s | 006 001 ( 006 002
0127660 | f o r | 006 001 Y 006 002 | i n |
0127700 006 001 ( C D R X ) 006 002 | a l
0127720 w a y s | 006 001 ( N O T ( 006 002
0127740 = 006 001 ( C A R X ) \r
0127760
*
0130060 Y ) ) ) )
0130100 ) ) \r \r ( 006 004 < 006 001 \r ( C L
0130120 : L A M B D A ( C L : N U M B
0130140 E R & R E S T M O R E - N U
0130160 M B E R S ) 006 006 006 001
0130200 006 006 ( *
0130220 | k b r : | " 9 - J u l -
0130240 8 6 1 9 : 1 8 " ) 006 001 \r
0130260 ( O R ( N U L L
0130300 M O R E - N U M B E R S ) \r
0130320 ( A N D
0130340 ( 006 002 % > 006 001 ( C A R M O R
0130360 E - N U M B E R S ) \r
0130400
0130420 C L : N U M B E R ) \r
0130440 ( 006
0130460 002 | f o r | 006 001 T A I L 006 002
0130500 | o n | 006 001 M O R E - N U M B
0130520 E R S 006 002 | w h i l e | 006 001
0130540 ( C D R T A I L ) 006 002 | a l
0130560 w a y s | 006 001 ( 006 002 % > 006 001
0130600 ( C A D R T A I L ) \r
0130620
*
0130720 ( C A R
0130740 T A I L ) ) ) ) ) ) ) \r \r ( 006
0130760 004 > 006 001 \r ( C L : L A M B D
0131000 A ( C L : N U M B E R & R E
0131020 S T M O R E - N U M B E R S )
0131040 006 006 006 001
0131060 006 006 ( * | k b r :
0131100 | " 9 - J u l - 8 6 1 9 :
0131120 1 6 " ) 006 001 \r
0131140 ( O R ( N U L L M O R E - N
0131160 U M B E R S ) \r
0131200 ( A N D ( 006 002 % > 006
0131220 001 C L : N U M B E R ( C A R
0131240 M O R E - N U M B E R S ) ) \r
0131260
0131300 ( 006 002 | f o r | 006 001 T A I
0131320 L 006 002 | o n | 006 001 M O R E -
0131340 N U M B E R S 006 002 | w h i l e
0131360 | 006 001 ( C D R T A I L ) 006
0131400 002 | a l w a y s | 006 001 ( 006 002 %
0131420 > 006 001 ( C A R T A I L ) \r
0131440
*
0131540 (
0131560 C A D R T A I L ) ) ) ) ) ) )
0131600 \r \r ( 006 004 < = 006 001 \r ( C L :
0131620 L A M B D A ( C L : N U M B E
0131640 R & R E S T M O R E - N U M
0131660 B E R S ) 006 006 006 001
0131700 006 006 ( *
0131720 | k b r : | " 9 - J u l - 8
0131740 6 1 9 : 2 7 " ) 006 001 \r
0131760 ( O R ( N U L L M
0132000 O R E - N U M B E R S ) \r
0132020 ( A N D (
0132040 N O T ( 006 002 % > 006 001 C L : N
0132060 U M B E R ( C A R M O R E -
0132100 N U M B E R S ) ) ) \r
0132120 ( 006 002
0132140 | f o r | 006 001 T A I L 006 002 |
0132160 o n | 006 001 M O R E - N U M B E
0132200 R S 006 002 | w h i l e | 006 001 (
0132220 C D R T A I L ) \r
0132240 006
0132260 002 | a l w a y s | 006 001 ( N O T
0132300 ( 006 002 % > 006 001 ( C A R T A
0132320 I L ) \r
0132340
0132360 ( C A D R
0132400 T A I L ) ) ) ) ) ) ) ) \r \r (
0132420 006 004 > = 006 001 \r ( C L : L A M
0132440 B D A ( C L : N U M B E R &
0132460 R E S T M O R E - N U M B E R
0132500 S ) 006 006 006 001
0132520 006 006 ( * | k b
0132540 r : | " 9 - J u l - 8 6 2
0132560 0 : 4 6 " ) 006 001 \r
0132600 ( O R ( N U L L M O R E
0132620 - N U M B E R S ) \r
0132640 ( A N D ( N O T
0132660 ( 006 002 % > 006 001 ( C A R M O
0132700 R E - N U M B E R S ) \r
0132720
0132740 C L : N U M B E R
0132760 ) ) \r
0133000 ( 006 002 | f o r | 006 001
0133020 T A I L 006 002 | o n | 006 001 M O
0133040 R E - N U M B E R S 006 002 | w h
0133060 i l e | 006 001 ( C D R T A I L
0133100 ) \r
0133120 006 002 | a l w a y s
0133140 | 006 001 ( N O T ( 006 002 % > 006 001
0133160 ( C A D R T A I L ) \r
0133200
*
0133240 ( C A R T A I L ) ) )
0133260 ) ) ) ) ) \r ) \r ( D E F O P T I
0133300 M I Z E R 006 002 = 006 001 ( N &
0133320 R E S T N S ) \r ( C O N
0133340 D \r ( ( C D R N S
0133360 ) \r ( L E T ( (
0133400 N N A M E ( G E N S Y M ) ) )
0133420 \r ` ( L
0133440 E T ( ( , N N A M E , N ) )
0133460 \r
0133500 ( A N D , @ ( 006 002 | f o
0133520 r | 006 001 X 006 002 | i n | 006 001
0133540 N S 006 002 | c o l l e c t | 006 001
0133560 ` ( % = , N N A M E , X )
0133600 ) ) ) ) ) \r ( T `
0133620 ( % = , N , ( C A R N S )
0133640 ) ) ) ) \r \r ( D E F O P T I M I
0133660 Z E R 006 002 C L : / = 006 001 ( N
0133700 & R E S T N S ) \r ( C
0133720 O N D \r ( N S \r
0133740 ( C O N D \r
0133760 ( ( C D R N S ) \r
0134000 ( L E T \r
0134020 ( ( V A R
0134040 S ( 006 002 | f o r | 006 001 X 006
0134060 002 | i n | 006 001 ( C O N S N
0134100 N S ) 006 002 | c o l l e c t | 006
0134120 001 ( L I S T ( G E N S Y M
0134140 ' C L : / = ) \r
0134160
*
0134240 X ) ) ) ) \r
0134260 ` ( L E T , V A
0134300 R S \r
0134320 ( A N D , @ ( 006 002 |
0134340 f o r | 006 001 X 006 002 | o n | 006
0134360 001 V A R S \r
0134400
0134420 006 002 | j o i n | 006 001 ( 006
0134440 002 | f o r | 006 001 Y 006 002 | o n
0134460 | 006 001 ( C D R V A R S ) \r
0134500
*
0134540 006 002 | c o l l e c t |
0134560 006 001 ` ( N O T ( = , ( C A
0134600 A R X ) , ( C A A R Y ) )
0134620 ) ) ) ) ) ) ) \r
0134640 ( T ` ( N O T ( = , N
0134660 , ( C A R N S ) ) ) ) ) ) \r
0134700 ( T T ) ) ) \r \r (
0134720 D E F O P T I M I Z E R 006 002 <
0134740 006 001 ( N & R E S T N S ) \r
0134760 ( C O N D \r (
0135000 ( N U L L N S ) \r
0135020 T ) \r ( ( C D R
0135040 N S ) \r ( L E T
0135060 ( ( V A R S ( 006 002 F O R 006 001
0135100 X 006 002 I N 006 001 ( C O N S N
0135120 N S ) 006 002 C O L L E C T 006 001
0135140 ( L I S T ( G E N S Y M '
0135160 C L : / = ) \r
0135200
*
0135240 X )
0135260 ) ) ) \r
0135300 ` ( ( O P E N L A M B D A , (
0135320 M A P C A R V A R S ' C A R
0135340 ) \r
0135360 ( A N D , @ ( 006
0135400 002 | f o r | 006 001 X 006 002 | o n
0135420 | 006 001 V A R S 006 002 | w h i l
0135440 e | 006 001 ( C D R X ) \r
0135460
0135500 006 002 | c
0135520 o l l e c t | 006 001 ` ( L E S S
0135540 P , ( C A A R X ) , ( C A
0135560 A D R X ) ) ) ) ) \r
0135600 , @ ( M A P C
0135620 A R V A R S ' C A D R ) ) )
0135640 ) \r ( T ` ( L E S
0135660 S P , N , ( C A R N S ) )
0135700 ) ) ) \r \r ( D E F O P T I M I Z
0135720 E R 006 002 > 006 001 ( N & R E S
0135740 T N S ) \r ( C O N D \r
0135760 ( ( N U L L N S ) \r
0136000 T ) \r
0136020 ( ( C D R N S ) \r
0136040 ( L E T ( ( V A R S ( 006 002
0136060 F O R 006 001 X 006 002 I N 006 001 (
0136100 C O N S N N S ) 006 002 C O L
0136120 L E C T 006 001 ( L I S T ( G E
0136140 N S Y M ' C L : / = ) \r
0136160
*
0136240 X ) ) ) ) \r
0136260 ` ( ( O P E N L A M
0136300 B D A , ( M A P C A R V A R
0136320 S ' C A R ) \r
0136340 ( A N
0136360 D , @ ( 006 002 | f o r | 006 001 X
0136400 006 002 | o n | 006 001 V A R S 006
0136420 002 | w h i l e | 006 001 ( C D R
0136440 X ) \r
0136460
0136500 006 002 | c o l l e c t | 006 001
0136520 ` ( G R E A T E R P , ( C A A
0136540 R X ) , ( C A A D R X ) )
0136560 ) ) ) \r
0136600 , @ ( M A P C A R V A R S
0136620 ' C A D R ) ) ) ) \r
0136640 ( T ` ( G R E A T E R P ,
0136660 N , ( C A R N S ) ) ) ) ) \r
0136700 \r ( D E F O P T I M I Z E R 006
0136720 002 < = 006 001 ( N & R E S T N
0136740 S ) \r ( C O N D \r
0136760 ( ( N U L L N S ) \r
0137000 T ) \r ( ( C
0137020 D R N S ) \r ( L
0137040 E T ( ( V A R S ( 006 002 F O R
0137060 006 001 X 006 002 I N 006 001 ( C O N
0137100 S N N S ) 006 002 C O L L E C
0137120 T 006 001 ( L I S T ( G E N S Y
0137140 M ' C L : / = ) \r
0137160
*
0137240 X ) ) ) ) \r
0137260 ` ( ( O P E N L A M B D A
0137300 , ( M A P C A R V A R S '
0137320 C A R ) \r
0137340 ( A N D ,
0137360 @ ( 006 002 | f o r | 006 001 X 006 002
0137400 | o n | 006 001 V A R S 006 002 | w
0137420 h i l e | 006 001 ( C D R X ) \r
0137440
0137460 006
0137500 002 | c o l l e c t | 006 001 ` ( L
0137520 E Q , ( C A A R X ) , ( C
0137540 A A D R X ) ) ) ) ) \r
0137560 , @ ( M A P
0137600 C A R V A R S ' C A D R ) )
0137620 ) ) \r ( T ` ( L E
0137640 Q , N , ( C A R N S ) ) )
0137660 ) ) \r \r ( D E F O P T I M I Z E
0137700 R 006 002 > = 006 001 ( N & R E S
0137720 T N S ) \r ( C O N D \r
0137740 ( ( N U L L N S ) \r
0137760 T ) \r
0140000 ( ( C D R N S ) \r
0140020 ( L E T ( ( V A R S ( 006 002
0140040 F O R 006 001 X 006 002 I N 006 001 (
0140060 C O N S N N S ) 006 002 C O L
0140100 L E C T 006 001 ( L I S T ( G E
0140120 N S Y M ' > = ) \r
0140140
*
0140220 X ) ) ) ) \r
0140240 ` ( ( O P E N L A M B D A
0140260 , ( M A P C A R V A R S '
0140300 C A R ) \r
0140320 ( A N D ,
0140340 @ ( 006 002 | f o r | 006 001 X 006 002
0140360 | o n | 006 001 V A R S 006 002 | w
0140400 h i l e | 006 001 ( C D R X ) \r
0140420
0140440 006
0140460 002 | c o l l e c t | 006 001 ` ( N
0140500 O T ( < , ( C A A R X )
0140520 , ( C A A D R X ) ) ) ) ) ) \r
0140540 , @
0140560 ( M A P C A R V A R S ( F U
0140600 N C T I O N C A D R ) ) ) ) )
0140620 \r ( T ` ( G E Q
0140640 , N , ( C A R N S ) ) ) ) )
0140660 \r \r \r \r \r 006 004 ( * | ; ; | \r
0140700 " M A X a n d M I N a r e
0140720 O K b e c a u s e t h e y
0140740 u s e G R E A T E R P a n
0140760 d G R E A T E R P i s f i
0141000 x e d b y t h i s f i l e
0141020 t o w o r k o n r a t i
0141040 o s . " ) 006 001 \r \r \r \r \r 006 004 ( *
0141060 \ ; " S e c t i o n 1 2 .
0141100 4 A r i t h m e t i c O p e
0141120 r a t i o n s . " ) 006 001 \r \r ( D
0141140 E F I N E Q \r \r ( 006 004 + 006 001 \r
0141160 ( L A M B D A N 006 006 006 001
0141200
*
0141260 006 006 ( * | k b r : | " 6 -
0141300 M a y - 8 6 1 6 : 0 2 " ) 006 001
0141320 \r \r
0141340 006 006 ( * | M i c r
0141360 o c o d e | | g e n e r a l l
0141400 y | | h a n d l e s | | t h
0141420 e | | c a s e | | o f | |
0141440 t w o | | a r g s | | b o t
0141460 h | \r 006 001
0141500 006 006 F I X P \ s ) 006 001 \r \r
0141520