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