blob: d129d5c3f20f577603cc92d7a3494aa6f440a15e [file] [log] [blame]
%!PS-Adobe-2.0
%%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software
%%Title: evalopt.dvi
%%CreationDate: Sun Jul 24 09:42:04 1994
%%Pages: 58
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o evalopt.ps evalopt.dvi
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1994.07.24:0931
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get
round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0
0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn
begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X
array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo
setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx
FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{
pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}
B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup
length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B
/ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp
0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2
index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff
ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{
ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn
/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1
sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D
}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0
moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley
false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley
scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave
transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta
0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{
3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p
-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{
3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300
(/a/santa-bb/dancer/ftp/public/preston/eval/evalopt.dvi)
@start /Fa 47 124 df<183C3C3C0404080810204080060C779C0D>39
D<183878380808101020404080050C7D830D>44 D<FFC0FFC0FFC00A037D890F>I<003C
0000C3000101800201800201C00441C00441C00841C00841C00841C01083801083801107
000E0600000C0000180000300000C0000100000600000800001001001002002002004006
007E0C00C7F80083F80080E000121D7C9B15>50 D<0001800001C0000380000380000380
000300000700000700000600000E00000C00001C00001800001800003000003000006000
00400000C600018E00010E00020E00061C000C1C00181C003F1C0040F800803F00003800
00380000700000700000700000700000E00000600012247E9B15>52
D<001E000061000081800180800300C00300C006018006018006018007030007860003CC
0003F00001F000037800063C00081E00180E00300E00600600600600600600C00C00C00C
00C0180060100060200030C0000F0000121D7C9B15>56 D<003C0000C600018300030300
0603000E03000C03801C03801C03001C0300380700380700380700380F00380E00181E00
181E000C6C00079C00001C00001800003800003000006000E0C000E0C000818000860000
7C0000111D7B9B15>I<060F0F06000000000000000000003078F06008127C910D>I<0000
180000001800000038000000380000007800000078000000B8000001B800000138000002
380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000201C00007F
FC0000401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E001C00
1E00FF00FFC01A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001C00380
01C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000007800
0000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008007000
08007000100038002000180040000C0180000706000001F800001B1E7A9C1E>67
D<01FFFE00003C0780003801C0003801C0003800E0003800E0007000F000700070007000
70007000F000E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001
C0038003C003800380038007800380070007000E0007001C0007003800070070000E01C0
00FFFF00001C1C7D9B1F>I<01FFFFE0003C00E000380060003800400038004000380040
0070004000700040007020400070200000E0400000E0400000E0C00000FFC00001C08000
01C0800001C0800001C08000038101000380010003800200038002000700040007000400
07000C00070018000E007800FFFFF0001B1C7D9B1C>I<01FFFFC0003C01C0003800C000
38008000380080003800800070008000700080007020800070200000E0400000E0400000
E0C00000FFC00001C0800001C0800001C0800001C0800003810000038000000380000003
800000070000000700000007000000070000000F000000FFF000001A1C7D9B1B>I<0003
F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000801E0000801C00
00803C0000803C000000780000007800000078000000F0000000F0000000F001FFC0F000
1E00F0001C00F0001C00F0001C00F0001C00700038007000380038003800180078000C00
90000707100001F800001B1E7A9C20>I<01FFC0003C0000380000380000380000380000
700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C00003
80000380000380000380000700000700000700000700000F0000FFE000121C7E9B10>73
D<01FFE0003C0000380000380000380000380000700000700000700000700000E00000E0
0000E00000E00001C00001C00001C00001C0000380080380080380080380100700100700
300700600700E00E03C0FFFFC0151C7D9B1A>76 D<01FE0007F8003E000780002E000F00
002E001700002E001700002E002700004E002E00004E004E00004E004E00004E008E0000
8E011C00008E011C00008E021C00008E021C000107043800010704380001070838000107
1038000207107000020720700002072070000207407000040740E000040780E000040700
E0000C0700E0001C0601E000FF861FFC00251C7D9B25>I<01FC03FE001C0070003C0060
002E0040002E0040002E0040004700800047008000470080004380800083810000838100
008181000081C1000101C2000101C2000100E2000100E2000200E4000200740002007400
020074000400380004003800040038000C0018001C001000FF8010001F1C7D9B1F>I<00
07F000001C1C0000700E0000E0070001C0038003800380070003800E0003C01E0003C01C
0003C03C0003C03C0003C0780003C0780003C0780003C0F0000780F0000780F0000780F0
000F00F0000F00F0000E00F0001E00F0003C0070003800700070007800E0003801C0001C
0380000E0E000003F800001A1E7A9C20>I<01FFFC00003C070000380380003801C00038
01C0003801C0007003C0007003C0007003C00070038000E0078000E0070000E00E0000E0
380001FFE00001C0000001C0000001C00000038000000380000003800000038000000700
00000700000007000000070000000F000000FFE000001A1C7D9B1C>I<01FFF800003C0E
000038070000380380003803800038038000700780007007800070078000700F0000E00E
0000E01C0000E0700000FFC00001C0C00001C0600001C0700001C0700003807000038070
0003807000038070000700F0000700F0400700F0400700F0800F007880FFE0790000001E
001A1D7D9B1E>82 D<000F8400304C00403C008018010018030018030018060010060010
06000007000007000003E00003FC0001FF00007F800007C00001C00001C00000C00000C0
2000C02000C0600180600180600300600200F00400CC180083E000161E7D9C17>I<1FFF
FFC01C0701C0300E00C0200E0080600E0080400E0080401C0080801C0080801C0080001C
0000003800000038000000380000003800000070000000700000007000000070000000E0
000000E0000000E0000000E0000001C0000001C0000001C0000001C0000003C000007FFE
00001A1C799B1E>I<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0
E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E000E001C001C001C
001C0039C03E60383038307038703870387038E070E070E070E060E0E0C0C0C1C0618063
003C000D1D7B9C13>I<01F007080C08181C3838300070007000E000E000E000E000E000
E008E010602030C01F000E127B9113>I<001F8000038000038000070000070000070000
0700000E00000E00000E00000E0003DC00063C000C3C00181C0038380030380070380070
3800E07000E07000E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B9C
15>I<01E007100C1018083810701070607F80E000E000E000E000E000E0086010602030
C01F000D127B9113>I<0003C0000670000C70001C60001C00001C000038000038000038
0000380000380003FF8000700000700000700000700000700000E00000E00000E00000E0
0000E00001C00001C00001C00001C00001C0000380000380000380000300000300000700
00C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E
381C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00
101A7D9113>I<0FC00001C00001C0000380000380000380000380000700000700000700
000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C
00383800703880703880707080707100E03200601C00111D7D9C15>I<01800380010000
000000000000000000000000001C002600470047008E008E000E001C001C001C00380038
00710071007100720072003C00091C7C9B0D>I<1F800380038007000700070007000E00
0E000E000E001C001C001C001C0038003800380038007000700070007000E400E400E400
E40068003800091D7C9C0B>108 D<3C1E0780266318C04683A0E04703C0E08E0380E08E
0380E00E0380E00E0380E01C0701C01C0701C01C0701C01C070380380E0388380E038838
0E0708380E0710701C0320300C01C01D127C9122>I<3C3C002646004687004707008E07
008E07000E07000E07001C0E001C0E001C0E001C1C00381C40381C403838403838807019
00300E0012127C9117>I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E0
38E030E06060C031801E000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E0
01C0E001C0E00381C00381C00381C00381800703800703000707000706000E8C000E7000
0E00000E00001C00001C00001C00001C00003C0000FF8000131A7F9115>I<03C4062C0C
3C181C3838303870387038E070E070E070E070E0E0C0E0C0E061E063C03DC001C001C003
8003800380038007803FF00E1A7B9113>I<3C3C26C2468747078E068E000E000E001C00
1C001C001C0038003800380038007000300010127C9112>I<01F006080C080C1C18181C
001F001FC00FF007F0007800386030E030C030806060C01F000E127D9111>I<00C001C0
01C001C00380038003800380FFE00700070007000E000E000E000E001C001C001C001C00
384038403840388019000E000B1A7D990E>I<1E0300270700470700470700870E00870E
000E0E000E0E001C1C001C1C001C1C001C1C003838803838801838801839001C5900078E
0011127C9116>I<1E01832703874703874703838707018707010E07010E07011C0E021C
0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>119
D<070E0019910010E38020E38041C30041C00001C00001C0000380000380000380000380
00070200670200E70400CB04008B080070F00011127D9113>I<1E03270747074707870E
870E0E0E0E0E1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0
818047003C00101A7C9114>I<038207C20FEC0838100800100020004000800100020004
0008081008383067F043E081C00F127D9111>I<FFFFC012017C8B15>I
E /Fb 16 102 df<1838783808101020204080050B7D830C>44 D<007C00018600030300
0603000C03801C03801C0380380380380380380380700700700700700700700700E00E00
E00E00E00E00E01C00E01C00E01800E0300060600030C0001F000011187C9714>48
D<000800180030007001F00E7000E000E000E000E001C001C001C001C003800380038003
8007000700070007000F00FFF00D187C9714>I<007C0001860002030004038004838008
83801083801083801083801107001207000C0E00001C000030000060000180000200000C
00001001002001003C060067FE00C1FC0080F00011187D9714>I<003E0000C300010180
0201800481C00441C0088380048380070300000600000C0001F000001800000C00000C00
000E00000E00600E00E01C00E01C0080380040300020E0001F800012187D9714>I<0003
00000380000700000700000700000E00000E00000E00001C00001C000018000030000030
0000600000C00000C600018E00030E00021C00041C00081C00101C007FB800807F800038
00003800007000007000007000007000006000111F7F9714>I<03018003FF0003FC0002
200004000004000004000004000008000009E0000E1800081800001C00001C00001C0000
1C00201C00701C00E0380080300040700040E0002180001E000011187C9714>I<001F00
0060800180800303800603800E00001C000018000038000039F000721800740C00780E00
700E00F00E00E00E00E00E00E00E00E01C00E01C0060380060700030C0001F800011187C
9714>I<09C04017E0801FF1803C1F00300200600600400400800C000008000018000030
0000300000700000600000E00000C00001C00001C0000180000380000380000380000700
0003000012187B9714>I<003E0000C1000100800200C00600C00600C00E018007030007
860003CC0001F00001F800067C000C3E00180E00300700600700600700C00600C0060060
0C006018003070000FC00012187D9714>I<007C000186000703000E03000C03801C0380
380380380380380380380780380700380F001817000C270007CE00000E00000C00001C00
001800E03000E0600080C000C380003E000011187C9714>I<03CC0E2E181C381C301C70
1CE038E038E038E038C072C072C07260F261341E180F107C8F14>97
D<7E000E000E000E001C001C001C001C00380038003BC03C307830701870187018E038E0
38E038E038C070C060C0E060C063801E000D1A7C9912>I<01F006080C18183830107000
6000E000E000E000E000E008E010602030C01F000D107C8F12>I<001F80000380000380
000380000700000700000700000700000E00000E0003CE000E2E00181C00381C00301C00
701C00E03800E03800E03800E03800C07200C07200C0720060F2006134001E1800111A7C
9914>I<01E006181C08380870087010FFE0E000E000E000E000E0086010602030C01F00
0D107C8F12>I E /Fc 10 57 df<78FCFCFCFC7806067D850C>46
D<07F0001E3C003C1E00380E00780F00780F00780F00F80F80F80F80F80F80F80F80F80F
80F80F80F80F80F80F80F80F80F80F80F80F80780F00780F00380E003C1E001E3C0007F0
0011187E9716>48 D<00C003C0FFC0FFC003C003C003C003C003C003C003C003C003C003
C003C003C003C003C003C003C003C003C07FFE7FFE0F187D9716>I<0FF0003FFC00787E
00FC1F00FC1F80FC0F80FC0F80780F80001F80001F00001E00003C0000780000700000E0
000180000301800601800C01801003803FFF007FFF00FFFF00FFFF0011187E9716>I<07
F0001FFC00383E007C3E007C1F007C1F007C1F00383F00003E00003C0000780007F00000
3C00001E00001F00001F80781F80FC1F80FC1F80FC1F00F81F00703E003FFC000FF00011
187E9716>I<000600000E00001E00003E00007E0000DE00019E00011E00031E00061E00
0C1E00181E00301E00601E00C01E00FFFFE0FFFFE0001E00001E00001E00001E00001E00
01FFE001FFE013187F9716>I<3006003FFC003FFC003FF0003FE0003F80003000003000
0030000037F000381C00301E00000F00000F00000F80700F80F80F80F80F80F80F80F80F
00601F00383E001FF80007E00011187E9716>I<00F80007FE000F06001E0F003C1F003C
1F00780E00780000F80000F9F000FA1C00FC0E00FC0F00F80F80F80F80F80F80F80F8078
0F80780F80780F003C0F001E1E000FFC0003F00011187E9716>I<6000007FFFC07FFFC0
7FFF807FFF00E00600C00600C00C00C0180000300000600000600000E00001E00001C000
03C00003C00003C00007C00007C00007C00007C00007C00007C00003800012197E9816>
I<07F0001FFC00381E00300F007007007007007807007E06007F8E003FF8001FF8000FFC
001FFE0038FF00703F80E00F80E00780E00380E00380E003007007003C0E001FFC0007F0
0011187E9716>I E /Fd 1 59 df<60F0F06004047D830B>58 D
E /Fe 4 122 df<06070600000000384C4C8C98181830326262643808147F930C>105
D<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15>110
D<0E3C13CE238E430C43000300030006000608C608E610CA2071C00F0D7F8C13>120
D<38184C184C188C3098301830183030603060306030E011C00EC000C00080E180E30046
003C000D137F8C11>I E /Ff 3 115 df<FFFFFFFFE0FFFFFFFFF07000001FF078000001
F03C000000781C000000180E0000000C0F000000040700000004038000000203C0000000
01E000000000E0000000007000000000780000000038000000001C000000001E00000000
0F000000000700000000038000000003800000000300000000070000000006000000000C
000000001800000000380000000030000000006000000000C000000001C0000000018000
0002030000000406000000040E0000000C0C00000018180000007830000001F07000001F
F07FFFFFFFF0FFFFFFFFE0272A7E7F2C>80 D<00000000020000000006000000000C0000
00000C000000001800000000180000000030000000003000000000600000000060000000
00C000000000C00000000180000000018000000003000000000300000000060000000006
000000000C000000000C0000000018000000001800000000300000000030000000006000
08000060001C0000C0003C0000C000CE000180000E000180000E00030000070003000007
00060000038006000003800C000001C00C000001C018000001E018000000E030000000E0
300000007060000000706000000038C000000038C00000001D800000001D800000001F00
0000000F000000000E000000000600000027327C812A>112 D<00000000020000000006
0000000006000000000C000000000C000000000C000000000C0000000018000000001800
000000180000000018000000003000000000300000000030000000003000000000600000
0000600000000060000000006000000000C000000000C000000000C000000000C0000000
018000000001800000000180000000018000000001800000000300000000030000000003
00000000030000000006000000000600000000060000000006000000000C000000000C00
0000000C000000000C000000001800000000180000000018000000001800000000300000
000030000000003000000000300000000060000000006000000000600008000060001C00
00C0001C0000C0003C0000C0005C0000C0005C000180008E000180000E000180000E0001
80000E000300000700030000070003000007000300000700060000070006000003800600
00038006000003800C000003800C000001C00C000001C00C000001C018000001C0180000
01C018000000E018000000E018000000E030000000E030000000E0300000007030000000
706000000070600000007060000000386000000038C000000038C000000038C000000038
C00000001D800000001D800000001D800000001D800000000F000000000F000000000F00
0000000F000000000E0000000006000000000600000027647C812A>114
D E /Fg 38 120 df<FFFF80FFFF80FFFF8011037E8D16>45 D<03E0000FF8001FFC001E
3C00380E00780F00700700700700E00380E00380E00380E00380E00380E00380E00380E0
0380F00780700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816>48
D<01800380038007800F807F80FF80738003800380038003800380038003800380038003
8003800380038003807FF87FFC7FF80E197C9816>I<07E0001FF8003FFC00783E00E007
00F00780F00380600380000380000380000700000700000E00001C0000380000700000E0
0001C0000380000F00001E03803803807FFF80FFFF807FFF8011197E9816>I<07E0001F
F8003FFC00781E00780700300700000700000700000E00003E0007FC0007F00007FC0000
1E00000700000300000380000380600380F00380E00700781E003FFC001FF80007E00011
197E9816>I<01F18007FB800FFF801F0F803C0780380380700380700380F00000E00000
E00000E00000E00000E00000E00000E00000F000007003807003803803803C07001F0F00
0FFE0007FC0001F00011197E9816>67 D<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C
01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C
00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>69
D<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001FFC
001FFC001FFC001C1C001C1C001C00001C00001C00001C00001C00001C0000FF8000FFC0
00FF800013197F9816>I<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C
78001CF0001CE0001DF0001FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C
07001C03807F07E0FF8FF07F07E01419809816>75 D<FFC000FFC000FFC0001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00
001C00401C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<1FFC003F
FE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE001FFC0011
197E9816>79 D<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03
C01C03801C0F801FFF001FFE001FF8001C00001C00001C00001C00001C00001C00001C00
007F0000FF80007F000012197F9816>I<7FE000FFF8007FFC001C1E001C0F001C07001C
07001C07001C07001C0F001C1E001FFC001FF8001FFC001C1C001C0E001C0E001C0E001C
0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>82
D<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF0
0007FC0000FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC
00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00007FC000FFE0007FC0013197F9816>I<7F07F0FF8FF87F07F01C01C01C01C0
1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C0
1C01C01C01C00E03800E038007070007FF0003FE0000F8001519809816>I<FFF0FFF0FF
F0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000FFF0FFF0FFF00C20789C16>91
D<FFF0FFF0FFF00070007000700070007000700070007000700070007000700070007000
7000700070007000700070007000700070007000700070FFF0FFF0FFF00C207F9C16>93
D<FFFF80FFFF80FFFF8011037E7E16>95 D<1FE0003FF0007FF800783C00300E00000E00
000E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E0
13127E9116>97 D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000F
FF800F83C00F00E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F
83C00FFF800EFF00063C001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000
E000E000F000700778073E0E1FFC0FF803F010127D9116>I<003F00007F00003F000007
0000070000070000070003C7000FF7001FFF003C1F00780F00700700E00700E00700E007
00E00700E00700E00700700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I<03
E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010
127D9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF00
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
3FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E
00380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803
C0E000E0E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E
0000FE00007E00000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E
03800E03800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87F
C7F01519809816>I<018003C003C0018000000000000000007FC07FC07FC001C001C001
C001C001C001C001C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<00300078
0078003000000000000000001FF81FF81FF8003800380038003800380038003800380038
00380038003800380038003800380038003800386070F0F0FFE07FC03F800D237E9916>
I<7E0000FE00007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E
000E3C000E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCF
F07F87F01419809816>I<FFC000FFC000FFC00001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C00001C000FFFF80FFFF80FFFF8011197E9816>I<7E3C00FEFE007FFF000F87800F0380
0E03800E03800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F8
7FC7F01512809116>110 D<03E0000FF8001FFC003C1E00780F00700700E00380E00380
E00380E00380E00380F00780700700780F003C1E001FFC000FF80003E00011127E9116>
I<FF0FC0FF3FE0FF7FE007F04007C0000780000780000700000700000700000700000700
00070000070000070000FFFC00FFFC00FFFC0013127F9116>114
D<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF81EFFFCFFF8C7
E00F127D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF0007000007
000007000007000007000007000007000007010007038007038007038007870003FE0001
FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E03800E03800E0380
0E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F01512809116>
I<FF1FE0FFBFE0FF1FE038038038038038038038038038E38019F30019F30019B3001DB7
001DB7001DB7001DB7000F1E000F1E000F1E0013127F9116>119
D E /Fh 16 102 df<60F0F070101020204040040A7D830A>44 D<60F0F06004047D830A
>46 D<07C018303018701C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C60
0C701C30181C7007C00F157F9412>48 D<03000700FF0007000700070007000700070007
0007000700070007000700070007000700070007007FF00C157E9412>I<0F8030E04070
8030C038E0384038003800700070006000C00180030006000C08080810183FF07FF0FFF0
0D157E9412>I<0FE030306018701C701C001C00180038006007E000300018000C000E00
0EE00EE00EC00C401830300FE00F157F9412>I<00300030007000F001F0017002700470
08701870107020704070C070FFFE0070007000700070007003FE0F157F9412>I<01F006
08080C181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E300C301818
3007C00F157F9412>54 D<40007FFE7FFC7FF8C008801080200040008000800100010003
000200060006000E000E000E000E000E0004000F167E9512>I<07E018302018600C600C
700C78183E101F600FC00FF018F8607C601EC00EC006C006C004600C38300FE00F157F94
12>I<07C0183030186018E00CE00CE00EE00EE00E601E301E186E0F8E000E000C001C70
187018603020C01F800F157F9412>I<0FC4302C601C400CC004C004C004E00070007F00
3FE00FF801FC001C000E0006800680068006C004E008D81087E00F177E9614>83
D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97
D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001F06001C03
001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C03001B0E0010F8001217
809614>I<07F01838303870106000E000E000E000E000600070083008183007C00D0E7F
8D10>I<0FC0186030307038E018FFF8E000E000E000600070083010183007C00D0E7F8D
10>101 D E /Fi 1 52 df<00080000001C0000003600000063000000C180000180C000
03006000060030000C00180018000C003000060060000300C0000180C000018060000300
3000060018000C000C00180006003000030060000180C00000C180000063000000360000
001C000000080000191A7D991F>51 D E /Fj 1 59 df<60F0F06004047D830A>58
D E /Fk 3 106 df<FFFFFF807FFFFF8000000000000000000000000000000000000000
0000000000FFFFFF80FFFFFF800000000000000000000000000000000000000000000000
007FFFFF80FFFFFF8019127E911E>17 D<00800180030003000300060006000C000C000C
0018001800180030003000600060006000C000C000600060006000300030001800180018
000C000C000C00060006000300030003000180008009267D9B0F>104
D<C000C000600060006000300030001800180018000C000C000C00060006000300030003
0001800180030003000300060006000C000C000C00180018001800300030006000600060
00C000C00009267E9B0F>I E /Fl 78 126 df<60F0F0F0F0F0F0F0F0F0F0F0F0F06000
00000060F0F0600417789614>33 D<C060E0E0E0E0E0E0E0E0C060C060C060C060C06040
400B0B7C9614>I<071C00071C00071C00071C00071C007FFF00FFFF80FFFF800E38000E
38000E38000E38000E38000E38000E3800FFFF80FFFF807FFF001C70001C70001C70001C
70001C700011177F9614>I<3806007C0E006C0E00EE1C00EE1C00EE3800EE38006C3800
7C700038700000700000E00000E00001C00001C00001C000038000038000070000070E00
071F000E1B000E3B800E3B801C3B801C3B80381B00381F00180E00111D7F9914>37
D<0700000F800018C00038E00038E00038E00038C00039CF80398F801F1C001E1C001E38
001E38001E38003F7000677000E3F000E3E000E1E380E1E38073F3803F3F001E1E001117
7F9614>I<60F0F878181818303060C080050C789614>I<00C001C0030006000C001C0038
003000700070006000E000E000E000E000E000E000E000600070007000300038001C000C
000600030001C000C00A1D7A9914>I<8000C0006000300018001C000E00060007000700
0300038003800380038003800380038003000700070006000E001C00180030006000C000
8000091D7C9914>I<038003800380638CF39EFFFE3FF80FE00FE03FF8FFFEF39E638C03
80038003800F107E9214>I<01C00001C00001C00001C00001C00001C00001C000FFFF80
FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00011117F9314>I<70F8
FCFC7C0C1830E0C0060A798414>I<FFFEFFFEFFFE0F037E8C14>I<70F8F8F87005057984
14>I<0006000E000E001C001C003800380070007000E000E001C001C003800380038007
0007000E000E001C001C003800380070007000E000E000C0000F1D7E9914>I<07C00FE0
1C7038383018701C701CE00EE00EE00EE00EE00EE00EE00EE00EE00E701C701C38383838
1C700FE007C00F177E9614>I<0300030007000F003F00F7004700070007000700070007
000700070007000700070007000700070007007FF07FF00C177C9614>I<0FC01FF03838
701CE00EE00EE00E400E000E001C001C00380030007000E001C0030006000C00180E300E
7FFE7FFE0F177E9614>I<0FC01FF03838701C701C201C001C001C0038007007E007F000
38001C000E000E400EE00EE00E701C78383FF00FC00F177E9614>I<00780000F80001B8
0001B8000338000338000638000E38000C38001C3800383800303800703800E03800FFFF
80FFFF8000380000380000380000380000380001FF0001FF0011177F9614>I<3FFC7FFC
700070007000700070007000700077C07FF07838201C000C000E000E400EE00EE01C601C
78783FF00FC00F177E9614>I<01F007F80E1C1C1C381C300070007000E000E7C0EFF0F8
38F01CF00CE00EE00E600E700E700C381C1C380FF007C00F177E9614>I<E000FFFEFFFE
E01CE0380030007000E000C001C001800380038007000700070007000E000E000E000E00
0E000E0004000F187E9714>I<0FE03FF8783C701CE00EE00EE00EE00E701C1EF003801F
F03838701CE00EE00EE00EE00EF01E701C38381FF007C00F177E9614>I<07C01FE03830
7038601CE01CE00CE00EE00E601E701E383E1FEE07CE000E001C001C001C7038707070E0
3FC01F000F177E9614>I<70F8F8F87000000000000070F8F8F8700510798F14>I<70F8F8
F87000000000000060F0F8F878183070E0800515798F14>I<000E003E007C00F003E007
C01F003E00F800F000F8003E001F0007C003E000F0007C003E000E0F137E9414>I<FFFF
80FFFF807FFF800000000000000000007FFF80FFFF80FFFF8011097F8F14>I<4000E000
F8007C001E000F8007C001F000F8003E001E003E00F801F007C00F801E007C00F800E000
40000F157E9514>I<01C00003E00003E000036000036000077000077000077000077000
0630000E38000E38000E38000E38000E38001FFC001FFC001C1C001C1C003C1E00380E00
FE3F80FE3F8011177F9614>65 D<FFF0FFFC381E380E3807380738073807380E381E3FFC
3FFC381E380E38073807380738073807380E381EFFFCFFF810177F9614>I<03C60FFE1C
3E181E381E700E700E600EE000E000E000E000E000E000E000600E700E700E380C181C1C
380FF003C00F177E9614>I<FFE000FFF800383C00381E00380E00380700380700380700
380380380380380380380380380380380380380380380380380700380700380E00381E00
383C00FFF800FFE00011177F9614>I<FFFF00FFFF003807003807003807003807003800
003800003870003870003FF0003FF0003870003870003800003800003800003803803803
80380380380380FFFF80FFFF8011177F9614>I<FFFFFFFF380738073807380738003800
387038703FF03FF0387038703800380038003800380038003800FF00FF0010177E9614>
I<03C60FFE1C3E181E381E700E700E600EE000E000E000E000E07FE07FE00E600E700E70
0E381E181E1C3E0FFE03CE10177F9614>I<FE7FFE7F381C38383878387038E039E039C0
3B803FC03FC03FE03CE03CE03870387038383838381C381CFE3FFE3F10177F9614>75
D<FF00FF0038003800380038003800380038003800380038003800380038003800380038
07380738073807FFFFFFFF10177E9614>I<FE0FE0FE0FE03E0F803B1B803B1B803B1B80
3B1B803BBB803BBB8039B38039B38039B38039F38038E38038E380380380380380380380
380380380380380380FE0FE0FE0FE01317809614>I<1FF07FFC783C701CE00EE00EE00E
E00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00E701C783C7FFC1FF00F177E96
14>79 D<FFF0FFFC381E380E38073807380738073807380E381E3FFC3FF0380038003800
38003800380038003800FE00FE0010177F9614>I<FFE000FFF800383C00381C00380E00
380E00380E00380E00381C00383C003FF8003FF000383800381C00381C00381C00381C00
381C00381C80381DC0381DC0FE0F80FE070012177F9614>82 D<0FCC1FFC307C603CE01C
E01CE01CE00070007E003FE00FF001F8001C001E000E600EE00EE00EF01CF838FFF0C7E0
0F177E9614>I<7FFF80FFFF80E1C380E1C380E1C380E1C38001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8
000FF80011177F9614>I<FE0FE0FE0FE038038038038038038038038038038038038038
03803803803803803803803803803803803803803803803803803803801C07001C07000E
0E0007FC0001F0001317809614>I<FC1F80FC1F80380E00380E00380E001C1C001C1C00
1C1C001C1C001C1C000E38000E38000E38000E3800063000077000077000077000036000
03600003E00003E00001C00011177F9614>I<FFE0FFE0E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00FFE0FFE00B1D799914>91 D<C000E000E00070007000380038001C001C000E000E0007
00070003800380038001C001C000E000E00070007000380038001C001C000E000E00060F
1D7E9914>I<FFE0FFE000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E0FFE0FFE00B1D7F9914>I<FF
FEFFFEFFFE0F037E7E14>95 D<1FC0007FF000707800201800001C00001C0007FC001FFC
003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97
D<FC0000FC00001C00001C00001C00001C00001C00001CF8001DFE001F07001E03001C03
801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC000CF8001217
809614>I<03F80FFC1C1C380870006000E000E000E000E00060007000380E1C1E0FFC03
F00F107E8F14>I<007E00007E00000E00000E00000E00000E00000E0007CE000FFE001C
3E00301E00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00301E00383E001F
EFC007CFC012177F9614>I<07E00FF01C38301C700CE00EE00EFFFEFFFEE00060007000
380E1C1E0FFC03F00F107E8F14>I<007C00FE01CE03840380038003807FFEFFFE038003
8003800380038003800380038003800380038003807FFC7FFC0F177F9614>I<07CF001F
FF80383B80301800701C00701C00701C003018003838003FF00037C0007000007000003F
F8001FFC003FFE00700F00E00380E00380E00380E003807007003C1E001FFC0007F00011
197F8F14>I<FC0000FC00001C00001C00001C00001C00001C00001C78001DFE001F8600
1E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF8FE0
FF8FE01317809614>I<030007800780030000000000000000007F807F80038003800380
038003800380038003800380038003800380FFFCFFFC0E187D9714>I<006000F000F000
6000000000000000001FF01FF00070007000700070007000700070007000700070007000
7000700070007000700070007040E0E0C07F803F000C207E9714>I<FC0000FC00001C00
001C00001C00001C00001C00001DFF801DFF801C3C001C78001CF0001DE0001FC0001FC0
001FE0001EF0001C70001C38001C38001C1C00FE3F80FE3F8011177F9614>I<FF80FF80
038003800380038003800380038003800380038003800380038003800380038003800380
0380FFFEFFFE0F177E9614>I<FB8E00FFDF003CF3803CF38038E38038E38038E38038E3
8038E38038E38038E38038E38038E38038E380FEFBE0FE79E01310808F14>I<FC7800FD
FE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C
0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00EE00EE00EE00EE00EE0
0E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E03001C03801C01C0
1C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C00001C0000
1C00001C00001C00001C0000FF8000FF80001218808F14>I<03CE000FFE001C3E00301E
00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00301E001C3E000FEE0007CE
00000E00000E00000E00000E00000E00000E00007FC0007FC012187F8F14>I<FE1F00FE
7F800EE3800F81000F00000F00000E00000E00000E00000E00000E00000E00000E00000E
0000FFF000FFF00011107F8F14>I<0FD83FF86038C038C038F0007F803FF007F8001C60
06E006F006F81CFFF8CFE00F107E8F14>I<030007000700070007007FFCFFFC07000700
070007000700070007000700070E070E070E070C03FC00F00F157F9414>I<FC3F00FC3F
001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C1F
000FFFE003E7E01310808F14>I<FE3F80FE3F801C1C001C1C001C1C001C1C000E38000E
38000E380006300007700007700007700003E00003E00003E00011107F8F14>I<FF7F80
FF7F80380E00380E00380E00380E0039CE0039CE0019CC001B6C001B6C001A6C001A6C00
1E7C000E78000E780011107F8F14>I<7E3F007E3F001E38000E780007700007E00003E0
0001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F8F14>I<FE
3F80FE3F801C1C001C1C001C1C000E1C000E38000E380007380007300007300003700003
700001E00001E00001E00001C00001C00001C0000380007380007700007E00003C000011
187F8F14>I<003E00FE01E003800380038003800380038003800380038003807F00FE00
7F00038003800380038003800380038003800380038001E000FE003E0F1D7E9914>123
D<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0031D789914>
I<7800FE000F00038003800380038003800380038003800380038001FC00FE01FC038003
80038003800380038003800380038003800F00FE0078000F1D7E9914>I
E /Fm 16 102 df<18387838081010204080050A7E830B>44 D<01E006300C1018101010
301030106030603060306030C060C060C060C040C0C080808180C10046003C000C157B94
12>48 D<004000C000C003800D8001800180030003000300030006000600060006000C00
0C000C000C001800FF800A157C9412>I<00F00308040C0904088610861086210C120C1C
1800300060008003000C0010002004200C7C18C7F081E00F157D9412>I<00F8010C0206
0506088608860904060C0018007003E000300010001000186030E030C020806041803E00
0F157D9412>I<000C000C000C0018001800180030003000600060004000C00180011802
1806300430083010307F6080FE0060006000C000C000C000800F1B7F9412>I<060C07F8
07F00480080008000800080017C0186010600070007000706070F0E0E0E080C081804300
3C000E157C9412>I<00F0030806080C381838180030003000678068C07040E060C060C0
60C060C0C0C0C0C080C10042003C000D157B9412>I<17822F8438CC6078401880108020
0020004000C00080018001800300030003000600060006000C000C000F157B9412>I<00
F8010C020604060C060C060E0C0F1807B003E007F018F83038601C601CC018C018C01060
2030C01F000F157D9412>I<00E0031006080C08180818081818301830183038103818F0
0730003000600060E0C0E0808100860078000D157C9412>I<072008E018E0306030C060
C060C060C0C180C188C1884388659038E00D0E7C8D12>97 D<3E000C000C000C000C0018
001800180018003700388030C030C060C060C060C060C0C180C180C1004300660038000A
177C9610>I<03C00C6018E030E030006000600060004000C0004020604021801E000B0E
7C8D10>I<007C00180018001800180030003000300030076008E018E0306030C060C060
C060C0C180C188C1884388659038E00E177C9612>I<07001880304060404080FF00C000
C000C0008000C040C08043003C000A0E7B8D10>I E /Fn 12 107
df<FFFFFF80FFFFFF8019027D8A20>0 D<400020C000606000C03001801803000C060006
0C0003180001B00000E00000E00001B000031800060C000C06001803003001806000C0C0
006040002013147A9320>2 D<01800180018001804182F18F399C0FF003C003C00FF039
9CF18F4182018001800180018010127E9215>I<03C00FF01FF83FFC7FFE7FFEFFFFFFFF
FFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<000001800000078000001E00
000078000001E00000078000001E00000078000001E00000078000001E00000078000000
E0000000780000001E0000000780000001E0000000780000001E0000000780000001E000
0000780000001E0000000780000001800000000000000000000000000000000000000000
00000000000000007FFFFF00FFFFFF8019227D9920>20 D<C0000000F00000003C000000
0F00000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F00
0000038000000F0000003C000000F0000003C000000F0000003C000000F0000003C00000
0F0000003C00000070000000C00000000000000000000000000000000000000000000000
00000000000000007FFFFF00FFFFFF8019227D9920>I<0000018018000007807800000E
00E000003803800000F00F000003C03C000007007000001C01C000007807800001E01E00
0007807800000E00E000003803800000F00F000000F00F00000038038000000E00E00000
078078000001E01E00000070070000001C01C000000F00F0000003C03C000000F00F0000
0038038000000E00E000000780780000018018251C7E972A>28 D<000003000000000300
0000000180000000018000000000C00000000060007FFFFFF000FFFFFFF8000000000E00
000000070000000001E0000000007800000001E0000000038000000006000000001C00FF
FFFFF8007FFFFFF0000000006000000000C0000000018000000001800000000300000000
03000025187E952A>41 D<0000600000600000C00000C000018000018000018000030000
0300000600000600000C00000C0000180000180000180000300000300000600000600000
C00000C0000180000180000300000300000300000600000600000C00000C000018000018
0000300000300000300000600000600000C0000040000013287A9D00>54
D<400002C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006C000
06C00006C00006C00006C00006C00006C00006C0000660000C60000C3000181C00700F01
E003FF8000FE00171A7E981C>91 D<00FE0003FF800F01E01C007030001860000C60000C
C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006
C00006C00006C00006C00006C00006C00006400002171A7E981C>I<C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C002297B
9E0C>106 D E /Fo 52 123 df<387CFEFEFE7C3807077C8610>46
D<0000180000380000380000700000700000E00000E00000E00001C00001C00003800003
80000380000700000700000700000E00000E00001C00001C00001C000038000038000070
0000700000700000E00000E00001C00001C00001C0000380000380000700000700000700
000E00000E00000E00001C00001C0000380000380000380000700000700000E00000E000
00C0000015317DA41C>I<00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C7C
007CFC007CFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC
007EFC007EFC007E7C007C7C007C7C007C3E00F83E00F81F01F00F83E007FFC000FE0017
207E9F1C>I<00180000780001F800FFF800FFF80001F80001F80001F80001F80001F800
01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800
01F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C9F1C>
I<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003
F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0180380
180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007
FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C000
1F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF
00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E0
0003E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E0
0E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E0
0007E00007E00007E000FFFE00FFFE17207E9F1C>I<1000201E01E01FFFC01FFF801FFF
001FFE001FF8001BC00018000018000018000018000019FC001FFF001E0FC01807E01803
E00003F00003F00003F80003F83803F87C03F8FE03F8FE03F8FC03F0FC03F07007E03007
C01C1F800FFF0003F80015207D9F1C>I<001F8000FFE003F07007C0F00F01F81F01F83E
01F83E01F87E00F07C00007C0000FC0800FC7FC0FCFFE0FD80F0FF00F8FE007CFE007CFC
007EFC007EFC007EFC007E7C007E7C007E7C007E3C007C3E007C1E00F80F00F00783E003
FFC000FF0017207E9F1C>I<6000007800007FFFFE7FFFFE7FFFFC7FFFF87FFFF87FFFF0
E00060E000C0C00180C00300C00300000600000C00001C00001800003800007800007800
00F00000F00000F00001F00001F00001F00003F00003F00003F00003F00003F00003F000
03F00001E00017227DA11C>I<01FE0007FF800F83E01E01F03E00F07C00F87C0078FC00
7CFC007CFC007CFC007EFC007EFC007EFC007E7C00FE7C00FE3E01FE1E037E0FFE7E07FC
7E00207E00007C00007C1E007C3F00F83F00F83F00F03F01E01E03C01C0F800FFE0003F8
0017207E9F1C>57 D<000070000000007000000000F800000000F800000000F800000001
FC00000001FC00000003FE00000003FE00000003FE00000006FF000000067F0000000E7F
8000000C3F8000000C3F800000183FC00000181FC00000381FE00000300FE00000300FE0
0000600FF000006007F00000E007F80000FFFFF80000FFFFF800018001FC00018001FC00
038001FE00030000FE00030000FE000600007F000600007F00FFE00FFFF8FFE00FFFF825
227EA12A>65 D<FFFFFF8000FFFFFFE00007F001F80007F000FC0007F0007E0007F0007E
0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007E0007F000FE00
07F000FC0007F003F80007FFFFF00007FFFFF00007F001FC0007F0007E0007F0003F0007
F0003F8007F0001F8007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0
001FC007F0003F8007F0003F8007F0007F0007F001FE00FFFFFFF800FFFFFFC00022227E
A128>I<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F80
0007801F800007803F000003803F000003807F000001807E000001807E00000180FE0000
0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
007E000000007E000001807F000001803F000001803F000003801F800003000F80000300
07C000060003F0000C0001F800380000FF00F000001FFFC0000003FE000021227DA128>
I<FFFFFF8000FFFFFFF00007F003FC0007F0007E0007F0003F0007F0001F8007F0000FC0
07F00007E007F00007E007F00007F007F00003F007F00003F007F00003F007F00003F807
F00003F807F00003F807F00003F807F00003F807F00003F807F00003F807F00003F807F0
0003F807F00003F007F00003F007F00003F007F00007E007F00007E007F0000FC007F000
1F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFFFF800025227EA12B>I<FFFF
FFFCFFFFFFFC07F000FC07F0003C07F0001C07F0000C07F0000E07F0000E07F0000607F0
180607F0180607F0180607F0180007F0380007F0780007FFF80007FFF80007F0780007F0
380007F0180007F0180007F0180307F0180307F0000307F0000607F0000607F0000607F0
000E07F0000E07F0001E07F0003E07F001FCFFFFFFFCFFFFFFFC20227EA125>I<FFFFFF
F8FFFFFFF807F001F807F0007807F0003807F0001807F0001C07F0001C07F0000C07F000
0C07F0180C07F0180C07F0180007F0180007F0380007F0780007FFF80007FFF80007F078
0007F0380007F0180007F0180007F0180007F0180007F0000007F0000007F0000007F000
0007F0000007F0000007F0000007F00000FFFFE000FFFFE0001E227EA123>I<0003FE00
40001FFFC0C0007F00F1C001F8003FC003F0000FC007C00007C00FC00003C01F800003C0
3F000001C03F000001C07F000000C07E000000C07E000000C0FE00000000FE00000000FE
00000000FE00000000FE00000000FE00000000FE00000000FE000FFFFC7E000FFFFC7F00
001FC07F00001FC03F00001FC03F00001FC01F80001FC00FC0001FC007E0001FC003F000
1FC001FC003FC0007F80E7C0001FFFC3C00003FF00C026227DA12C>I<FFFF83FFFEFFFF
83FFFE07F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F000
1FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007FFFFFF
C007FFFFFFC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC0
07F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007
F0001FC007F0001FC0FFFF83FFFEFFFF83FFFE27227EA12C>I<FFFFE0FFFFE003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F80003F80003F800FFFFE0FFFFE013227FA115>I<FFFFE000FFFFE00007
F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F0001807F0001807F0001807F0001807F0003807F0003807F0007007F0007007
F000F007F001F007F007F0FFFFFFF0FFFFFFF01D227EA122>76 D<FFF000000FFFFFF800
001FFF07F800001FE006FC000037E006FC000037E006FC000037E0067E000067E0067E00
0067E0063F0000C7E0063F0000C7E0061F800187E0061F800187E0060FC00307E0060FC0
0307E0060FC00307E00607E00607E00607E00607E00603F00C07E00603F00C07E00601F8
1807E00601F81807E00601F81807E00600FC3007E00600FC3007E006007E6007E006007E
6007E006003FC007E006003FC007E006001F8007E006001F8007E006001F8007E006000F
0007E0FFF00F00FFFFFFF00600FFFF30227EA135>I<0007FC0000003FFF800000FC07E0
0003F001F80007E000FC000FC0007E001F80003F001F80003F003F00001F803F00001F80
7F00001FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE
00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F00001FC07F00
001FC03F00001F803F80003F801F80003F000FC0007E0007E000FC0003F001F80000FC07
E000003FFF80000007FC000023227DA12A>79 D<FFFFFF00FFFFFFE007F007F007F001FC
07F000FC07F0007E07F0007E07F0007F07F0007F07F0007F07F0007F07F0007F07F0007E
07F0007E07F000FC07F001FC07F007F007FFFFE007FFFF0007F0000007F0000007F00000
07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000
07F00000FFFF8000FFFF800020227EA126>I<FFFFFE0000FFFFFFC00007F007F00007F0
01F80007F000FC0007F0007E0007F0007F0007F0007F0007F0007F0007F0007F0007F000
7F0007F0007F0007F0007E0007F000FC0007F001F80007F007F00007FFFFC00007FFFF80
0007F00FE00007F007F00007F003F80007F001FC0007F001FC0007F001FC0007F001FC00
07F001FC0007F001FC0007F001FC0007F001FC0007F001FC0607F000FE0607F000FF0CFF
FF803FF8FFFF800FF027227EA12A>82 D<01FC0407FF8C1F03FC3C007C7C003C78001C78
001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03
FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC
003CFF00F8C7FFE080FF8018227DA11F>I<7FFFFFFF807FFFFFFF807E03F80F807803F8
07807003F803806003F80180E003F801C0E003F801C0C003F800C0C003F800C0C003F800
C0C003F800C00003F800000003F800000003F800000003F800000003F800000003F80000
0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
03F800000003F800000003F800000003F800000003F800000003F800000003F8000003FF
FFF80003FFFFF80022227EA127>I<FFFF803FFCFFFF803FFC07F000018007F000018007
F000018007F000018007F000018007F000018007F000018007F000018007F000018007F0
00018007F000018007F000018007F000018007F000018007F000018007F000018007F000
018007F000018007F000018007F000018007F000018007F000018007F000018007F00001
8003F000030003F800030001F800060000FC000E00007E001C00003F80F800000FFFE000
0001FF000026227EA12B>I<FFFF800FFEFFFF800FFE07F00000C007F80000C003F80001
8003F800018001FC00030001FC00030001FE00070000FE00060000FF000600007F000C00
007F800C00003F801800003F801800003FC03800001FC03000001FE03000000FE0600000
0FF060000007F0C0000007F0C0000007F9C0000003F980000003FD80000001FF00000001
FF00000000FE00000000FE00000000FE000000007C000000007C00000000380000000038
000027227FA12A>I<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0
003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F
07E03F18167E951B>97 D<FF000000FF0000001F0000001F0000001F0000001F0000001F
0000001F0000001F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8001F
F07C001F801E001F001F001F000F801F000F801F000FC01F000FC01F000FC01F000FC01F
000FC01F000FC01F000FC01F000FC01F000F801F001F801F801F001FC03E001EE07C001C
3FF800180FC0001A237EA21F>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C
0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00600F
C0E007FF8000FE0014167E9519>I<0001FE000001FE0000003E0000003E0000003E0000
003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0001FC3E0007
FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E00FC003E00FC
003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00FE000F
83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F0
7C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E0018
1F00300FC07003FFC000FF0015167E951A>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03
E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC003000003000003800
003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C7C00
7C3F01F80FFFE001FF0018217E951C>103 D<FF000000FF0000001F0000001F0000001F
0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F
07E0001F1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F
003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F
003E001F003E00FFE1FFC0FFE1FFC01A237EA21F>I<1C003E007F007F007F003E001C00
0000000000000000000000000000FF00FF001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310>I<FF000000FF0000
001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
001F0000001F0000001F00FF801F00FF801F0038001F0060001F01C0001F0380001F0700
001F0E00001F1C00001F7E00001FFF00001FCF00001F0F80001F07C0001F03E0001F01E0
001F01F0001F00F8001F007C001F003C00FFE0FFC0FFE0FFC01A237EA21E>107
D<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B
237EA210>I<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F00
1F801F801F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>
I<FF07E000FF1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E
001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E
001F003E001F003E00FFE1FFC0FFE1FFC01A167E951F>I<00FE0007FFC00F83E01E00F0
3E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C
7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF0FE000FF3FF8001FF07C
001F803E001F001F001F001F801F001F801F000FC01F000FC01F000FC01F000FC01F000F
C01F000FC01F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC001F3FF8
001F0FC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
00FFE00000FFE000001A207E951F>I<FE1F00FE3FC01E67E01EC7E01E87E01E87E01F83
C01F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
001F0000FFF000FFF00013167E9517>114 D<0FF3003FFF00781F00600700E00300E003
00F00300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E003
80F00700FC0E00EFFC00C7F00011167E9516>I<01800001800001800001800003800003
80000780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F
80000F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007
C30003FE0000F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E001F003E001F
003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F
003E001F003E001F003E001F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F
>I<FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0
180001F0300001F0300000F8600000F86000007CC000007CC000007FC000003F8000003F
8000001F0000001F0000000E0000000E00001B167F951E>I<FFE7FF07F8FFE7FF07F81F
007800C00F807801800F807C01800F807C018007C07E030007C0DE030007E0DE070003E0
DF060003E18F060001F18F0C0001F38F8C0001FB079C0000FB07D80000FE03D800007E03
F000007E03F000007C01F000003C01E000003800E000001800C00025167F9528>I<FFE0
7FC0FFE07FC00F801C0007C0380003E0700003F0600001F8C00000F98000007F8000003F
0000001F0000001F8000003FC0000037C0000063E00000C1F00001C0F8000380FC000700
7E000E003E00FF80FFE0FF80FFE01B167F951E>I<FFE01FE0FFE01FE00F8006000F8006
000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F860
00007CC000007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E00
00000C0000000C00000018000078180000FC380000FC300000FC60000069C000007F8000
001F0000001B207F951E>I<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00
C07E0000FC0000F80001F00003F03007E03007C0300F80701F80703F00603E00E07C03E0
FFFFE0FFFFE014167E9519>I E /Fp 56 123 df<0001FF0000001FFFC000007F80F000
00FC00F80001F801F80003F803FC0007F003FC0007F003FC0007F003FC0007F001F80007
F000F00007F000000007F000000007F000000007F0000000FFFFFFFC00FFFFFFFC00FFFF
FFFC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001
FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC
0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC00
7FFF1FFFC07FFF1FFFC07FFF1FFFC0222A7FA926>12 D<FFFF80FFFF80FFFF80FFFF80FF
FF80FFFF8011067F9017>45 D<1C003E007F00FF80FF80FF807F003E001C0009097B8813
>I<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F803F001F807F00
1FC07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF00
1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF00
1FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC0
7E0007E0FC0001FFF000003F80001B277DA622>48 D<000E00001E00007E0007FE00FFFE
00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622
>I<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003FC0FF00
3FE0FF001FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F800000
7F000000FE000000FC000001F8000003F0000003E00000078000000F0000001E0000003C
00E0007000E000E000E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFF
FFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC000F81FE
001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F800000FF000000FF
000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E0000007F
0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0FF003F
E0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF80001B277D
A622>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE00
00077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E00
03807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8
FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE00
0000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFFFE000F
FFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000000E0000000E
0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C003F0000001F8000
001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE
001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF80001B
277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F800FC03F801FC0
3F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC000FF3F
F800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0FF00
1FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F800FC0
3F0007E07E0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFFFF
F03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C
00E0003800E0007000E000E0000000E0000001C000000380000007800000078000000F00
00000F0000001F0000001F0000003F0000003E0000003E0000007E0000007E0000007E00
00007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
00007C0000003800001C297CA822>I<003FC00001FFF00003FFFC0007C07E000F003F00
1E001F001E000F803E000F803E000F803F000F803F000F803FC00F003FF01F001FFC1E00
1FFE3C000FFFF80007FFE00003FFF80001FFFC0001FFFE0007FFFF000F0FFF801E03FFC0
3C01FFC07C007FE078001FE0F80007E0F80007E0F80003E0F80003E0F80003E0F80003C0
7C0003C07C0007803F000F001FC03E000FFFFC0003FFF800007FC0001B277DA622>I<00
7F800001FFF00007FFF8000FE0FC001F807E003F803F007F003F007F001F80FF001F80FF
001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F001FE07F003FE03F
003FE01F807FE00F807FE007C1DFE003FF9FE0007E1FE000001FE000001FC000001FC000
001FC000003F801F003F803F803F003F803F003F807E003F807C001F01F8001E03F0000F
FFE00007FF800001FE00001B277DA622>I<000003800000000007C00000000007C00000
00000FE0000000000FE0000000000FE0000000001FF0000000001FF0000000003FF80000
00003FF8000000003FF80000000073FC0000000073FC00000000F3FE00000000E1FE0000
0000E1FE00000001C0FF00000001C0FF00000003C0FF80000003807F80000007807FC000
0007003FC0000007003FC000000E003FE000000E001FE000001E001FF000001C000FF000
001FFFFFF000003FFFFFF800003FFFFFF80000780007FC0000700003FC0000700003FC00
00E00001FE0000E00001FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFE
FFFE001FFFFEFFFE001FFFFE2F297EA834>65 D<FFFFFFF80000FFFFFFFF8000FFFFFFFF
C00003F8001FF00003F8000FF80003F80007FC0003F80003FC0003F80003FC0003F80003
FE0003F80001FE0003F80001FE0003F80001FE0003F80003FE0003F80003FC0003F80003
FC0003F80007F80003F8000FF00003F8001FE00003F800FFC00003FFFFFE000003FFFFFF
E00003F80007F00003F80003FC0003F80001FE0003F80001FE0003F80000FF0003F80000
FF0003F80000FF8003F80000FF8003F80000FF8003F80000FF8003F80000FF8003F80000
FF8003F80000FF0003F80001FF0003F80003FE0003F80007FC0003F8001FF800FFFFFFFF
F000FFFFFFFFC000FFFFFFFE000029297DA831>I<00003FF001800003FFFE0380000FFF
FF8780003FF007DF8000FF8001FF8001FE00007F8003FC00003F8007F000001F800FF000
000F801FE0000007801FE0000007803FC0000007803FC0000003807FC0000003807F8000
0003807F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000
000000FF8000000000FF8000000000FF8000000000FF80000000007F80000000007F8000
0000007FC0000003803FC0000003803FC0000003801FE0000003801FE0000007000FF000
00070007F000000E0003FC00001E0001FE00003C0000FF8000F800003FF007E000000FFF
FFC0000003FFFF000000003FF8000029297CA832>I<FFFFFFF80000FFFFFFFF8000FFFF
FFFFE00003FC001FF80003FC0007FC0003FC0001FE0003FC0000FF0003FC00007F8003FC
00003FC003FC00001FC003FC00001FE003FC00001FE003FC00000FF003FC00000FF003FC
00000FF003FC00000FF003FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC
00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC
00000FF003FC00000FF003FC00000FF003FC00001FE003FC00001FE003FC00001FC003FC
00003FC003FC00007F8003FC00007F0003FC0001FE0003FC0003FC0003FC001FF800FFFF
FFFFE000FFFFFFFF8000FFFFFFFC00002D297DA835>I<FFFFFFFFE0FFFFFFFFE0FFFFFF
FFE003FC001FE003FC0007F003FC0001F003FC0001F003FC0000F003FC00007003FC0000
7003FC00007003FC01C07803FC01C03803FC01C03803FC01C03803FC03C00003FC03C000
03FC0FC00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003
FC01C00E03FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC
00003C03FC00003803FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFF
FFF0FFFFFFFFF0FFFFFFFFF027297DA82D>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC
003FC003FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC00
00E003FC0000F003FC03807003FC03807003FC03807003FC03800003FC07800003FC0780
0003FC1F800003FFFF800003FFFF800003FFFF800003FC1F800003FC07800003FC078000
03FC03800003FC03800003FC03800003FC03800003FC00000003FC00000003FC00000003
FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFF
FC0000FFFFFC000024297DA82B>I<00007FE003000003FFFC0700001FFFFF0F00003FF0
0FFF0000FF8001FF0001FE0000FF0003F800003F0007F000003F000FF000001F001FE000
000F001FE000000F003FC000000F003FC0000007007FC0000007007F80000007007F8000
000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000
000000FF8000000000FF8000000000FF8001FFFFF87F8001FFFFF87F8001FFFFF87FC000
00FF003FC00000FF003FC00000FF001FE00000FF001FE00000FF000FF00000FF0007F000
00FF0003F80000FF0001FE0000FF0000FF8001FF00003FF007BF00001FFFFF1F000003FF
FE0F0000007FF003002D297CA836>I<FFFFF01FFFFEFFFFF01FFFFEFFFFF01FFFFE03FC
00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC
00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC
00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFFFF8003FFFFFFFF8003FC
00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC
00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC
00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFFFF
F01FFFFEFFFFF01FFFFE2F297DA836>I<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001
FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA8
1A>I<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC00
000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000
0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000
03FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003
FC0003C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC
001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF00
00003FF00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7F0
00038FE00001C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F0
000387F0000383F8000707F0000383F8000707F0000381FC000E07F0000381FC000E07F0
000380FE001C07F0000380FE001C07F0000380FF003807F00003807F003807F00003807F
003807F00003803F807007F00003803F807007F00003801FC0E007F00003801FC0E007F0
0003800FE1C007F00003800FE1C007F00003800FE1C007F000038007F38007F000038007
F38007F000038003FF0007F000038003FF0007F000038001FE0007F000038001FE0007F0
00038000FC0007F000038000FC0007F000FFFE00FC01FFFFC0FFFE007801FFFFC0FFFE00
7801FFFFC03A297DA841>I<FFFC0000FFFEFFFE0000FFFEFFFF0000FFFE03FF80000380
03FF8000038003BFC0000380039FE0000380039FF0000380038FF80003800387F8000380
0383FC0003800381FE0003800381FF0003800380FF80038003807FC0038003803FC00380
03801FE0038003800FF0038003800FF80380038007FC0380038003FC0380038001FE0380
038000FF0380038000FF83800380007FC3800380003FE3800380001FE3800380000FF380
03800007FB8003800007FF8003800003FF8003800001FF8003800000FF80038000007F80
038000007F80038000003F80038000001F80038000000F80FFFE00000780FFFE00000380
FFFE000003802F297DA836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC0
0001FC0007F00003F80003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF
003FC000007F803FC000007F807FC000007FC07F8000003FC07F8000003FC07F8000003F
C0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F
E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F8000003FC07FC000007F
C07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF00001FE
0007F00001FC0003F80003F80001FC0007F00000FF001FE000003FC07F8000000FFFFE00
000000FFE000002B297CA834>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC
000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003FE03FC0003FE03FC00
03FE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC0007F803FC000F
F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC000000
03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
FC00000003FC00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFF
F0000027297DA82F>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC007FE00003FC
000FF00003FC0007F80003FC0007FC0003FC0003FC0003FC0003FE0003FC0003FE0003FC
0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FC0003FC0007F80003FC
0007F80003FC001FE00003FC007FC00003FFFFFE000003FFFFF0000003FC00FC000003FC
007F000003FC003F800003FC003F800003FC001FC00003FC001FE00003FC001FE00003FC
001FE00003FC001FE00003FC001FE00003FC001FF00003FC001FF00003FC001FF00003FC
001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003FE1CFFFFF001FFF8FFFF
F0003FF030297DA834>82 D<007F806003FFF0E007FFF9E00F807FE01F001FE03E0007E0
7C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC00000
7FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF0
00007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0
F00001F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA8
26>I<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003F
C003C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003F
C000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC0000000003FC0000000003F
C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
C0000000003FC00000007FFFFFE000007FFFFFE000007FFFFFE0002B287EA730>I<FFFF
F0003FFF80FFFFF0003FFF80FFFFF0003FFF8003FE000001E00001FE000001C00001FF00
0003C00000FF000003800000FF0000038000007F8000070000007F8000070000007FC000
0F0000003FC0000E0000003FE0001E0000001FE0001C0000001FF0001C0000000FF00038
0000000FF0003800000007F8007000000007F8007000000007FC00F000000003FC00E000
000003FE01E000000001FE01C000000001FF01C000000000FF038000000000FF03800000
0000FF8780000000007F8700000000007FCF00000000003FCE00000000003FFE00000000
001FFC00000000001FFC00000000000FF800000000000FF800000000000FF80000000000
07F0000000000007F0000000000003E0000000000003E0000000000001C000000031297F
A834>86 D<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003FC0001
FE00001C0003FC0001FE00001C0001FE0001FF0000380001FE0000FF0000380001FF0000
FF0000780000FF0000FF8000700000FF0000FF8000700000FF8000FF8000F000007F8001
FFC000E000007F8001FFC000E000003FC003FFE001C000003FC0039FE001C000003FE003
9FE003C000001FE0070FF0038000001FE0070FF0038000001FF00F0FF0078000000FF00E
07F8070000000FF00E07F80700000007F81E07FC0E00000007F81C03FC0E00000007FC1C
03FC1E00000003FC3801FE1C00000003FC3801FE1C00000001FE7801FF3800000001FE70
00FF3800000001FE7000FF3800000000FFF000FFF000000000FFE0007FF000000000FFE0
007FF0000000007FC0003FE0000000007FC0003FE0000000003FC0003FC0000000003F80
001FC0000000003F80001FC0000000001F80001F80000000001F00000F80000000001F00
000F80000000000E00000700000044297FA847>I<01FF800007FFF0000F81F8001FC07E
001FC07E001FC03F000F803F8007003F8000003F8000003F8000003F80000FFF8000FFFF
8007FC3F800FE03F803F803F803F003F807F003F80FE003F80FE003F80FE003F80FE003F
807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A21>97
D<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE0000000
0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000F
E00000000FE1FE00000FE7FF80000FFE07E0000FF801F0000FF000F8000FE000FC000FE0
00FE000FE0007F000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE000
7F800FE0007F800FE0007F800FE0007F800FE0007F000FE0007F000FE0007F000FE000FE
000FE000FC000FF001F8000FF803F0000F9E07E0000F07FF80000E01FC0000212A7EA926
>I<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F00
00007F000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007F00
00007F0000007F8000003F8001C01F8001C00FC0038007E0070003F01E0000FFFC00001F
E0001A1B7E9A1F>I<00003FF80000003FF80000003FF800000003F800000003F8000000
03F800000003F800000003F800000003F800000003F800000003F800000003F800000003
F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007E00FF8000FC007F8
001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF0003F800FF0003F800
FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8007F
0003F8003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF8000FFF3FF80003F
C3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F000F801F801F800F803F80
0FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF00
0000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC001C007E0038003F8
1F0000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F87F03F87F03F07F07
F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007
F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF8018
2A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F007E107F007F007F00
7F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC000FC1F8001FFF
E00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF800FFF
FFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C00
01F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>I<FFE0000000FFE0
000000FFE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE07F00
000FE1FFC0000FE787E0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003F800
0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
03F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926>I<07000F801FC0
3FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE000000FE000000FE000000F
E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F
E000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F000FE01E000FE03C000FE078000F
E0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3F8000FE3F8000FC1FC000F
C0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FFFC3FFEFFFC3FFEFF
FC3FFE1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F800F
F000FFC1FFE03FFC00FFC383F0707E000FC603F8C07F000FCC01F9803F000FD801FF003F
800FF001FE003F800FF001FE003F800FE001FC003F800FE001FC003F800FE001FC003F80
0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
E001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE0
01FC003F800FE001FC003F800FE001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1F
FFC3FFF8351B7D9A3A>I<FFC07F0000FFC1FFC000FFC787E0000FCE03F0000FD803F000
0FD803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
03F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3F
FF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007
E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007
F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F
0001FFFC00003FE0001D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F000
0FF001F8000FE000FC000FE000FE000FE000FF000FE0007F000FE0007F000FE0007F800F
E0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE0
00FF000FE000FF000FE000FE000FE001FC000FF001F8000FF803F0000FFE0FE0000FE7FF
80000FE1FC00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
000FE00000000FE00000000FE0000000FFFE000000FFFE000000FFFE00000021277E9A26
>I<FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0FE0000FE0000FE0000F
E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
E000FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF01E03F03800F0700070F0
0070F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC00
00FC60007CE0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00161B7E9A1B>I<
00700000700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0
FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
07F00007F00007F00007F03807F03807F03807F03807F03807F03803F03803F87001F860
00FFC0001F8015267FA51B>I<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003
F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
0FE003F8000FE003F8000FE007F80007E007F80007E00FF80003F03BFF8001FFF3FF8000
3FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F0007000
07F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE03800000FE03800000
7F070000007F070000007F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000F
F80000000FF80000000FF800000007F000000007F000000003E000000003E000000001C0
0000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003
F001C007F003F001C007F807F803C003F807F8038003F807F8038001FC0EFC070001FC0E
FC070001FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000FF383F1E00007F383F1C00007F78
3F3C00003FF01FB800003FF01FB800003FF01FF800001FE00FF000001FE00FF000000FC0
07E000000FC007E000000FC007E00000078003C00000078003C0002F1B7F9A32>I<FFFC
0FFF00FFFC0FFF00FFFC0FFF0007F003C00003F807800001FC07800000FE0F000000FF1E
0000007F3C0000003FF80000001FF00000000FF00000000FF000000007F000000007F800
00000FFC0000001FFE0000001EFE0000003C7F000000783F800000F01FC00001E01FE000
01C00FE00003C007F000FFF01FFF80FFF01FFF80FFF01FFF80211B7F9A24>I<FFFE03FF
80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F800E00003FC01E000
01FC01C00001FC01C00000FE03800000FE038000007F070000007F070000007F8F000000
3F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF800000007
F000000007F000000003E000000003E000000001C000000001C000000003800000000380
000038078000007C07000000FE0F000000FE0E000000FE1E000000FE3C0000007C780000
003FE00000000FC000000021277F9A24>I<3FFFFF803FFFFF803F007F003C00FE003801
FE007803FC007803F8007007F800700FF000700FE000001FC000003FC000007F8000007F
000000FF000001FE038001FC038003F8038007F803800FF007800FE007801FE007003FC0
0F003F801F007F007F00FFFFFF00FFFFFF00191B7E9A1F>I E /Fq
12 122 df<01FFF803FFF80FFFF01E1E00180E00380600700600700600E00E00E00E00E0
0E00E00C00E01C00E01800E0300060600030C0001F000015127E9118>27
D<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C830C>I<00000380
00000F0000003C000000F0000003C000000F0000003C000000F0000003C000000F000000
3C000000F0000000F00000003C0000000F00000003C0000000F00000003C0000000F0000
0003C0000000F00000003C0000000F000000038019187D9520>I<000100030006000600
06000C000C000C0018001800180030003000300060006000C000C000C001800180018003
0003000300060006000C000C000C00180018001800300030003000600060006000C000C0
0010297E9E15>I<E0000000780000001E0000000780000001E0000000780000001E0000
000780000001E0000000780000001E00000007800000078000001E00000078000001E000
00078000001E00000078000001E00000078000001E00000078000000E000000019187D95
20>I<1FFFFFF01C03807030070030200700206007002040070020400E0020800E002080
0E0020000E0000001C0000001C0000001C0000001C000000380000003800000038000000
3800000070000000700000007000000070000000E0000000E0000000E0000000E0000001
E000007FFF00001C1C7F9B18>84 D<381F004E61804681C04701C08F01C08E01C00E01C0
0E01C01C03801C03801C03801C0700380710380710380E10380E2070064030038014127E
9119>110 D<07078009C86008D03008E03011C03011C03801C03801C038038070038070
0380700380600700E00700C00701800783000E86000E78000E00000E00001C00001C0000
1C00001C00003C0000FF8000151A819115>112 D<00C001C001C001C003800380038003
80FFF00700070007000E000E000E000E001C001C001C001C00382038203840384018800F
000C1A80990F>116 D<07878008C84010F0C020F1E020E3C040E18000E00000E00001C0
0001C00001C00001C000638080F38080F38100E5810084C60078780013127E9118>120
D<1C00C02701C04701C04701C08703808703800E03800E03801C07001C07001C07001C07
00180E00180E00180E001C1E000C3C0007DC00001C00001800603800F03000F06000E0C0
004180003E0000121A7E9114>I E /Fr 21 122 df<0007E0001C1000703800E07801C0
7801C03001C00001C0000380000380000380003FFFF00380F00380700700E00700E00700
E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801C03C0FF8F
F0151D7F9C17>12 D<387878380808101020204080050C7D830C>44
D<7070F06004047C830C>46 D<07F0001C18001E0C001C0E00180E00000E00000E0001FE
000F0E001C1C00301C00701C00E01C40E01C40E03C40E05C80709D803F0E0012127D9115
>97 D<3F00000F00000E00000E00000E00000E00000E00000E00001C00001C00001C0000
1C78001D86001E03003C03803801803801803801C03801C03801C0700380700380700380
700300700700700E00F00C00CC300083C000121D7C9C17>I<01F8071C0C1E181C381830
00700070007000E000E000E000600060047008301018200FC00F127D9112>I<0003F000
00F00000E00000E00000E00000E00000E00000E00001C00001C00001C000F1C0030DC00C
03C01C0380380380300380700380700380700380E00700E00700E0070060070060070070
0F00301E00186F00078FC0141D7D9C17>I<01F8070C0C061C073803300370037FFF7000
E000E000E00060006002300430081C3007C010127E9112>I<000038003CCC00C69C0183
08038380070380070380070380070380070700030600038C0004F0000400000C00000C00
000FFE0007FF800FFFC01801C02000C06000E0C000C0C000C0600180200300180E0007F0
00161C809215>103 D<07E00001E00001C00001C00001C00001C00001C00001C0000380
00038000038000038F8003B0C003C0E00780E00780E00700E00700E00700E00700E00E01
C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF9FF0141D7F9C17>I<00C001C0
01C0018000000000000000000000000000001F8007800380070007000700070007000700
0E000E000E000E000E000E001C001E00FF800A1D7F9C0C>I<07E001E001C001C001C001
C001C001C00380038003800380038003800700070007000700070007000E000E000E000E
000E000E001C001E00FF800B1D7F9C0C>108 D<1F8FC0FC00079061060003E076070007
80780700078078070007007007000700700700070070070007007007000E00E00E000E00
E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00FF8FF8
FF8021127F9124>I<1F8F8007B0C003C0E00780E00780E00700E00700E00700E00700E0
0E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF9FF014127F9117>I<00FC
000307000E01801C01C03800C03000C07000E07000E07000E0E001C0E001C0E001C06001
80600380700700380E001C180007E00013127E9115>I<1F9C07EE03CF078E078C070007
00070007000E000E000E000E000E000E001C001E00FFC010127F9110>114
D<03F20C0E18061004300438043E001FE00FF007F8003C401C400C400C6018E010D0608F
C00F127F9110>I<020002000200060006000C001C003C00FFE01C001C00380038003800
380038003800700070407040704070407080708031001E000B1A7C9910>I<FC1F803C07
801C0380380700380700380700380700380700380700700E00700E00700E00700E00701E
00701E00703C00305E001F9F8011127C9117>I<FF0FE03C03801C03001C02001C06001C
04001E08000E08000E10000E10000E200007200007400007C00007800007000003000002
000013127C9116>I<0FF0FE03C03801C03001C02001C06001C04001E08000E08000E100
00E10000E200007200007400007C00007800007000003000002000002000004000004000
708000F10000F10000E60000780000171A809116>121 D E /Fs
48 123 df<78FCFCFCFC7806067D850D>46 D<03F8000F1E001C07003C07803803807803
C07803C07803C0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803
E0F803E0F803E07803C07803C03803803C07801C07000F1E0003F800131B7E9A18>48
D<00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E0007FFF807FFF80111B7D9A18>I<07F8001FFE00383F80780FC0FC07C0FC07E0FC
03E0FC03E07803E00007E00007C00007C0000F80001F00001E0000380000700000E00001
80600300600600600800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F800
1FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F80001E00003C0003F800
001E00000F800007C00007C00007E03007E07807E0FC07E0FC07E0FC07C0780F80781F00
1FFE0007F800131B7E9A18>I<000180000380000780000F80001F80003F80006F8000CF
80008F80018F80030F80060F800C0F80180F80300F80600F80C00F80FFFFF8FFFFF8000F
80000F80000F80000F80000F80000F8001FFF801FFF8151B7F9A18>I<1801801FFF001F
FE001FFC001FF8001FC00018000018000018000018000019F8001E0E00180F8010078000
07C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F80381F001FFE0007
F000131B7E9A18>I<007E0003FF000781800F03C01E07C03C07C03C0380780000780000
F80000F8F800FB0E00FA0780FC0380FC03C0F803E0F803E0F803E0F803E07803E07803E0
7803C03C03C03C07801E0F0007FE0003F800131B7E9A18>I<6000007FFFE07FFFE07FFF
C07FFF807FFF80E00300C00600C00C00C0180000300000300000600000E00000E00001E0
0001C00003C00003C00003C00003C00007C00007C00007C00007C00007C00007C0000380
00131C7D9B18>I<03F8000FFE001E0F803807803803C07803C07803C07E03C07F83807F
C7003FFE001FFC000FFE0007FF801DFF80387FC0781FE0F007E0F003E0F001E0F001E0F0
01E07801C07803803E07801FFE0003F800131B7E9A18>I<00038000000380000007C000
0007C0000007C000000FE000000FE000001FF000001BF000001BF0000031F8000031F800
0061FC000060FC0000E0FE0000C07E0000C07E0001803F0001FFFF0003FFFF8003001F80
03001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFFC07FFE1F1C7E9B24>65
D<FFFFF800FFFFFF000FC01F800FC00FC00FC007C00FC007E00FC007E00FC007E00FC007
E00FC007E00FC007C00FC00F800FC03F000FFFFE000FC00F800FC007C00FC007E00FC003
E00FC003F00FC003F00FC003F00FC003F00FC003F00FC007E00FC007E00FC01FC0FFFFFF
00FFFFFC001C1C7E9B22>I<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E0
3E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC000000
FC000000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F800180
07C0030003F80E0000FFFC00001FE0001B1C7D9B22>I<FFFFF800FFFFFF000FC01FC00F
C007E00FC001F00FC001F80FC000F80FC000FC0FC0007C0FC0007C0FC0007E0FC0007E0F
C0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007C0FC0007C0FC0007C0F
C000F80FC000F80FC001F00FC007E00FC01FC0FFFFFF00FFFFF8001F1C7E9B25>I<FFFF
FF00FFFFFF000FC01F000FC007000FC003000FC003800FC003800FC181800FC181800FC1
81800FC180000FC380000FFF80000FFF80000FC380000FC180000FC180000FC180600FC1
80600FC000E00FC000C00FC000C00FC001C00FC001C00FC003C00FC00F80FFFFFF80FFFF
FF801B1C7E9B1F>I<FFFFFFFF07E007E007E007E007E007E007E007E007E007E007E007
E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101C7F9B12>73
D<FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0
000FC0000FC0000FC0000FC0000FC0000FC0030FC0030FC0030FC0070FC0070FC0060FC0
0E0FC01E0FC07EFFFFFEFFFFFE181C7E9B1D>76 D<FFC00003FFFFE00007FF0FE00007F0
0DF0000DF00DF0000DF00DF0000DF00CF80019F00CF80019F00C7C0031F00C7C0031F00C
3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F00C1F00C0F8181F00C0F8181F00C07
C301F00C07C301F00C03E601F00C03E601F00C01FC01F00C01FC01F00C01FC01F00C00F8
01F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFE003FFFFE003FF0FF00030
0FF800300DFC00300CFE00300C7E00300C3F00300C1F80300C1FC0300C0FE0300C07F030
0C03F0300C01F8300C01FC300C00FE300C007F300C003F300C001FB00C001FF00C000FF0
0C0007F00C0003F00C0001F00C0000F00C0000F0FFC00070FFC00030201C7E9B25>I<FF
FFF800FFFFFE000FC03F800FC00F800FC007C00FC007E00FC007E00FC007E00FC007E00F
C007E00FC007C00FC007C00FC00F800FC03F000FFFFC000FC000000FC000000FC000000F
C000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FF
FC00001B1C7E9B21>80 D<003FE00001F07C0003C01E000F800F801F0007C01F0007C03E
0003E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC
0001F8FC0001F8FC0001F87C0001F07C0001F07E0003F03E0003E03E0703E01F08C7C00F
906F8003D07E0001F87C00003FF8080000380800003C1800003FF800001FF800001FF000
000FF0000007E0000003C01D247D9B24>I<FFFFF00000FFFFFE00000FC03F00000FC00F
80000FC007C0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007C0
000FC00F80000FC03E00000FFFF000000FC07C00000FC03E00000FC03F00000FC01F8000
0FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F81800FC01F81800F
C00FC180FFFC07C300FFFC01FE00211C7E9B24>I<07F8201FFEE03C07E07801E07000E0
F000E0F00060F00060F80000FE0000FFE0007FFE003FFF003FFF800FFFC007FFE0007FE0
0003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03C0EFFF0083FC00141C7D
9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C01F8030C01F8030
C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F8000001F8000
001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
07FFFE0007FFFE001C1C7E9B21>I<FFFC01FF80FFFC01FF800FC000180007E000300007
E000300007F000700003F000600003F800E00001F800C00001FC00C00000FC01800000FC
018000007E030000007E030000007F070000003F060000003F8E0000001F8C0000001FCC
0000000FD80000000FD800000007F000000007F000000007F000000003E000000003E000
000001C000000001C00000211C7F9B24>86 D<0FF8001C1E003E0F803E07803E07C01C07
C00007C0007FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1
F815127F9117>97 D<FF0000FF00001F00001F00001F00001F00001F00001F00001F0000
1F00001F00001F3F801FE1E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E
1F003E1F003E1F003C1F003C1F00781F80701EC1E01C3F00171D7F9C1B>I<03FC000E0E
001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F800007800007801
803C01801C03000E0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F000
01F00001F00001F00001F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F8
01F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE17
1D7E9C1B>I<01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000
F80000F800007800007C00603C00601E00C00F038001FC0013127F9116>I<007F0001E3
8003C7C00787C00F87C00F83800F80000F80000F80000F80000F8000FFF800FFF8000F80
000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C07803C07803C
07803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFFC00FFFE01F
FFF07801F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>I<FF0000
FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F31E0
1F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F8FFE7FFFFE7FF181D7F9C1B>I<1E003F003F003F003F001E000000000000
00000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F
001F00FFE0FFE00B1E7F9D0E>I<FF00FF001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0
0B1D7F9C0E>108 D<FF0FC07E00FF31E18F001F40F207801F80FC07C01F80FC07C01F00
F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F8
07C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128>I<FF0F
C0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C01E078
00F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F
078001FC0015127F9118>I<FF3F80FFE1E01F80F01F00781F007C1F003C1F003E1F003E
1F003E1F003E1F003E1F003E1F003C1F007C1F00781F80F01FC1E01F3F001F00001F0000
1F00001F00001F00001F0000FFE000FFE000171A7F911B>I<FE3E00FE47001E8F801E8F
801E8F801F07001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
00FFF000FFF00011127F9114>114 D<1FD830786018E018E018F000FF807FE07FF01FF8
07FC007CC01CC01CE01CE018F830CFC00E127E9113>I<0300030003000300070007000F
000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F0807
9803F00E1A7F9913>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>I<FF
C1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001F60001F60001
FE0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8FF8FE1F03E030
1F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003F83D80
01F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7
FC1F81800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00070F
800607C00C03E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00F
C0C007C18007C18003E30003E30001F70001F60000FE0000FC0000FC0000780000780000
3000003000007000706000F86000F8C000F980007300003E0000161A7F9119>I<3FFF80
3C1F00303F00303E00607C0060FC0060F80001F00003F00007E00007C1800F81801F8180
1F03803E03007E07007C0F00FFFF0011127F9115>I E /Ft 84 124
df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01
C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01
C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01
C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E0180
0E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8151D80
9C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E00001C09C1800
0380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E
00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00
E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
1C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<FFFC
0E017D9815>22 D<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C
15>34 D<0F0000C0188000C030600380703807006027FB00E0100600E0100C00E0100C00
E0101800E0101800E0103000E0106000602060007020C00030418000188180000F0303C0
0006062000060C10000C1C08001818080018380400303804006038040060380400C03804
00C03804018038040300180803001C0806000C100C000620040003C01E217E9E23>37
D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018
001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0
00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D
9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0
01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600
06000C000C00180010002000400080000A2A7E9E10>I<00060000000600000006000000
060000000600000006000000060000000600000006000000060000000600000006000000
060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000
0600000006000000060000000600000006000000060000000600001B1C7E9720>43
D<60F0F0701010101020204080040C7C830C>I<FFE0FFE00B0280890E>I<60F0F0600404
7C830C>I<00010003000600060006000C000C000C001800180018003000300030006000
6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030
0030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006
6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C
300C18180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700070007
000700070007000700070007000700070007000700070007000700070007000F80FFF80D
1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C
00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E018
30201C201C781E780E781E381E001C001C00180030006007E00030001C001C000E000F00
0F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C00001C0000
3C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C0030
1C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001
FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02430281830
1C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15
>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007
E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF
807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0
0000C00001C0000180000180000380000380000380000380000780000780000780000780
00078000078000030000111D7E9B15>I<03E00C301008200C2006600660066006700678
0C3E083FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C
1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E007
6007700F300F18170C2707C700060006000E300C780C78187010203030C00F80101D7E9B
15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000000000
000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000000000
00000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0
1B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000800180
0100010001000100010001000000000000000000000003000780078003000F1D7E9C14>
63 D<000600000006000000060000000F0000000F0000000F0000001780000017800000
1780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001
80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C
001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F00380F003C0F001C0F00
1E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F001E0F00
0E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D
>I<001F808000E0618001801980070007800E0003801C0003801C000180380001807800
00807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000
0000F0000000700000807800008078000080380000801C0001001C0001000E0002000700
04000180080000E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E
000F0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001
E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003
800F0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>I<FFFFFC0F
003C0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06000F
FE000F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F
000C0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00080F000C0F0004
0F00040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F0200
0F00000F00000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<001F
808000E0618001801980070007800E0003801C0003801C00018038000180780000807800
008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F000
0F80700007807800078078000780380007801C0007801C0007800E00078007000B800180
118000E06080001F80001C1E7E9C21>I<FFF3FFC00F003C000F003C000F003C000F003C
000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC
000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C
000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<FFF00F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F000F00FFF00C1C7F9B0F>I<1FFF00F800780078007800780078007800
780078007800780078007800780078007800780078007800787078F878F878F878F0F040
E021C01F00101D7F9B15>I<FFF03FE00F000F000F000C000F0008000F0010000F002000
0F0040000F0080000F0100000F0200000F0400000F0E00000F1F00000F2F00000F278000
0F4780000F83C0000F01E0000F01E0000F00F0000F00F8000F0078000F003C000F003C00
0F001E000F001F000F001F80FFF07FF01C1C7E9B20>I<FFF8000F80000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00000F00000F00080F00080F00080F00180F00180F00100F00300F00700F01F0FFFFF015
1C7E9B1A>I<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC0017800
09E002780009E002780008F004780008F004780008F00478000878087800087808780008
78087800083C107800083C107800083C107800081E207800081E207800081E207800080F
407800080F40780008078078000807807800080780780008030078001C03007800FF8307
FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F004
0008F8040008780400083C0400083C0400081E0400080F0400080F0400080784000807C4
000803C4000801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C
0008000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C00
0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0
F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0
380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C
20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C
0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F00000F00000F0000
0F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0000F0078000F00
3C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01
E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F00
78000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>
82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F80000
7C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C0
8001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0
600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B
1E>I<FFF07FC00F000E000F0004000F0004000F0004000F0004000F0004000F0004000F
0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F
0004000F0004000F0004000F0004000F0004000700080007800800038010000180100000
C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001800F0001000F80
0300078002000780020003C0040003C0040003C0040001E0080001E0080001F0080000F0
100000F0100000F830000078200000782000003C4000003C4000003C4000001E8000001E
8000001F8000000F0000000F00000006000000060000000600001C1D7F9B1F>I<FFE0FF
E0FF1F001F003C1E001E00180F001F00100F001F00100F001F001007801F002007802780
20078027802003C027804003C043C04003C043C04003E043C04001E081E08001E081E080
01E081E08000F100F10000F100F10000F100F100007900FA00007A007A00007A007A0000
3E007C00003C003C00003C003C00003C003C00001800180000180018000018001800281D
7F9B2B>I<FFF007FC0F8001E00780008007C0018003C0010003E0020001F0020000F004
0000F8040000780800007C1800003C1000001E2000001F2000000F4000000FC000000780
000007800000078000000780000007800000078000000780000007800000078000000780
0000078000007FF8001E1C809B1F>89 D<7FFFF07C01F07001E06003C06003C040078040
0F80400F00401E00001E00003C00007C0000780000F00000F00001E00003E00003C01007
80100780100F00101F00301E00203C00203C00607800E0F803E0FFFFE0141C7E9B19>I<
FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0FEFE07297C9E0C>I<08081010202040404040808080808080B0B0F8F878783030
0D0C7A9C15>I<FEFE060606060606060606060606060606060606060606060606060606
06060606060606060606FEFE0729809E0C>I<0C0012002100408080400A057B9B15>I<1F
C000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E0
1C40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C7C001D86001E03001C01801C01
C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001906
0010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000E00060
007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700
00070000070000070000070000070003E7000C1700180F00300700700700600700E00700
E00700E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E
9C17>I<03E00C301818300C700E6006E006FFFEE000E000E000E0006000700230021804
0C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E
000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00F1D80
9C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C001818001C38
000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0C000
C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C00001C00001C
00001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C03801C
03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF
9FF0141D7F9C17>I<18003C003C0018000000000000000000000000000000FC001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C
>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C0
61803E000B25839C0D>I<FC00001C00001C00001C00001C00001C00001C00001C00001C
00001C00001C00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E
70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>I<FC001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<FC7E07E0001C83883800
1D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C
01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03801C0380
1C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF014127F
9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001
C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C001D86001E
03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C
01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF800013
1A7F9117>I<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700
E00700E00700600700700700300F00180F000C370007C700000700000700000700000700
000700000700000700003FE0131A7E9116>I<FCE01D301E781E781C301C001C001C001C
001C001C001C001C001C001C001C001C00FFC00D127F9110>I<1F9030704030C010C010
E010F8007F803FE00FF000F880388018C018C018E010D0608FC00D127F9110>I<040004
00040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C101C
101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C03801C03801C03801C
03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C07800E1B8003
E3F014127F9117>I<FF07E03C03801C01001C01000E02000E0200070400070400070400
03880003880003D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3F
CFE03C0F03801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C4000711
C4000720C40003A0E80003A0E80003C0680001C0700001C0700001803000008020001B12
7F911E>I<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000
F800009C00010E00020E000607000403801E07C0FF0FF81512809116>I<FF07E03C0380
1C01001C01000E02000E020007040007040007040003880003880003D80001D00001D000
00E00000E00000E000004000004000008000008000F08000F10000F300006600003C0000
131A7F9116>I<7FFC70386038407040F040E041C003C0038007000F040E041C043C0C38
0870087038FFF80E127F9112>I<FFFFF01401808B15>I E /Fu 39
122 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFFFE0000FFFF
FE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0223879B7
31>49 D<0007FE0000007FFFE00001FFFFF80003FFFFFE0007F01FFF000F8007FF801F00
01FFC03E0000FFE07F8000FFF07FC0007FF0FFE0007FF8FFF0003FF8FFF0003FFCFFF000
3FFCFFF0003FFCFFF0003FFC7FE0003FFC3FC0003FFC1F80003FFC0000003FFC0000003F
F80000007FF80000007FF00000007FF0000000FFE0000000FFC0000001FF80000001FF00
000003FE00000007FC00000007F80000000FF00000001FC00000003F800000007F000000
00FC00000001F800000001F0003C0003E0003C0007C0003C000F000078001E000078003C
00007800780000F800F00000F801FFFFFFF803FFFFFFF007FFFFFFF00FFFFFFFF01FFFFF
FFF03FFFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE026387BB7
31>I<0003FF8000001FFFF000007FFFFE0000FE03FF0001F000FF8003C000FFC0078000
7FE00FF0007FF00FF8007FF01FFC007FF81FFE007FF81FFE007FF81FFE007FF81FFE007F
F81FFE007FF80FFC007FF007F8007FF003F0007FF0000000FFE0000000FFC0000001FF80
000001FF00000003FE00000007FC0000001FF000000FFFC000000FFF8000000FFFF80000
0003FE00000000FF800000007FE00000003FF00000003FF80000003FFC0000001FFC0000
001FFE0000001FFE0200001FFF1FC0001FFF3FE0001FFF7FF0001FFF7FF0001FFFFFF800
1FFFFFF8001FFFFFF8001FFEFFF8001FFEFFF0001FFE7FF0003FFC7FE0003FFC3FC0003F
F81F80007FF01FE000FFE007FC03FFC003FFFFFF0001FFFFFE00003FFFF0000007FF8000
28397CB731>I<00000007C0000000000FC0000000000FC0000000001FC0000000003FC0
000000007FC000000000FFC000000000FFC000000001FFC000000003FFC000000007FFC0
0000000FFFC00000000FFFC00000001EFFC00000003CFFC00000007CFFC0000000F8FFC0
000000F0FFC0000001E0FFC0000003C0FFC0000007C0FFC000000F80FFC000000F00FFC0
00001E00FFC000003C00FFC000007C00FFC00000F800FFC00000F000FFC00001E000FFC0
0003C000FFC00007C000FFC0000F8000FFC0000F0000FFC0001E0000FFC0003C0000FFC0
007C0000FFC000F80000FFC000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF
C0000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC0000007FFFFFFC00007FFFFFF
C00007FFFFFFC00007FFFFFFC02A377DB631>I<04000000C00F800007C00FF8007FC00F
FFFFFF800FFFFFFF000FFFFFFE000FFFFFFC000FFFFFF8000FFFFFF0000FFFFFE0000FFF
FF80000FFFFE00000FFFF800000F800000000F800000000F800000000F800000000F8000
00000F800000000F800000000F800000000F81FF00000F8FFFE0000FBFFFF8000FFE03FE
000FF000FF000FC000FF800F80007FC00F00007FE00700007FF00000003FF00000003FF8
0000003FF80000003FF80000003FFC0000003FFC0600003FFC1F80003FFC3FC0003FFC7F
E0003FFCFFE0003FFCFFF0003FFCFFF0003FFCFFF0003FF8FFE0003FF8FFE0003FF87FC0
007FF07F00007FF03C00007FE03E0000FFC01F0000FF800FC003FF0007F00FFE0003FFFF
FC0001FFFFF000007FFFC000000FFC000026397BB731>I<00000FF80000007FFF000003
FFFF80000FFC07C0001FE001E0003FC001F0007F0007F000FF000FF001FE001FF803FC00
3FF807FC003FF80FFC003FF80FF8003FF81FF8001FF01FF8000FE03FF80007C03FF00000
003FF00000007FF00000007FF00000007FF00000007FF07FF000FFF0FFFE00FFF1F7FF00
FFF3807F80FFF6003FE0FFFE001FF0FFFC001FF0FFFC000FF8FFF8000FFCFFF8000FFCFF
F8000FFEFFF8000FFEFFF0000FFEFFF0000FFFFFF0000FFFFFF0000FFF7FF0000FFF7FF0
000FFF7FF0000FFF7FF0000FFF7FF0000FFF3FF0000FFF3FF0000FFE3FF0000FFE1FF000
0FFE1FF8000FFC0FF8000FFC0FF8001FF807FC001FF003FC001FF001FE003FE000FF80FF
C0007FFFFF00001FFFFE000007FFF8000000FFC00028397CB731>I<1E00000000001F00
000000001FF0000000001FFFFFFFFFC01FFFFFFFFFC01FFFFFFFFFC03FFFFFFFFFC03FFF
FFFFFF803FFFFFFFFF003FFFFFFFFE003FFFFFFFFC003FFFFFFFF8003FFFFFFFF0007FFF
FFFFF0007C000007E0007C00000FC0007800001F80007800001F00007800003E0000F000
007E0000F00000FC0000F00001F80000000003F00000000003E00000000007E000000000
0FC0000000000F80000000001F80000000003F80000000003F00000000007F0000000000
7F0000000000FF0000000000FE0000000001FE0000000001FE0000000003FE0000000003
FE0000000003FE0000000007FC0000000007FC0000000007FC000000000FFC000000000F
FC000000000FFC000000000FFC000000000FFC000000001FFC000000001FFC000000001F
FC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001F
FC000000000FF80000000007F00000000003E00000002A3B7BB931>I<00000001F80000
000000000001F80000000000000003FC0000000000000003FC0000000000000007FE0000
000000000007FE0000000000000007FE000000000000000FFF000000000000000FFF0000
00000000001FFF800000000000001FFF800000000000001FFF800000000000003FFFC000
00000000003FFFC00000000000007FFFE00000000000007DFFE00000000000007DFFE000
0000000000FDFFF0000000000000F8FFF0000000000001F8FFF8000000000001F07FF800
0000000001F07FF8000000000003F07FFC000000000003E03FFC000000000007E03FFE00
0000000007C01FFE00000000000FC01FFF00000000000F801FFF00000000000F800FFF00
000000001F800FFF80000000001F0007FF80000000003F0007FFC0000000003E0003FFC0
000000003E0003FFC0000000007E0003FFE0000000007C0001FFE000000000FC0001FFF0
00000000F80000FFF000000000F80000FFF000000001FFFFFFFFF800000001FFFFFFFFF8
00000003FFFFFFFFFC00000003FFFFFFFFFC00000003E000003FFC00000007E000003FFE
00000007C000001FFE0000000FC000001FFF0000000F8000000FFF0000001F8000000FFF
8000001F0000000FFF8000001F00000007FF8000003F00000007FFC000003E00000003FF
C000007E00000003FFE00000FF00000001FFE000FFFFFC0001FFFFFFF0FFFFFC0001FFFF
FFF0FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0443B7DBA4B>65
D<FFFFFFFFFFC00000FFFFFFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF0
0001FFF000007FF000007FF800007FF000003FFC00007FF000001FFE00007FF000001FFE
00007FF000000FFF00007FF000000FFF00007FF0000007FF80007FF0000007FF80007FF0
000007FF80007FF0000007FF80007FF0000007FF80007FF0000007FF80007FF0000007FF
80007FF0000007FF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007FF0
00001FFC00007FF000003FF800007FF000007FF000007FF00001FFE000007FF0000FFF80
00007FFFFFFFFE0000007FFFFFFFFE0000007FFFFFFFFFC000007FF000007FF000007FF0
00001FFC00007FF000000FFE00007FF0000007FF00007FF0000007FF80007FF0000003FF
C0007FF0000003FFC0007FF0000001FFE0007FF0000001FFE0007FF0000001FFF0007FF0
000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FF
F0007FF0000001FFF0007FF0000001FFF0007FF0000001FFE0007FF0000003FFE0007FF0
000003FFC0007FF0000007FFC0007FF000000FFF80007FF000001FFF00007FF000003FFE
00007FF00001FFFC00FFFFFFFFFFFFF800FFFFFFFFFFFFE000FFFFFFFFFFFF8000FFFFFF
FFFFF800003C3B7CBA46>I<0000001FFF000030000001FFFFE000F000000FFFFFFC01F0
00007FFFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF000003FFF0001FFC00
0001FFF0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC00000001FF0
03FF800000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE0000
000003F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC0000000001F0
7FFC0000000001F07FF80000000001F07FF80000000000007FF8000000000000FFF80000
00000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000
FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000
00000000FFF80000000000007FF80000000000007FF80000000000007FF8000000000000
7FFC0000000000F03FFC0000000000F03FFC0000000000F03FFC0000000000F01FFE0000
000000F01FFE0000000001E00FFE0000000001E00FFF0000000001E007FF0000000003C0
03FF8000000003C001FFC0000000078000FFE00000000F00007FF00000001F00003FF800
00003E00001FFC0000007C00000FFF000001F8000003FFE00007F0000001FFFE003FC000
00007FFFFFFF000000000FFFFFFC0000000001FFFFF000000000001FFF0000003C3D7BBB
47>I<FFFFFFFFFFC0000000FFFFFFFFFFFC000000FFFFFFFFFFFF800000FFFFFFFFFFFF
E00000007FF80003FFF80000007FF800003FFE0000007FF800000FFF0000007FF8000003
FF8000007FF8000001FFC000007FF8000000FFE000007FF80000007FF000007FF8000000
3FF800007FF80000003FF800007FF80000001FFC00007FF80000001FFC00007FF8000000
0FFE00007FF80000000FFE00007FF80000000FFF00007FF800000007FF00007FF8000000
07FF00007FF800000007FF80007FF800000007FF80007FF800000007FF80007FF8000000
07FF80007FF800000007FFC0007FF800000007FFC0007FF800000007FFC0007FF8000000
07FFC0007FF800000007FFC0007FF800000007FFC0007FF800000007FFC0007FF8000000
07FFC0007FF800000007FFC0007FF800000007FFC0007FF800000007FFC0007FF8000000
07FFC0007FF800000007FF80007FF800000007FF80007FF800000007FF80007FF8000000
07FF80007FF800000007FF00007FF80000000FFF00007FF80000000FFF00007FF8000000
0FFE00007FF80000001FFE00007FF80000001FFC00007FF80000003FFC00007FF8000000
3FF800007FF80000007FF000007FF8000000FFE000007FF8000001FFC000007FF8000003
FF8000007FF800000FFF0000007FF800003FFE0000007FF80003FFF80000FFFFFFFFFFFF
F00000FFFFFFFFFFFF800000FFFFFFFFFFFE000000FFFFFFFFFFC0000000423B7CBA4C>
I<FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000007FF8
0001FFF800007FF800001FF800007FF8000007F800007FF8000003F800007FF8000001F8
00007FF8000000F800007FF8000000F800007FF80000007C00007FF80000007C00007FF8
0000007C00007FF80000003C00007FF80000003C00007FF8003C003C00007FF8003C003C
00007FF8003C001E00007FF8003C001E00007FF8003C001E00007FF8003C000000007FF8
007C000000007FF8007C000000007FF800FC000000007FF803FC000000007FFFFFFC0000
00007FFFFFFC000000007FFFFFFC000000007FFFFFFC000000007FF803FC000000007FF8
00FC000000007FF8007C000000007FF8007C000000007FF8003C000000007FF8003C0007
80007FF8003C000780007FF8003C000780007FF8003C000F00007FF8003C000F00007FF8
0000000F00007FF80000000F00007FF80000001F00007FF80000001F00007FF80000001E
00007FF80000003E00007FF80000003E00007FF80000003E00007FF80000007E00007FF8
000000FE00007FF8000001FC00007FF8000003FC00007FF8000007FC00007FF800001FFC
00007FF80001FFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFFF800FFFFFFFFFFFFF800FFFFFF
FFFFFFF800393B7CBA41>I<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00
003FFC00003FFC00003FFC00003FFC00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF203B7DBA
26>73 D<FFFFF80000000001FFFFF8FFFFFC0000000003FFFFF8FFFFFC0000000003FFFF
F8FFFFFE0000000007FFFFF8007FFE0000000007FFF000007FFE0000000007FFF000007B
FF000000000F7FF000007BFF000000000F7FF0000079FF800000001E7FF0000079FF8000
00001E7FF0000078FFC00000003C7FF0000078FFC00000003C7FF00000787FE000000078
7FF00000787FE0000000787FF00000787FE0000000787FF00000783FF0000000F07FF000
00783FF0000000F07FF00000781FF8000001E07FF00000781FF8000001E07FF00000780F
FC000003C07FF00000780FFC000003C07FF00000780FFC000003C07FF000007807FE0000
07807FF000007807FE000007807FF000007803FF00000F007FF000007803FF00000F007F
F000007801FF80001E007FF000007801FF80001E007FF000007800FFC0003C007FF00000
7800FFC0003C007FF000007800FFC0003C007FF0000078007FE00078007FF0000078007F
E00078007FF0000078003FF000F0007FF0000078003FF000F0007FF0000078001FF801E0
007FF0000078001FF801E0007FF0000078000FFC03C0007FF0000078000FFC03C0007FF0
000078000FFC03C0007FF00000780007FE0780007FF00000780007FE0780007FF0000078
0003FF0F00007FF00000780003FF0F00007FF00000780001FF9E00007FF00000780001FF
9E00007FF00000780001FF9E00007FF00000780000FFFC00007FF00000780000FFFC0000
7FF000007800007FF800007FF000007800007FF800007FF000007800003FF000007FF000
007800003FF000007FF000007800001FE000007FF00000FC00001FE000007FF000FFFFFC
001FE000FFFFFFF8FFFFFC000FC000FFFFFFF8FFFFFC000FC000FFFFFFF8FFFFFC000780
00FFFFFFF8553B7CBA5E>77 D<FFFFF8000003FFFFF0FFFFFC000003FFFFF0FFFFFE0000
03FFFFF0FFFFFF000003FFFFF0007FFF80000003F000007FFF80000001E000007FFFC000
0001E000007BFFE0000001E000007BFFF0000001E0000079FFF8000001E0000078FFFC00
0001E00000787FFC000001E00000783FFE000001E00000781FFF000001E00000781FFF80
0001E00000780FFFC00001E000007807FFC00001E000007803FFE00001E000007801FFF0
0001E000007801FFF80001E000007800FFFC0001E0000078007FFE0001E0000078003FFE
0001E0000078001FFF0001E0000078000FFF8001E0000078000FFFC001E00000780007FF
E001E00000780003FFE001E00000780001FFF001E00000780000FFF801E00000780000FF
FC01E000007800007FFE01E000007800003FFF01E000007800001FFF01E000007800000F
FF81E0000078000007FFC1E0000078000007FFE1E0000078000003FFF1E0000078000001
FFF9E0000078000000FFF9E00000780000007FFDE00000780000003FFFE0000078000000
3FFFE00000780000001FFFE00000780000000FFFE000007800000007FFE0000078000000
03FFE000007800000003FFE000007800000001FFE000007800000000FFE0000078000000
007FE0000078000000003FE0000078000000001FE0000078000000001FE00000FC000000
000FE000FFFFFC00000007E000FFFFFC00000003E000FFFFFC00000001E000FFFFFC0000
0001E000443B7CBA4D>I<FFFFFFFFFF800000FFFFFFFFFFFC0000FFFFFFFFFFFF0000FF
FFFFFFFFFFC000007FF80007FFF000007FF80000FFF800007FF800003FFC00007FF80000
1FFE00007FF800000FFF00007FF800000FFF00007FF8000007FF80007FF8000007FF8000
7FF8000007FF80007FF8000007FFC0007FF8000007FFC0007FF8000007FFC0007FF80000
07FFC0007FF8000007FFC0007FF8000007FFC0007FF8000007FFC0007FF8000007FF8000
7FF8000007FF80007FF8000007FF80007FF800000FFF00007FF800000FFE00007FF80000
1FFE00007FF800003FFC00007FF80000FFF000007FF80007FFE000007FFFFFFFFF800000
7FFFFFFFFE0000007FFFFFFFF00000007FF80000000000007FF80000000000007FF80000
000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000
7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000
000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000
7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000
000000007FF80000000000007FF80000000000FFFFFFFC00000000FFFFFFFC00000000FF
FFFFFC00000000FFFFFFFC000000003A3B7CBA44>80 D<FFFFFFFFFC00000000FFFFFFFF
FFE0000000FFFFFFFFFFFC000000FFFFFFFFFFFF000000007FF8000FFFC00000007FF800
01FFE00000007FF800007FF80000007FF800003FFC0000007FF800001FFC0000007FF800
001FFE0000007FF800001FFF0000007FF800000FFF0000007FF800000FFF0000007FF800
000FFF8000007FF800000FFF8000007FF800000FFF8000007FF800000FFF8000007FF800
000FFF8000007FF800000FFF8000007FF800000FFF0000007FF800000FFF0000007FF800
001FFE0000007FF800001FFE0000007FF800001FFC0000007FF800003FF80000007FF800
007FF00000007FF80001FFE00000007FF8000FFF800000007FFFFFFFFE000000007FFFFF
FFF0000000007FFFFFFFF0000000007FF8003FFC000000007FF8000FFE000000007FF800
07FF000000007FF80003FF800000007FF80001FFC00000007FF80001FFE00000007FF800
00FFE00000007FF80000FFE00000007FF80000FFF00000007FF80000FFF00000007FF800
00FFF00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF80000007FF800
00FFF80000007FF80000FFF80000007FF80000FFF80000007FF80000FFF80000007FF800
00FFF80078007FF80000FFF80078007FF800007FFC0078007FF800007FFC0078007FF800
007FFC00F0007FF800003FFE00F0FFFFFFFC001FFF01E0FFFFFFFC000FFF83E0FFFFFFFC
0003FFFFC0FFFFFFFC0000FFFF000000000000000FFC00453C7CBA4A>82
D<0003FF800180001FFFF00380007FFFFC078001FFFFFF0F8003FE00FF9F8007F0000FFF
800FE00003FF801FC00001FF803F8000007F803F8000007F807F0000003F807F0000001F
807F0000001F80FF0000000F80FF0000000F80FF0000000F80FF8000000780FF80000007
80FFC000000780FFE000000780FFF8000000007FFE000000007FFFF00000007FFFFF0000
003FFFFFF800003FFFFFFF00001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC
0001FFFFFFFE00007FFFFFFF00003FFFFFFF800007FFFFFF8000007FFFFFC0000007FFFF
C00000003FFFE000000003FFE000000000FFF0000000007FF0000000003FF0700000001F
F0F00000001FF0F00000001FF0F00000000FF0F00000000FF0F80000000FF0F80000000F
E0F80000000FE0FC0000000FE0FC0000001FC0FE0000001FC0FF0000001F80FFC000003F
80FFF000007F00FFFC0001FE00FCFFC007FC00F87FFFFFF800F01FFFFFE000E003FFFF80
00C0003FFC00002C3D7BBB37>I<FFFFFFF80000FFFFFCFFFFFFF80000FFFFFCFFFFFFF8
0000FFFFFCFFFFFFF80000FFFFFC00FFF800000001FC00007FF800000000F800007FFC00
000001F800003FFC00000001F000003FFE00000003F000001FFE00000003E000001FFF00
000003E000001FFF00000007E000000FFF00000007C000000FFF8000000FC0000007FF80
00000F80000007FFC000001F80000003FFC000001F00000003FFE000003F00000003FFE0
00003F00000001FFF000003E00000001FFF000007E00000000FFF000007C00000000FFF8
0000FC000000007FF80000F8000000007FFC0001F8000000003FFC0001F0000000003FFE
0001F0000000003FFE0003F0000000001FFE0003E0000000001FFF0007E0000000000FFF
0007C0000000000FFF800FC00000000007FF800F800000000007FFC01F800000000003FF
C01F000000000003FFE01F000000000003FFE03F000000000001FFE03E000000000001FF
F07E000000000000FFF07C000000000000FFF8FC0000000000007FF8F80000000000007F
FCF80000000000007FFDF80000000000003FFDF00000000000003FFFF00000000000001F
FFE00000000000001FFFE00000000000000FFFC00000000000000FFFC000000000000007
FF8000000000000007FF8000000000000007FF8000000000000003FF0000000000000003
FF0000000000000001FE0000000000000001FE0000000000000000FC0000000000000000
FC00000000463B7EBA4B>86 D<001FFF00000001FFFFF0000003FFFFFC000007F007FE00
000FF801FF00001FFC00FF80001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0
000FF8003FF00007F0003FF00001C0003FF0000000003FF0000000003FF0000000003FF0
000000FFFFF000000FFFFFF000007FF83FF00001FF803FF00007FE003FF0000FF8003FF0
001FF0003FF0003FE0003FF0007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF0
00FFC0003FF000FFC0003FF000FFC0007FF0007FE0007FF0007FE000DFF0003FF0039FF8
001FFC0F0FFFF007FFFE0FFFF001FFFC07FFF0003FE000FFF02C267DA530>97
D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF01FF800003FF0FFFF0
0003FF3FFFFC0003FFFE03FF0003FFF0007F8003FFC0003FC003FF80001FE003FF00001F
F003FF00000FF803FF00000FFC03FF00000FFC03FF000007FE03FF000007FE03FF000007
FE03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007
FF03FF000007FF03FF000007FF03FF000007FF03FF000007FE03FF000007FE03FF000007
FE03FF000007FC03FF00000FFC03FF00000FF803FF00000FF803FF00001FF003FF80003F
E003FFC0007FC003FDF000FF8003F8FC07FF0003F03FFFFC0003E00FFFF00003C001FF00
00303C7DBB37>I<0000FFF000000FFFFF00003FFFFF8000FFC01FC001FF003FE003FC00
7FF007FC007FF00FF8007FF01FF0007FF01FF0003FE03FF0003FE03FF0001FC07FE00007
007FE00000007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
FFE0000000FFE0000000FFE00000007FE00000007FE00000007FF00000003FF00000003F
F00000001FF00000781FF80000780FF80000F007FC0000F003FE0001E001FF8007C000FF
E01F80003FFFFF00000FFFFC000000FFC00025267DA52C>I<000000003FC00000003FFF
C00000003FFFC00000003FFFC00000003FFFC000000001FFC000000000FFC000000000FF
C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF
C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF
C000000000FFC000000000FFC00000FFC0FFC0000FFFF8FFC0003FFFFEFFC000FFE03FFF
C001FF000FFFC003FE0003FFC007FC0001FFC00FF80000FFC01FF00000FFC01FF00000FF
C03FF00000FFC03FE00000FFC07FE00000FFC07FE00000FFC07FE00000FFC0FFE00000FF
C0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FF
C0FFE00000FFC0FFE00000FFC07FE00000FFC07FE00000FFC07FE00000FFC03FF00000FF
C03FF00000FFC01FF00000FFC00FF80001FFC007F80003FFC003FC0007FFC001FE000FFF
E000FFC07EFFFF003FFFFCFFFF000FFFF0FFFF0001FF80FFFF303C7DBB37>I<0001FFC0
00000FFFF800003FFFFE0000FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF0
1FF00007F03FF00007F83FF00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFF
E00003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE0
0000007FE00000007FE00000007FE00000003FE00000003FF000003C1FF000003C1FF000
003C0FF800007807FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC
000000FFE00026267DA52D>I<00000FF0000000FFFC000003FFFE00000FFC7F00001FF0
FF80003FE1FFC0007FC1FFC000FFC1FFC000FFC1FFC000FF81FFC001FF80FF8001FF807F
0001FF803E0001FF80000001FF80000001FF80000001FF80000001FF80000001FF800000
01FF80000001FF80000001FF800000FFFFFF8000FFFFFF8000FFFFFF8000FFFFFF800001
FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF
80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80
000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF8000
0001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF800000
01FF8000007FFFFF00007FFFFF00007FFFFF00007FFFFF0000223C7DBB1E>I<00000000
1F800007FF007FC0003FFFE0FFE000FFFFFBE7F001FE03FF07F003FC01FE07F007F800FF
07F00FF800FF87E01FF0007FC3C01FF0007FC0003FF0007FE0003FF0007FE0003FF0007F
E0003FF0007FE0003FF0007FE0003FF0007FE0003FF0007FE0001FF0007FC0001FF0007F
C0000FF800FF800007F800FF000003FC01FE000001FE03FC000003FFFFF80000073FFFE0
00000707FF0000000F00000000000F00000000000F00000000000F00000000000F800000
00000FE0000000000FFFFFFC00000FFFFFFF800007FFFFFFF00003FFFFFFF80003FFFFFF
FC0001FFFFFFFE0003FFFFFFFF000FFFFFFFFF801FC00007FF803F000000FF807F000000
3FC07E0000001FC0FE0000001FC0FE0000001FC0FE0000001FC0FE0000001FC07F000000
3F807F0000003F803F8000007F001FC00000FE000FF00003FC0007FE001FF80001FFFFFF
E000003FFFFF00000003FFF000002C397DA631>I<00FF00000000FFFF00000000FFFF00
000000FFFF00000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF007FC00003FF01FFF80003FF07FFFC0003FF0F03FE0003FF1C
01FF0003FF3001FF8003FF6000FF8003FFE000FFC003FFC000FFC003FF8000FFC003FF80
00FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC
3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303C7CBB37>I<01F00007FC000FFE
000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000
0000000000000000000000000000000000000000000000000000FF00FFFF00FFFF00FFFF
00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153D7DBC1B
>I<00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFF
FFFC163C7DBB1B>108 D<00FE003FE00007FC0000FFFE01FFFC003FFF8000FFFE07FFFE
00FFFFC000FFFE0F81FF01F03FE000FFFE1C00FF83801FF00007FE3800FFC7001FF80003
FE60007FCC000FF80003FEE0007FDC000FF80003FEC0007FF8000FFC0003FF80007FF000
0FFC0003FF80007FF0000FFC0003FF80007FF0000FFC0003FF00007FE0000FFC0003FF00
007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC
0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007F
E0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003
FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE000
0FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00
007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC00FFFFFC1FFFFF83FFFF
F0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF04C267CA553
>I<00FE007FC000FFFE01FFF800FFFE07FFFC00FFFE0F03FE00FFFE1C01FF0007FE3001
FF8003FE6000FF8003FEE000FFC003FEC000FFC003FF8000FFC003FF8000FFC003FF8000
FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3F
FFFFFFFFFC3FFFFFFFFFFC3FFFFF30267CA537>I<0000FFC00000000FFFFC0000003FFF
FF000000FFC0FFC00001FE001FE00007FC000FF80007F80007F8000FF00003FC001FF000
03FE003FF00003FF003FE00001FF007FE00001FF807FE00001FF807FE00001FF807FE000
01FF80FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE000
01FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC07FE00001FF807FE00001FF807FE000
01FF803FF00003FF003FF00003FF001FF00003FE000FF80007FC000FF80007FC0007FC00
0FF80003FE001FF00000FFC0FFC000003FFFFF0000000FFFFC00000001FFE000002A267D
A531>I<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF00FFFFF000FF8003FF
C0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001FFC03FF00000FFC03FF
00000FFE03FF00000FFE03FF000007FE03FF000007FF03FF000007FF03FF000007FF03FF
000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF
000007FE03FF000007FE03FF00000FFE03FF00000FFC03FF00000FFC03FF00001FF803FF
00001FF803FF00003FF003FF80003FE003FFC0007FC003FFF001FF8003FFFC07FF0003FF
3FFFFC0003FF0FFFF00003FF01FF000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFF
FC000000FFFFFC00000030377DA537>I<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F
80FFFE707FC007FE60FFE003FEE0FFE003FEC0FFE003FFC0FFE003FF807FC003FF807FC0
03FF803F8003FF800E0003FF00000003FF00000003FF00000003FF00000003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000023267DA529>114
D<003FF83801FFFEF807FFFFF80FC00FF81F0003F83E0000F87C0000F87C000078FC0000
78FC000078FE000078FF000000FFE00000FFFF80007FFFFC007FFFFF003FFFFFC01FFFFF
E00FFFFFF007FFFFF801FFFFFC003FFFFE0001FFFE00000FFF000001FF7000007FF00000
7FF000003FF800003FF800003EFC00003EFE00007EFF00007CFF8000F8FFF007F0FDFFFF
E0F0FFFF80E01FFC0020267DA527>I<0007800000078000000780000007800000078000
000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000007F8000
00FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF803C
01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF807800FFC078
007FC070003FE0E0001FFFC00007FF800001FF001E377EB626>I<00FF00003FC0FFFF00
3FFFC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0001FFC003FF0001FFC003FF0003FFC001FF00
03FFC001FF0006FFC000FF800EFFE0007FC03CFFFF003FFFF8FFFF000FFFE0FFFF0001FF
80FFFF30267CA537>I<FFFFF007FFFCFFFFF007FFFCFFFFF007FFFCFFFFF007FFFC01FF
8000FC0000FFC000F80000FFE001F000007FF003E000003FF007C000001FF80FC000000F
FC1F8000000FFE1F00000007FF3E00000003FFFC00000001FFF800000000FFF000000000
7FE0000000007FF0000000003FF8000000001FF8000000001FFC000000003FFE00000000
7FFF00000000FBFF80000001F9FF80000003F0FFC0000003E07FE0000007C07FF000000F
803FF800001F001FFC00003E000FFC00007C0007FE0000FC0003FF0001FC0003FF80FFFF
801FFFFEFFFF801FFFFEFFFF801FFFFEFFFF801FFFFE2F267EA534>120
D<FFFFF800FFFEFFFFF800FFFEFFFFF800FFFEFFFFF800FFFE03FF00000F8003FF80000F
8001FF80000F0001FFC0001F0000FFC0001E0000FFE0003E00007FE0003C00007FF0007C
00003FF0007800003FF8007800001FF800F000001FF800F000001FFC01F000000FFC01E0
00000FFE03E0000007FE03C0000007FF07C0000003FF0780000003FF8F80000001FF8F00
000001FFDF00000000FFDE00000000FFDE00000000FFFE000000007FFC000000007FFC00
0000003FF8000000003FF8000000001FF0000000001FF0000000000FE0000000000FE000
00000007C00000000007C0000000000780000000000780000000000F80000000000F0000
000C001F0000003F001E0000007F803E000000FFC03C000000FFC07C000000FFC0780000
00FFC0F0000000FFC1F00000007F83E00000007F0FC00000003FFF800000000FFE000000
0003F0000000002F377EA534>I E /Fv 8 83 df<0C001C00EC000C000C000C000C000C
000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211>49
D<1F0060C06060F070F030603000700070006000C001C00180020004000810101020207F
E0FFE00C137E9211>I<7FFFE0FFFFF0000000000000000000000000000000000000FFFF
F07FFFE0140A7E8B19>61 D<003000003000007800007800007800009C00009C00011E00
010E00010E0002070002070004038007FF800403800801C00801C01000E03800E0FE07FC
16147F9319>65 D<FC01FC1E007017002017802013802011C02010E02010702010702010
3820101C20100E20100F201007201003A01001E01000E01000E0380060FE002016147F93
19>78 D<01F800070E001C03803801C03000C07000E0600060E00070E00070E00070E000
70E00070E000707000E07000E03000C03801C01C0380070E0001F80014147E9319>I<FF
FC001C07001C03801C01C01C01C01C01C01C01C01C01C01C03801C07001FFC001C00001C
00001C00001C00001C00001C00001C00001C0000FF800012147F9316>I<FFF8001C0700
1C03801C01C01C01C01C01C01C01C01C03801C07001FF8001C0E001C07001C03801C0380
1C03801C03801C03841C03841C01CCFF80F816147F9318>82 D E
/Fw 53 123 df<00FC000182000703000607000E02000E00000E00000E00000E00000E00
00FFFF000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07
000E07000E07000E07007F0FE0131A809915>12 D<60F0F07010101020204080040B7D83
0B>44 D<FFC0FFC00A0280880D>I<60F0F06004047D830B>I<0780186030303030601860
18E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C6018601870383030186007
800E187E9713>48 D<03000700FF00070007000700070007000700070007000700070007
00070007000700070007000700070007000700FFF00C187D9713>I<0F80106020304038
803CC01CE01C401C003C003800380070006000C001800100020004040804100430083FF8
7FF8FFF80E187E9713>I<0F8010E02070607870382038007800700070006000C00F8000
E000700038003C003CE03CE03CC03C4038407030E00F800E187E9713>I<003000300070
00F000F001700370027004700C7008701070307020704070C070FFFF0070007000700070
0070007007FF10187F9713>I<30183FF03FE03FC02000200020002000200027C0386020
3000380018001C001C401CE01CE01C80184038403030E00F800E187E9713>I<01E00610
0C1818383038300070006000E000E7C0E860F030F018E018E01CE01CE01C601C601C7018
30183030186007C00E187E9713>I<40007FFE7FFC7FFC40088010801080200040004000
80018001800100030003000300030007000700070007000700070002000F197E9813>I<
078018603030201860186018601870103C303E600F8007C019F030F86038401CC00CC00C
C00CC00C6008201018600FC00E187E9713>I<07801860303070306018E018E018E01CE0
1CE01C601C603C303C185C0F9C001C00180018003870307060604021801F000E187E9713
>I<60F0F060000000000000000060F0F06004107D8F0B>I<000C0000000C0000000C0000
001E0000001E0000003F000000270000002700000043800000438000004380000081C000
0081C0000081C0000100E0000100E00001FFE00002007000020070000600780004003800
0400380008001C0008001C001C001E00FF00FFC01A1A7F991D>65
D<FFFF000E01C00E00E00E00700E00780E00780E00780E00780E00780E00F00E00E00E03
C00FFF800E01E00E00700E00780E003C0E003C0E003C0E003C0E003C0E00380E00780E00
F00E01E0FFFF80161A7E991B>I<003F0201C0C603002E0E001E1C000E1C000638000678
0002700002700002F00000F00000F00000F00000F00000F0000070000270000278000238
00041C00041C00080E000803003001C0C0003F00171A7E991C>I<FFFF000E01C00E00E0
0E00300E00380E001C0E001C0E000E0E000E0E000F0E000F0E000F0E000F0E000F0E000F
0E000F0E000F0E000E0E000E0E001E0E001C0E00380E00380E00700E01C0FFFF00181A7E
991D>I<FFFFF00E00700E00300E00100E00180E00080E00080E00080E04000E04000E04
000E0C000FFC000E0C000E04000E04000E04000E00040E00040E00080E00080E00080E00
180E00380E0070FFFFF0161A7E991A>I<FFE00E000E000E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B1A7F
990E>73 D<1FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E040E0E0E0E0E041C061801E000E1A7D9914>I<FFF0000E00000E00
000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E00200E00200E00200E00600E00400E00400E00C00E03C0FFFFC0131A
7E9918>76 D<FF0003FC0F0003C00F0003C00B8005C00B8005C00B8005C009C009C009C0
09C009C009C008E011C008E011C008E011C0087021C0087021C0083841C0083841C00838
41C0081C81C0081C81C0081C81C0080F01C0080F01C0080F01C0080601C01C0601C0FF86
1FFC1E1A7E9923>I<FE01FF0F00380F00100B80100B801009C01008E01008E010087010
087010083810081C10081C10080E10080E100807100803900803900801D00801D00800F0
0800700800700800301C0030FF8010181A7E991D>I<FFFF000E03C00E00E00E00700E00
700E00780E00780E00780E00780E00700E00700E00E00E03C00FFF000E00000E00000E00
000E00000E00000E00000E00000E00000E00000E00000E0000FFE000151A7E991A>80
D<0FC21836200E6006C006C002C002C002E00070007E003FE01FF807FC003E000E000700
03800380038003C002C006E004D81887E0101A7E9915>83 D<7FFFFF00701C0700401C01
00401C0100C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C00
00001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C00
00001C0000001C0000001C0000001C000003FFE000191A7F991C>I<FF801FC01E000F00
1C0006000E0004000E000400070008000700080007000800038010000380100003C03000
01C0200001C0200000E0400000E0400000E0400000708000007080000039000000390000
00390000001E0000001E0000001E0000000C0000000C00001A1A7F991D>86
D<3F8070C070E020700070007007F01C7030707070E070E071E071E0F171FB1E3C10107E
8F13>97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
F8001F0E001E07001C03801C01801C01C01C01C01C01C01C01C01C01C01C01C01C03801C
03001E07001B0C0010F000121A7F9915>I<07F80C1C381C30087000E000E000E000E000
E000E0007000300438080C1807E00E107F8F11>I<007E00000E00000E00000E00000E00
000E00000E00000E00000E00000E0003CE000C3E00380E00300E00700E00E00E00E00E00
E00E00E00E00E00E00E00E00600E00700E00381E001C2E0007CFC0121A7F9915>I<07C0
1C3030187018600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>
I<01F0031807380E100E000E000E000E000E000E00FFC00E000E000E000E000E000E000E
000E000E000E000E000E000E000E007FE00D1A80990C>I<0FCE18733030703870387038
7038303018602FC02000600070003FF03FFC1FFE600FC003C003C003C0036006381C07E0
10187F8F13>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00
001CF8001D0C001E0E001E0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E
001C0E001C0E001C0E00FF9FC0121A7F9915>I<18003C003C0018000000000000000000
00000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80
091A80990A>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00
001C3F801C1E001C18001C10001C20001C40001DC0001FE0001CE0001C70001C78001C38
001C1C001C1E001C1F00FF3FC0121A7F9914>107 D<FC001C001C001C001C001C001C00
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
FF80091A80990A>I<FC7C1F001D8E63801E0781C01E0781C01C0701C01C0701C01C0701
C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7
F81D107F8F20>I<FCF8001D0C001E0E001E0E001C0E001C0E001C0E001C0E001C0E001C
0E001C0E001C0E001C0E001C0E001C0E00FF9FC012107F8F15>I<07E01C38300C700E60
06E007E007E007E007E007E0076006700E381C1C3807E010107F8F13>I<FCF8001F0E00
1E07001C03801C03801C01C01C01C01C01C01C01C01C01C01C01C01C03801C03001E0700
1F0C001CF0001C00001C00001C00001C00001C00001C0000FF800012177F8F15>I<FCE0
1D701E701E201C001C001C001C001C001C001C001C001C001C001C00FFC00C107F8F0F>
114 D<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C
107F8F0F>I<0400040004000C000C001C003C00FFC01C001C001C001C001C001C001C00
1C001C201C201C201C201C200E4003800B177F960F>I<FC7E001C0E001C0E001C0E001C
0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C1E000C2E0007CFC012
107F8F15>I<FF1F803C06001C04001C04001E0C000E08000E0800071000071000079000
03A00003A00001C00001C00001C00000800011107F8F14>I<FF3F9F803C0E0700380E06
001C1604001C1704001E170C000E2308000E2388000F239800074190000741D00003C1E0
000380E0000380E0000180C0000100400019107F8F1C>I<FF3F803C1C001C18000E1000
07200007600003C00001C00001E00003E000027000043800083800181C00381E00FC3FC0
12107F8F14>I<FF1F803C06001C04001C04001E0C000E08000E08000710000710000790
0003A00003A00001C00001C00001C000008000008000010000010000E10000E20000E400
0078000011177F8F14>I<7FF86070407040E041C041C00380070007000E081C081C0838
1070107030FFF00D107F8F11>I E /Fx 13 118 df<3078F8787005057C840E>46
D<0001FC00000E0300003000C0004000200180001002000008040000080803E004080E18
041018040420300202206003C240E001C241C001C241C003828380038283800382838003
82838003828380038283800704838007048380070481800F0481C0170880C027084070C3
10401F01E020000000200000001000000008000078060003E001803F00007FE0001F237A
A226>64 D<00FF000381C00603C00C03C01C0180380000780000700000F00000F00000F0
0000F00000F00000E00000F00000F000807001007001003806001C180007E00012157C94
16>99 D<00001E0000FE00001C00001C00001C00001C00001C00001C0000380000380000
3800003800003800003800FC700383700700F00C00F01C00703800707800E07000E0F000
E0F000E0F000E0F000E0E001C0E001C0E001C0E001C07003C07003C0380F801C33C007C3
F817237CA21B>I<00FE000383800701C00C00E01C00E03800E07800E07000E0FFFFE0F0
0000F00000F00000F00000E00000E00000F000407000803000801803000E0C0003F00013
157D9416>I<006000F001F001F000E00000000000000000000000000000000001C00FC0
01C001C001C001C00380038003800380038003800700070007000700070007000E000F00
FFE00C227FA10E>105 D<01C3F01FCC1801D00C01E00E01E00E01C00E03C01C03801C03
801C03801C03801C03801C0700380700380700380700380700380700380E00700F0078FF
E7FF18157F941B>110 D<007E000383800600C00C00E01C0070380070780078700078F0
0078F00078F00078F00078E000F0E000F0E000E0F001E07001C07003803807001C1C0007
F00015157D9418>I<00E1F8000FE60C0000E8060000F0070000E0038000E0038001C003
C001C003C001C003C001C003C001C003C001C003C003800780038007800380070003800F
0003801E0003801C00074038000730E000070F80000700000007000000070000000E0000
000E0000000E0000000E0000000E0000001E000000FFC000001A1F80941B>I<01C7C01F
C8E001D1E001E1E001E0C001C00003C00003800003800003800003800003800007000007
00000700000700000700000700000E00000F0000FFF00013157F9413>114
D<01F906070C0318031801180118021C001FE00FF807FC007E000E400640064006600660
0CE008D83087C010157E9413>I<008000800080018001000300030007000F001F00FFF8
0E000E000E000E000E001C001C001C001C001C001C003810381038103810381038203820
1C4007800D1F7C9E13>I<0E0070FE07F00E00F00E00700E00700E00701C00E01C00E01C
00E01C00E01C00E01C00E03801C03801C03801C03801C03803C03805C0380B801C13C007
E3F815157C941B>I E /Fy 16 117 df<00200040008001000300060004000C000C0018
0018003000300030007000600060006000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E0006000600060007000300030003000180018000C000C000400060003
0001000080004000200B327CA413>40 D<800040002000100018000C0004000600060003
00030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000C000C000C001C0018001800180030003000600060004000C0018
0010002000400080000B327DA413>I<70F8F8F87005057C840E>46
D<01F000071C000C06001803003803803803807001C07001C07001C07001C0F001E0F001
E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001
E07001C07001C07001C07803C03803803803801C07000C0600071C0001F00013227EA018
>48 D<007E0001C1000300800601C00E03C01C03C0180180380000380000780000700000
700000F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0
F001E07001E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227E
A018>54 D<FFFFF8000F800E0007800780078003C0078003E0078001E0078001F0078001
F0078001F0078001F0078001F0078001E0078003E0078007C007800F8007803E0007FFFE
0007800780078003C0078001E0078001F0078000F0078000F8078000F8078000F8078000
F8078000F8078000F8078001F0078001F0078003E0078007C00F800F00FFFFFC001D227E
A123>66 D<FFFFF0000F803C0007800F0007800780078007C0078003C0078003E0078003
E0078003E0078003E0078003E0078003E0078003C0078007C00780078007800F0007803C
0007FFF00007800000078000000780000007800000078000000780000007800000078000
000780000007800000078000000780000007800000078000000FC00000FFFC00001B227E
A121>80 D<FFF0007FC01F80001F000F00000C000780000C000780000800078000080003
C000100003C000100003E000300001E000200001E000200000F000400000F000400000F0
00400000780080000078008000007C018000003C010000003C010000001E020000001E02
0000001F020000000F040000000F040000000F8C0000000788000000078800000003D000
000003D000000003F000000001E000000001E000000000C000000000C000000000C00000
22237FA125>86 D<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F0
0000F00000F00000F00000F000007000007800203800201C00400E008007030000FC0013
157F9416>101 D<00007001F198071E180E0E181C07001C07003C07803C07803C07803C
07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFFC00F
FFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE0015
217F9518>103 D<1C003E003E003E001C00000000000000000000000000000000000E00
FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E00FFC00A227FA10E>105 D<0E1F80FE60C01E80E00F00700F00700E00700E00700E00
700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
70FFE7FF18157F941B>110 D<01FC000707000C01801800C03800E0700070700070F000
78F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E03800707
0001FC0015157F9418>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E
000E000E000E000E000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008
C008E008F0007F803FE00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E94
13>I<02000200020002000600060006000E001E003E00FFF80E000E000E000E000E000E
000E000E000E000E000E000E040E040E040E040E040E040708030801F00E1F7F9E13>I
E /Fz 15 123 df<FFFFFFFFE0FFFFFFFFE007E0000FE003E00001E003E00000F003E000
007003E000003003E000003003E000001003E000001003E000001003E000001003E00000
0803E000000803E000000803E000800803E000800003E000800003E000800003E0008000
03E001800003E001800003E007800003FFFF800003FFFF800003E007800003E001800003
E001800003E000800003E000800003E000800003E000800203E000800203E000000203E0
00000403E000000403E000000403E000000403E000000C03E000000C03E000000803E000
001803E000001803E000003803E000007803E00001F807E0000FF0FFFFFFFFF0FFFFFFFF
F027317CB02D>69 D<00003FC000000001C03800000007000E0000001C00038000003800
01C00000F00000F00001E00000780003C000003C00038000001C00078000001E000F0000
000F000F0000000F001E00000007801E00000007803C00000003C03C00000003C07C0000
0003E07C00000003E07800000001E07800000001E0F800000001F0F800000001F0F80000
0001F0F800000001F0F800000001F0F800000001F0F800000001F0F800000001F0F80000
0001F0F800000001F0F800000001F07C00000003E07C00000003E07C00000003E07C0000
0003E03C00000003C03E00000007C01E00000007801E00000007800F0000000F000F0000
000F00078000001E0003C000003C0003C000003C0001E00000780000F00000F000003800
01C000001C000380000007000E00000001E078000000003FC000002C337CB134>79
D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E
0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E
003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E
047C005E043E008F080F0307F003FC03E01E1F7D9E21>97 D<003F800000E0E000038038
0007003C000E001E001E001E001C000F003C000F007C000F0078000F8078000780F80007
80F8000780FFFFFF80F8000000F8000000F8000000F8000000F8000000F8000000780000
007C0000003C0000003C0000801E0000800E0001000F0002000780020001C00C0000F030
00001FC000191F7E9E1D>101 D<0F001F801F801F801F800F0000000000000000000000
0000000000000000000000000780FF80FF800F8007800780078007800780078007800780
07800780078007800780078007800780078007800780078007800780078007800FC0FFF8
FFF80D307EAF12>105 D<0780FF80FF800F800780078007800780078007800780078007
800780078007800780078007800780078007800780078007800780078007800780078007
8007800780078007800780078007800780078007800780078007800780078007800FC0FF
FCFFFC0E327EB112>108 D<0780FE001FC000FF83078060F000FF8C03C18078000F9001
E2003C0007A001E4003C0007A000F4001E0007C000F8001E0007C000F8001E00078000F0
001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000
1E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E
00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E000FC001F8003F00FF
FC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>I<0780FE0000FF83078000FF8C03C0000F
9001E00007A001E00007A000F00007C000F00007C000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0
00078000F000078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80211F7E9E25
>I<001FC00000F0780001C01C00070007000F0007801E0003C01C0001C03C0001E03C00
01E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F800
00F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F00
078007800F0001C01C0000F07800001FC0001D1F7E9E21>I<0781FC00FF860700FF8803
C00F9001E007A000F007C00078078000780780003C0780003C0780003E0780001E078000
1F0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780001F078000
3E0780003E0780003C0780007C0780007807C000F007A000F007A001E00798038007860F
000781F80007800000078000000780000007800000078000000780000007800000078000
000780000007800000078000000FC00000FFFC0000FFFC0000202D7E9E25>I<0783E0FF
8C18FF907C0F907C07A07C07C03807C00007C00007C00007800007800007800007800007
800007800007800007800007800007800007800007800007800007800007800007800007
80000780000780000FC000FFFE00FFFE00161F7E9E19>114 D<00400000400000400000
400000400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FFFFE003
C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C01003C01003C01003C01003C01003C01003C01003C01001
C02001E02000E0400078C0001F00142C7FAB19>116 D<078000F000FF801FF000FF801F
F0000F8001F000078000F000078000F000078000F000078000F000078000F000078000F0
00078000F000078000F000078000F000078000F000078000F000078000F000078000F000
078000F000078000F000078000F000078000F000078000F000078000F000078001F00007
8001F000078001F000038002F00003C004F00001C008F800007030FF80001FC0FF80211F
7E9E25>I<FFF801FF80FFF801FF800FC0007C00078000380007C000300003C000200003
C000200001E000400001E000400001F000400000F000800000F000800000780100000078
010000007C010000003C020000003C020000001E040000001E040000001F040000000F08
0000000F080000000790000000079000000007D000000003E000000003E000000001C000
000001C000000001C000000000800000211F7F9E23>I<3FFFFF3E001E38001E30003C20
00782000786000F04001E04001E04003C0400780000780000F00001E00001E00003C0000
780000780000F00101E00101E00103C0010780010780030F00021E00021E00063C000678
000E78007EFFFFFE181F7E9E1D>122 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 0 1
0 0 bop 665 1013 a Fz(Optimizer)21 b(Ev)l(aluation)826
1196 y Fy(\(V)l(ersion)15 b(0.06\))818 1316 y(Preston)h(Briggs)767
1375 y Fx(preston@cs.rice.edu)2 2736 y Fw(This)e(w)o(ork)f(has)g(b)q
(een)h(supp)q(orted)g(b)o(y)g Fv(ARP)m(A)p Fw(,)e(through)i
Fv(ONR)f Fw(gran)o(t)g(N00014-91-J-1989.)p eop
%%Page: 1 2
1 1 bop 0 257 a Fu(Preface)0 432 y Ft(The)14 b(program)f(em)o(b)q
(edded)h(in)f(this)h(do)q(cumen)o(t)g(is)g(in)o(tended)g(to)g(help)g
(determine)g(the)h(state)f(of)g(the)g(art)g(of)g(optimization)0
482 y(in)f(pro)q(duction)g(C)g(compilers.)j(I)d(hop)q(e)h(that)f(the)g
(do)q(cumen)o(t)g(itself)g(will)e(b)q(e)j(useful)f(to)g(compiler)e
(writers,)j(industrial)e(and)0 531 y(academic,)g(and)i(to)g
(programmers)e(who)h(are)i(in)o(terested)g(in)f(learning)f(what)h(they)
g(can)g(exp)q(ect)i(from)c(a)h(compiler.)62 581 y(This)i(program)f
(should)g(not)h(b)q(e)h(used)g(to)f(compare)f(compilers.)20
b(When)c(comparison)d(shopping)i(for)g(compilers,)e(the)0
631 y(follo)o(wing)e(factors)k(should)e(b)q(e)i(considered:)0
714 y Fs(correctness)k Ft(The)14 b(compiler)f(shouldn't)g(crash.)19
b(Ough)o(t)14 b(to)g(generate)h(correct)g(co)q(de.)0
797 y Fs(completeness)j Ft(co)o(v)o(er)c(the)h(whole)e(language?)k
(include)d(extensions)h(y)o(ou)f(w)o(an)o(t?)0 880 y
Fs(sp)q(eed)20 b Ft(F)m(or)13 b(most)g(dev)o(elopmen)o(t,)f
(compilation)f(sp)q(eed)16 b(is)e(quite)f(imp)q(ortan)o(t.)0
963 y Fs(space)20 b Ft(If)14 b(it)f(requires)i(to)q(o)e(m)o(uc)o(h)g(w)
o(orking)g(space)h(while)g(compiling,)c(y)o(ou)j(w)o(on't)g(b)q(e)i
(able)e(to)h(run)g(it)f(on)g(large)h(routines.)0 1046
y Fs(error)h(rep)q(orting)0 1129 y(debugging)e(supp)q(ort)18
b Ft(F)m(or)c(correctness,)i(but)e(also)g(for)f(p)q(erformance)0
1212 y Fs(cost)20 b Ft(A)14 b(consideration)g(for)g(man)o(y)e
(individuals.)0 1295 y(Certainly)g(the)h(engineers)h(resp)q(onsible)g
(for)e(eac)o(h)h(compiler)e(balance)h(all)g(these)i(factors)e(and)h
(mak)o(e)e(their)i(design)f(accord-)0 1345 y(ingly)m(.)25
b(It)17 b(isn't)g(fair)f(to)h(compare)f(a)h(quic)o(k)f(dev)o(elopmen)o
(t)g(compiler)g(\()p Fr(e.g.,)g Ft(lcc\))i(with)f(a)f(slo)o(w)o(er)h
(optimizing)d(compiler)0 1395 y(\()p Fr(e.g.,)f Ft(gcc\))h(on)g(the)h
(basis)e(of)h(optimization.)h(They)f(ha)o(v)o(e)g(di\013eren)o(t)h
(goals)e(and)h(strengths.)62 1445 y(Of)19 b(course,)h(man)o(y)d(p)q
(eople)h Fr(are)k Ft(in)o(terested)e(in)e(co)q(de)h(qualit)o(y)e({)h
(that)h(is,)g(the)g(sp)q(eed)g(of)f(the)h(co)q(de)h(generated)f(for)0
1494 y(real)d(applications)e(\(esp)q(ecially)i Fr(their)j
Ft(applications\).)k(The)16 b(examples)f(in)g(this)h(program)e(are)i
Fr(not)g Ft(real;)g(they)g(are)g(tin)o(y)m(,)0 1544 y(arti\014cial)d
(cases,)i(useful)e(only)h(b)q(ecause)h(they)f(help)g(exp)q(ose)h
(certain)g(pic)o(ky)e(details)h(of)f(optimizer)g(design.)18
b(On)c(the)g(other)0 1594 y(hand,)20 b(it)e(can)h(b)q(e)h(argued)f
(that)g(atten)o(tion)g(to)g(the)g(details)g(tested)h(here)g(will)e(pa)o
(y)g(o\013)h(in)g(terms)f(of)h(more)f(complete)0 1644
y(optimization)11 b(of)i(real)h(programs.)969 2874 y(i)p
eop
%%Page: 2 3
2 2 bop 0 257 a Fu(Con)m(ten)m(ts)0 473 y Fs(1)38 b(In)o(tro)q(duction)
1597 b(1)62 523 y Ft(1.1)42 b(Goals)e Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(1)62 573 y(1.2)42
b(Related)14 b(W)m(ork)20 b Fq(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66
b Ft(1)62 623 y(1.3)42 b(Approac)o(h)33 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(1)158 672 y(1.3.1)46 b(Optimizations)12
b(Co)o(v)o(ered)i Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(1)158 722 y(1.3.2)46
b(Other)15 b(P)o(ossibilities)32 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66
b Ft(2)62 772 y(1.4)42 b(Ac)o(kno)o(wledgemen)o(ts)26
b Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(2)0 863 y Fs(2)38
b(Exp)q(erimen)o(ts)1598 b(3)62 913 y Ft(2.1)42 b(Program)12
b(Organization)27 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(3)62
963 y(2.2)42 b(Con)o(trolling)12 b(the)i(Exp)q(erimen)o(ts)f
Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)66 b Ft(3)158 1013 y(2.2.1)46 b(Theory)41
b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Ft(4)158
1063 y(2.2.2)46 b(Practice)24 b Fq(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66
b Ft(6)158 1112 y(2.2.3)46 b(Timing)11 b(Routines)28
b Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)66 b Ft(8)0 1204 y Fs(3)38 b(Dead)15
b(Co)q(de)h(Elimination)1345 b(11)62 1254 y Ft(3.1)42
b(Lo)q(cal)12 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)45 b Ft(11)158 1303 y(3.1.1)h(The)14 b(Easiest)h(Case)21
b Fq(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)45 b Ft(11)158 1353 y(3.1.2)h(Sligh)o(tly)12
b(More)i(Complex)41 b Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(12)62 1403 y(3.2)d(Global)21
b Fq(:)f(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(12)158 1453 y(3.2.1)h(Across)15 b(Basic)f(Blo)q(c)o(ks)36
b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)45 b Ft(12)158 1503 y(3.2.2)h(Around)14 b(Lo)q(ops)42
b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(13)62 1553 y(3.3)d(Dead)14
b(Con)o(trol)f(Flo)o(w)21 b Fq(:)f(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(14)158 1602 y(3.3.1)h(Conditionals)38 b Fq(:)21
b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)45 b Ft(14)158 1652 y(3.3.2)h(Lo)q(ops)31
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(15)62
1702 y(3.4)d(P)o(artially)12 b(Dead)i(Co)q(de)29 b Fq(:)21
b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)45 b Ft(16)62 1752 y(3.5)d(Protot)o(yp)q(es)h
Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b
Ft(17)0 1843 y Fs(4)38 b(Constan)o(t)14 b(Propagation)1377
b(18)62 1893 y Ft(4.1)42 b(Lo)q(cal)12 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(18)158 1943
y(4.1.1)h(Constan)o(t)14 b(F)m(olding)k Fq(:)i(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(18)158 1993 y(4.1.2)h(Propagating)12 b(through)i(Expressions)20
b Fq(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(19)62 2042 y(4.2)d(Global)21 b Fq(:)f(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(19)158 2092 y(4.2.1)h(Extended)15
b(Basic)f(Blo)q(c)o(ks)i Fq(:)k(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(19)158 2142 y(4.2.2)h(Dominators)22
b Fq(:)e(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(20)158 2192 y(4.2.3)h(D)o(A)o
(Gs)29 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(21)158 2242 y(4.2.4)h(Lo)q(ops)31 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)45 b Ft(22)62 2291 y(4.3)d(Conditional)12
b(Constan)o(ts)27 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(22)62
2341 y(4.4)d(Conditional-Based)13 b(Assertions)30 b Fq(:)20
b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
45 b Ft(23)62 2391 y(4.5)d(Reasso)q(ciation)25 b Fq(:)20
b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(24)62 2441
y(4.6)d(Algebraic)14 b(Simpli\014cations)e Fq(:)20 b(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(24)62 2491 y(4.7)d(Floating-P)o(oin)o(t)11 b(Op)q(erations)23
b Fq(:)d(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)45 b Ft(24)62 2540 y(4.8)d(Protot)o(yp)q(es)h
Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b
Ft(25)963 2874 y(ii)p eop
%%Page: 3 4
3 3 bop 0 91 a Fs(5)38 b(V)l(alue)15 b(Num)o(b)q(ering)1469
b(26)62 141 y Ft(5.1)42 b(Lo)q(cal)12 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(26)158 191
y(5.1.1)h(Expressions)25 b Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(26)158 241 y(5.1.2)h(Basic)14 b(Blo)q(c)o(ks)40
b Fq(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(27)158 291 y(5.1.3)h(Extended)15
b(Basic)f(Blo)q(c)o(ks)i Fq(:)k(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(28)62 340 y(5.2)d(Dominators)26
b Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b
Ft(28)62 390 y(5.3)d(Global)21 b Fq(:)f(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)45 b Ft(29)158 440 y(5.3.1)h(D)o(A)o(Gs)29
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(29)158
490 y(5.3.2)h(Lo)q(ops)31 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)45 b Ft(29)62 540 y(5.4)d(Conditional-Based)13 b(Assertions)30
b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)45 b Ft(30)158 589 y(5.4.1)h(Simple)15 b Fq(:)20
b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(30)158 639
y(5.4.2)h(Deriv)o(ed)31 b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(30)62 689 y(5.5)d(Conditional)12 b(V)m(alue)h(Num)o(b)q(ers)26
b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)45 b Ft(31)62 739 y(5.6)d(Com)o(bining)11
b(V)m(alue)i(Num)o(b)q(ering)g(and)h(Constan)o(t)f(Propagation)23
b Fq(:)d(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)45 b Ft(31)62 789 y(5.7)d(Reasso)q(ciation)25
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(32)158
839 y(5.7.1)h(Expressions)25 b Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(32)158 888 y(5.7.2)h(Lo)q(cal)40 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)45 b Ft(32)158 938 y(5.7.3)h(Global)17
b Fq(:)j(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(32)62
988 y(5.8)d(Algebraic)14 b(Simpli\014cations)e Fq(:)20
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)45 b Ft(32)62 1038 y(5.9)d(Protot)o(yp)q(es)h
Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b
Ft(32)0 1129 y Fs(6)38 b(Co)q(de)16 b(Motion)1563 b(33)62
1179 y Ft(6.1)42 b(In)o(v)n(arian)o(t)12 b(Expressions)h
Fq(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(33)158 1229 y(6.1.1)h(D)o(A)o(Gs)29
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(33)158
1279 y(6.1.2)h(Lo)q(ops)31 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)45 b Ft(34)158 1328 y(6.1.3)h(Reasso)q(ciation)21
b Fq(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(36)62 1378 y(6.2)d(In)o(v)n(arian)o
(t)12 b(Con)o(trol)i(Flo)o(w)i Fq(:)k(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(37)158 1428 y(6.2.1)h(Hoisting)13 b(In)o(v)n(arian)o(t)f(Con)o
(trol)i(Flo)o(w)40 b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)45 b Ft(37)158 1478 y(6.2.2)h(Lo)q(op)13 b(Unswitc)o(hing)36
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)45 b Ft(38)62 1528 y(6.3)d(Protot)o(yp)q(es)h
Fq(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b
Ft(39)0 1619 y Fs(7)38 b(Strength)13 b(Reduction)1425
b(40)62 1669 y Ft(7.1)42 b(Induction)14 b(V)m(ariable)f(and)g(Constan)o
(t)30 b Fq(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)45 b Ft(40)62 1719 y(7.2)d(Induction)14 b(V)m(ariable)f(and)g
(Region)g(Constan)o(t)20 b Fq(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)45 b Ft(41)62 1768 y(7.3)d(Multiplying)12 b(Tw)o(o)h(Induction)
h(V)m(ariables)k Fq(:)i(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)45 b Ft(41)62 1818 y(7.4)d(Irreducible)15 b(Lo)q(ops)20
b Fq(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(42)62 1868
y(7.5)d(Con)o(trol)13 b(Flo)o(w)g(in)g(the)i(Lo)q(op)33
b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)45 b Ft(42)62 1918 y(7.6)d(More)14 b(Complex)e
(Induction)i(V)m(ariables)24 b Fq(:)c(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(42)158 1968 y(7.6.1)h(Incremen)o(t)14
b(b)o(y)f(a)h(Region)f(Constan)o(t)31 b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(43)158 2017 y(7.6.2)h(Monotonic)13
b(Induction)h(V)m(ariables)30 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)45 b Ft(43)158 2067 y(7.6.3)h(Mutual)13
b(Induction)h(V)m(ariables)26 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(44)62 2117 y(7.7)d(Multiple)13
b(Strides)g Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(44)62 2167 y(7.8)d(Linear)14 b(F)m(unction)f(T)m(est)h(Replacemen)
o(t)33 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)45 b Ft(45)62 2217 y(7.9)d(Protot)o(yp)q(es)h Fq(:)20
b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(45)0
2308 y Fs(A)26 b(Indices)1692 b(46)62 2358 y Ft(A.1)32
b(Files)26 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)45 b Ft(46)62 2408 y(A.2)32 b(Macros)13 b Fq(:)20
b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(46)62 2457 y(A.3)32 b(Iden)o(ti\014ers)d Fq(:)20
b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(46)958
2874 y(iii)p eop
%%Page: 4 5
4 4 bop 0 91 a Fs(B)28 b(Results)1684 b(50)62 141 y Ft(B.1)34
b(Apple)i Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(50)62 191 y(B.2)34 b(Borland)c Fq(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(50)62 241 y(B.3)34 b(Con)o(v)o(ex)41
b Fq(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(50)62 291 y(B.4)34 b(Cra)o(y)13 b(Computer)20 b
Fq(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(50)62 340
y(B.5)34 b(Cra)o(y)13 b(Researc)o(h)43 b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)45 b Ft(50)62 390 y(B.6)34 b(DEC)21 b Fq(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(50)158
440 y(B.6.1)38 b(Alpha)29 b Fq(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)45 b Ft(50)158 490 y(B.6.2)38 b(DECstation)21 b Fq(:)f(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)45 b Ft(50)62 540 y(B.7)34 b(Gn)o(u)13 b(CC)24
b Fq(:)d(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(50)62 589 y(B.8)34 b(Hewlett-P)o(ac)o(k)n(ard)j
Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(50)62 639
y(B.9)34 b(IBM)29 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)45 b Ft(51)158 689 y(B.9.1)38 b(RS/6000)12
b Fq(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(51)62
739 y(B.10)13 b(Microsoft)37 b Fq(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)45 b Ft(51)62 789 y(B.11)13 b(Silicon)g(Graphics)41
b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(51)62 839
y(B.12)13 b(Sun)42 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)45 b Ft(51)158 888 y(B.12.1)17 b(Solaris)h
Fq(:)i(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(51)62
938 y(B.13)13 b(T)m(era)29 b Fq(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)45 b Ft(51)62 988 y(B.14)13 b(T)m(exas)h
(Instrumen)o(ts)34 b Fq(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45
b Ft(51)958 2874 y(iv)p eop
%%Page: 1 6
1 5 bop 0 257 a Fu(Chapter)34 b(1)0 423 y(In)m(tro)s(duction)0
598 y Ft([1)o(])62 648 y(Man)o(y)13 b(p)q(eople)g(in)o(v)o(en)o(t)g
(their)g(o)o(wn)f(approac)o(hes)i(to)f(problems)f(as)h(they)g(arise.)18
b(While)12 b(I)h(applaud)f(in)o(v)o(en)o(tion,)g(rein)o(v)o(en-)0
697 y(tion)h(is)h(less)h(in)o(teresting.)j(I)c(am)e(particularly)h
(distressed)j(b)o(y)e(inferior)f(approac)o(hes)i(to)f(w)o(ell-understo)
q(o)q(d)g(problems.)62 747 y([5,)9 b(8,)h(6,)g(7])62
797 y(get)k(all)f(the)i(details)e(righ)o(t.)62 847 y(\\Best")i(v)o
(ersus)g(\\b)q(est,)f(simple")f([19)o(].)62 897 y([12)o(])h(w)o(an)o(t)
f(optimizer)g(that)h(do)q(esn't)g(degrade)h(in)e(the)i(face)f(of)f
(inlining)0 1034 y Fp(1.1)70 b(Goals)0 1125 y Ft(collect)14
b(and)g(record)h(examples)e(and)h(coun)o(ter-examples)62
1175 y(in)o(terested)i(in)d(\014nding)h(out)f(whic)o(h)h(algorithms)e
(are)i(used)h(in)e(industry)62 1224 y(do)q(es)i(an)o(y)o(one)e(do)h(b)q
(etter)i(than)d(published)h(w)o(ork?)62 1274 y(educates)i(b)o(y)e(sho)o
(wing)f(what)g(is)h(\(and)g(is)g(not\))g(p)q(ossible,)f(w)o(eaknesses)j
(and)e(strengths)h(of)f(di\013eren)o(t)h(algorithms)0
1412 y Fp(1.2)70 b(Related)20 b(W)-6 b(ork)0 1502 y Ft([25)o(])62
1552 y([20)o(])62 1602 y(less)17 b(detailed,)g(di\013eren)o(t)g(goals;)
g(they're)g(in)o(terested)h(in)e(ho)o(w)g(m)o(uc)o(h)f(optimization)f
(a\013ects)j(di\013eren)o(t)h(programs.)24 b(I)0 1652
y(w)o(an)o(t)13 b(details)h(ab)q(out)g(whether)h(particular)f
(optimizations)d(are)k(done)f(w)o(ell.)0 1789 y Fp(1.3)70
b(Approac)n(h)0 1880 y Ft(discuss)15 b(state)g(of)e(the)i(art,)e(and)h
(p)q(erhaps)h(some)e(common)e(alternativ)o(es)j(\(and)g(their)g(w)o
(eaknesses\))62 1930 y(a)g(series)h(of)e(examples)g(\(in)h(C)g(for)f
(no)o(w\),)g(test)i(co)q(de,)g(result)f(co)q(de,)h(time)62
1980 y(when)g(creating)f(test)h(cases,)g(v)o(erify)e(b)q(eha)o(viour)h
(b)o(y)f(examining)f(ob)r(ject)j(co)q(de)62 2030 y(try)f(to)g(sho)o(w)g
(real-w)o(orld)f(examples)0 2146 y Fo(1.3.1)55 b(Optimizations)17
b(Co)n(v)n(ered)0 2222 y Fs(dead)e(co)q(de)h(eliminat)o(ion)h
Ft(Not)d(the)g(same)f(as)h(elimination)d(of)i(unreac)o(hable)i(co)q(de)
0 2305 y Fs(constan)o(t)f(propagation)0 2388 y(v)m(alue)h(n)o(um)o(b)q
(ering)i Ft(elimination)11 b(of)i(redundan)o(t)i(computations)0
2471 y Fs(co)q(de)h(motion)i Ft(primarily)12 b(mo)o(ving)f(in)o(v)n
(arian)o(t)h(co)q(de)j(out)f(of)f(lo)q(ops)0 2554 y Fs(strength)g
(reduction)62 2646 y Ft(W)m(ell)g(kno)o(wn,)g(widely)g(applicable,)g(I)
g(understand)j(them)965 2874 y(1)p eop
%%Page: 2 7
2 6 bop 0 91 a Fo(1.3.2)55 b(Other)18 b(P)n(ossibilities)0
168 y Ft(I)c(ha)o(v)o(en't)f(tried)i(to)e(co)o(v)o(er)i(ev)o(ery)f(p)q
(ossible)g(optimization.)i(Imp)q(ortan)o(t)c(but)i(neglected)i(areas)e
(include:)62 251 y Fn(\017)21 b Ft(instruction)14 b(sc)o(heduling)62
334 y Fn(\017)21 b Ft(register)15 b(allo)q(cation)62
417 y Fn(\017)21 b Ft(instruction)14 b(selection)62 500
y Fn(\017)21 b Ft(v)o(ectorization)62 583 y Fn(\017)g
Ft(cac)o(he)15 b(managemen)o(t)62 666 y Fn(\017)21 b
Ft(p)q(oin)o(ter/structure/arra)o(y/alias)14 b(analysis)0
749 y(Nor)g(ha)o(v)o(e)g(I)g(tried)g(to)g(test)g(ev)o(ery)h(desirable)f
(feature)h(of)e(a)h(compiler,)e(or)i(ev)o(en)g(the)h(optimizer.)62
832 y Fn(\017)21 b Ft(correctness)62 915 y Fn(\017)g
Ft(e\016ciency)15 b(\(time)d(and)i(space\))h({)f(I)f(wish)h(these)i(w)o
(ere)e(rep)q(orted)i(along)c(with)i(SPECmarks.)0 998
y(I)e(ha)o(v)o(en't)g(ev)o(en)g(tried)h(to)f(co)o(v)o(er)g(an)o(y)g
(language)f(b)q(ey)o(ond)h(C.)18 b(Certainly)11 b(a)h(similar)e(test)j
(w)o(ould)e(b)q(e)i(practical,)e(and)h(I)g(think)0 1048
y(desirable,)i(for)f(F)m(ortran)h(compilers.)0 1185 y
Fp(1.4)70 b(Ac)n(kno)n(wledgemen)n(ts)0 1276 y Ft(Ken)15
b(Kennedy)m(,)g(Keith)h(Co)q(op)q(er,)e(Linda)g(T)m(orczon,)h(Cli\013)f
(Clic)o(k,)f(Rob)h(Shillner,)g(Stev)o(e)h(Carr,)g(Brian)f(Koblenz,)h
(Mic)o(hael)0 1326 y(Lewis,)f(John)g(Elder,)g(Rob)q(ert)g(Metzger)965
2874 y(2)p eop
%%Page: 3 8
3 7 bop 0 257 a Fu(Chapter)34 b(2)0 423 y(Exp)s(erimen)m(ts)0
598 y Ft(The)14 b(plan)g(is)f(to)h(conduct)h(a)e(large)h(n)o(um)o(b)q
(er)f(of)g(exp)q(erimen)o(ts)i(to)e(test)i(the)g(abilities)e(of)g(an)g
(optimizer.)0 735 y Fp(2.1)70 b(Program)24 b(Organization)-150
814 y Fm(3a)114 b Fl("global.h")o Fk(\021)104 861 y(h)p
Fw(Include)14 b(\014les)g Fm(3d,)f Fj(:)6 b(:)g(:)f Fk(i)104
906 y(h)p Fw(T)o(yp)q(es)13 b Fm(3e)r Fk(i)104 952 y
Fi(3)-150 1033 y Fm(3b)116 b Fl("main.c")p Fk(\021)104
1079 y Fl(#include)16 b("global.h")104 1125 y Fk(h)p
Fw(Constan)o(ts)d Fm(7a,)h Fj(:)5 b(:)h(:)g Fk(i)104
1170 y(h)p Fw(V)m(ariables)14 b Fm(9b)r Fk(i)104 1216
y(h)p Fw(Protot)o(yp)q(es)g Fm(4,)f Fj(:)5 b(:)h(:)g
Fk(i)104 1262 y Fi(3)0 1319 y Fh(See)11 b Fm(3c,)i(6b,)g(8c)n(d,)h(9e,)
f(10)p Fh(.)-150 1393 y Fm(3c)116 b Fl("main.c")p Fk(\021)104
1439 y Fl(int)18 b(main\(\))104 1484 y({)143 1530 y Fk(h)p
Fw(Initialize)e Fm(9c)r Fk(i)143 1576 y Fl(puts\("Begi)o(n)g(tests,)i
(version)f(0.06"\);)143 1621 y Fk(h)p Fw(Ev)n(aluation)f(driv)o(ers)e
Fm(11a,)f Fj(:)6 b(:)f(:)h Fk(i)143 1667 y Fl(puts\("Test)o(s)16
b(completed"\))o(;)143 1713 y(exit\(0\);)104 1758 y(})104
1804 y Fi(3)0 1862 y Fh(See)11 b Fm(3b,)i(6b,)g(8c)n(d,)h(9e,)f(10)p
Fh(.)-150 1940 y Fm(3d)114 b Fk(h)p Fw(Include)14 b(\014les)p
Fk(i)e(\021)104 1986 y Fl(#include)k(<stdlib.h>)104 2032
y(#include)g(<stdio.h>)104 2078 y Fi(3)0 2135 y Fh(See)11
b(3a,)g Fm(6a,)i(9a)p Fh(.)0 2249 y Fp(2.2)70 b(Con)n(trolling)21
b(the)h(Exp)r(erimen)n(ts)0 2340 y Ft(Eac)o(h)e(exp)q(erimen)o(t)f
(will)g(b)q(e)h(con)o(trolled)f(b)o(y)h Fg(test)p Ft(,)f(a)h(routine)g
(taking)e(t)o(w)o(o)h(function)h(parameters,)g Fg(base_case)e
Ft(and)0 2390 y Fg(test_case)p Ft(,)12 b(eac)o(h)i(of)f(t)o(yp)q(e)i
Fg(FunPar)p Ft(.)-150 2470 y Fm(3e)116 b Fk(h)p Fw(T)o(yp)q(es)p
Fk(i)11 b(\021)104 2516 y Fl(typedef)17 b(void)h(\(*FunPar\))o(\(in)o
(t)e(*\);)104 2562 y Fi(3)0 2619 y Fh(See)11 b(3a.)0
2692 y Ft(The)k Fg(test)f Ft(routine)h(will)e(rep)q(eatedly)j(measure)f
(the)g(time)f(required)h(to)g(run)g(eac)o(h)g(of)f(the)i(parameter)e
(functions.)21 b(If)14 b(the)0 2742 y(a)o(v)o(erage)e(times)e(required)
j(for)e(the)h(t)o(w)o(o)f(functions)h(do)f(not)h(di\013er)g
(signi\014can)o(tly)m(,)e Fg(test)h Ft(will)f(return)j
Fg(1)p Ft(,)e(indicating)g(that)g(the)965 2874 y(3)p
eop
%%Page: 4 9
4 8 bop 0 91 a Ft(compiler)14 b(w)o(as)h(able)g(to)g(optimize)f(the)h
(test)i(case)f(to)f(matc)o(h)f(the)i(\(hand)f(optimized\))f(base)i
(case.)23 b(If)14 b(the)i(time)e(required)0 141 y(for)g(the)h(base)g
(case)h(is)e(signi\014can)o(tly)f(less)i(than)g(the)g(time)e(required)i
(for)f(the)i(test)f(case,)g Fg(test)f Ft(will)f(return)i
Fg(0)p Ft(,)f(indicating)0 191 y(that)g(the)g(compiler)f(did)g(not)h(p)
q(erform)f(the)i(optimization)c(in)i(question.)62 241
y(Of)k(course,)g(there's)h(a)e(third)g(p)q(ossibilit)o(y:)22
b(The)17 b(test)g(case)g(migh)o(t)e(require)i(signi\014can)o(tly)e
(less)i(time)e(than)h(the)h(base)0 291 y(case.)i(In)13
b(this)g(ev)o(en)o(t,)h Fg(test)e Ft(will)g(complain)e(and)j(halt,)g
(prin)o(ting)f(the)i Fg(id)e Ft(of)h(the)h(bungled)f(test.)19
b(This)13 b(shouldn't)f(happ)q(en)0 340 y(during)i(an)f(actual)h(run,)g
(though)f(it)h(migh)o(t)d(happ)q(en)k(during)e(dev)o(elopmen)o(t)g(of)h
(the)g(test)h(cases.)-150 422 y Fm(4)132 b Fk(h)p Fw(Protot)o(yp)q(es)p
Fk(i)12 b(\021)104 468 y Fl(int)18 b(test\(int)f(ok,)280
514 y(FunPar)h(base_case)o(,)280 560 y(FunPar)g(test_case)o(,)280
605 y(int)h(*data,)280 651 y(int)g(n,)280 697 y(char)f(*id\);)104
742 y Fi(3)0 800 y Fh(See)11 b(3b,)g Fm(7b,)i(8e,)g(17,)g(25,)g(32b,)h
(39,)f(45c)p Fh(.)0 881 y Ft(The)j Fg(data)f Ft(parameter)h(allo)o(ws)e
(us)i(to)g(sp)q(ecify)g(some)f(arbitrarily-structured)i(data)e(to)h(b)q
(e)g(passed)h(as)f(an)f(argumen)o(t)g(to)0 931 y(eac)o(h)f(of)g(the)g
(routines.)0 1047 y Fo(2.2.1)55 b(Theory)0 1123 y Ft(The)19
b(question)g(of)f(whether)i(the)f(times)f(required)h(for)g(the)g(t)o(w)
o(o)f(functions)h(di\013ers)g Fr(signi\014can)o(tly)i
Ft(is)e(hard.)32 b(On)19 b(most)0 1173 y(mo)q(dern)13
b(mac)o(hines,)g(there)i(are)f(at)g(least)g(three)h(comp)q(onen)o(ts)f
(con)o(tributing)f(to)h(measuremen)o(t)f(uncertain)o(t)o(y:)51
1256 y(1.)20 b(timer)13 b(quan)o(tization)f(error,)51
1339 y(2.)20 b(jitter)14 b(caused)h(b)o(y)e(con)o(text)i(switc)o(hes,)g
(and)51 1422 y(3.)20 b(cac)o(he)15 b(p)q(ollution)d(caused)j(b)o(y)f
(comp)q(eting)e(pro)q(cesses.)0 1505 y(In)i(the)g(next)h(three)g
(sections,)f(I'll)f(outline)g(approac)o(hes)i(to)f(eac)o(h)g(of)f
(these)j(problems.)0 1613 y Fs(Timer)f(Quan)o(tizatio)o(n)e(Errors)0
1690 y Ft(The)18 b(timers)f(a)o(v)n(ailable)e(on)i(some)g(common)e(w)o
(orkstations)i(are)h(relativ)o(ely)f(coarse,)i(t)o(ypically)d(60)h(or)g
(100Hz.)29 b(Since)18 b(a)0 1740 y(sample)12 b(run)i(ma)o(y)e(start)i
(an)o(ywhere)g(within)f(the)h(in)o(terv)n(al)e(of)h(a)g(single)h(timer)
e(tic)o(k,)h(the)h(measured)g(length)f(of)g(a)g(run)h(ma)o(y)0
1789 y(v)n(ary)i(from)f(its)h(true)i(v)n(alue)e(b)o(y)g(up)h(to)f(one)h
(tic)o(k.)26 b(If)16 b(our)h(timing)d(runs)j(are)g(to)q(o)f(short,)i
(this)e(error)i(will)d(dominate)g(our)0 1839 y(measuremen)o(ts.)23
b(The)16 b(w)o(a)o(y)f(around)g(the)h(problem)f(is)g(to)h(ensure)h
(that)e(tests)j(run)d(for)h(man)o(y)d(tic)o(ks.)24 b(F)m(or)15
b(example,)f(if)h(a)0 1889 y(single)d(test)i(runs)f(for)g(more)e(than)i
(100)f(tic)o(ks,)h(w)o(e)g(w)o(ould)e(exp)q(ect)k(that)d(the)i(quan)o
(tization)d(error)j(w)o(ould)e(b)q(e)h(less)g(than)g(1\045.)62
1939 y(Since)i(the)f(tests)i(will)d(t)o(ypically)f(b)q(e)j(quite)f
(short)h(\(p)q(erhaps)g(a)f(dozen)g(instructions)h(eac)o(h\),)f(I'll)f
(wrap)h(a)g(lo)q(op)f(around)0 1989 y(eac)o(h)j(one.)23
b(By)16 b(setting)g(the)g(n)o(um)o(b)q(er)f(of)g(iterations)h(for)f
(eac)o(h)h(lo)q(op)f(high)g(enough,)g(I)h(can)g(ensure)h(that)f(eac)o
(h)g(test)g(runs)0 2039 y(long)d(enough)h(\(sa)o(y)m(,)f(at)h(least)g
(100)f(tic)o(ks\))h(to)g(minim)o(ize)d(quan)o(tization)i(errors.)0
2146 y Fs(Con)o(text)i(Switc)o(hes)0 2223 y Ft(Con)o(text)f(switc)o
(hes)g(under)g(a)f(m)o(ultitasking)e(op)q(erating)i(system)g
(exacerbate)i(the)f(quan)o(tization)e(error)j(describ)q(ed)g(ab)q(o)o
(v)o(e.)0 2273 y(A)f(pro)q(cess)h(ma)o(y)d(b)q(e)j(in)o(terrupted)g(an)
o(ywhere)f(in)f(a)h(tic)o(k)f(and)h(con)o(trol)f(returned)j(at)d(some)g
(other)i(p)q(oin)o(t.)i(F)m(urthermore,)c(a)0 2323 y(p)q(oten)o(tially)
d(un)o(b)q(ounded)h(n)o(um)o(b)q(er)f(of)h(in)o(teruptions)g(ma)o(y)e
(o)q(ccur)j(during)e(a)h(giv)o(en)f(run.)18 b(The)11
b(e\013ect)i(of)d(eac)o(h)h(in)o(terruptions)0 2372 y(is)j(in)o(tro)q
(duce)h(a)f(new)g(error)i(of)d(up)h(to)g(one)h(tic)o(k,)e(either)i(or)f
(longer)g(or)h(shorter.)20 b(While)13 b(w)o(e)h(cannot)h(predict)g(the)
g(n)o(um)o(b)q(er)0 2422 y(of)d(in)o(terruptions)h(that)f(migh)o(t)e(o)
q(ccur)k(during)e(a)g(single)g(run,)h(w)o(e)f(can)h(exp)q(ect)h(that)e
(the)h(cumm)o(ulativ)o(e)c(errors)14 b(in)o(tro)q(duced)0
2472 y(w)o(ould)f(b)q(e)i Fr(normally)c(distributed.)62
2522 y Ft(T)m(o)k(con)o(trol)h(this)g(source)h(of)e(error,)i(w)o(e'll)e
(measure)g(eac)o(h)i(routine)f(sev)o(eral)g(times)f(and)h(compare)f
(the)h(results)h(using)0 2572 y(statistical)d(analysis)f(based)i(on)f
(Studen)o(t's)h Fq(t)f Ft(distributions)g([23)o(,)g(Section)h(11{3].)i
(This)d(is)g(the)h(desired)g(approac)o(h)f(giv)o(en)0
2622 y(the)g(follo)o(wing)e(assumptions:)62 2705 y Fn(\017)21
b Ft(the)14 b(size)h(of)e(the)i(sample)d(sets)j(is)f(small,)965
2874 y(4)p eop
%%Page: 5 10
5 9 bop 62 91 a Fn(\017)21 b Ft(they)14 b(are)g Fr(normally)e
(distributed,)i Ft(and)62 174 y Fn(\017)21 b Ft(they)14
b(ha)o(v)o(e)g(the)g(same)f Fr(v)n(ariance.)0 257 y Ft(Minimizing)f
(the)j(size)g(of)f(the)h(sample)e(sets)j(\(the)f(n)o(um)o(b)q(er)f(of)g
(times)g(w)o(e)h(ha)o(v)o(e)f(to)g(measure)h(eac)o(h)g(routine\))g(is)f
(desirable,)0 307 y(since)h(w)o(e'd)e(lik)o(e)h(the)g(complete)f(set)i
(of)e(tests)j(to)d(\014nish)h(is)g(a)g(reasonable)g(time.)j(The)d
(assumption)f(of)g(iden)o(tical)g(v)n(ariance)0 357 y(turns)h(out)g
(not)f(to)g(matter;)g(that)g(is,)g(under)i(the)f(conditions)f(of)g(our)
g(exp)q(erimen)o(t)g(\(t)o(w)o(o)g(sample)g(sets)h(of)f(equal)g
(size\),)h(the)0 407 y(test)h(describ)q(ed)h(b)q(elo)o(w)d(is)h(equiv)n
(alen)o(t)f(to)h(a)f(v)n(ariance)h(test.)62 457 y(W)m(e)f(b)q(egin)g(b)
o(y)f(collecting)h(a)f(sample)g(set)i(for)e(eac)o(h)i(routine)f
Fq(x)f Ft(and)h Fq(y)q Ft(,)g(where)i(the)e(n)o(um)o(b)q(er)f(of)g
(samples)g(in)h(eac)o(h)g(set)h(is)0 506 y(iden)o(tical)g(and)h(will)e
(b)q(e)j(called)e Fq(n)p Ft(.)21 b(\(A)15 b(reasonable)h(n)o(um)o(b)q
(er)e(of)g(samples)g(migh)o(t)f(b)q(e)i(10.\))21 b(Compute)14
b(arithmetic)g(means)3 556 y(\026)-24 b Fq(x)14 b Ft(and)i(\026)-24
b Fq(y)16 b Ft(for)d(the)i(sample)e(sets,)h(where)861
630 y(\026)-24 b Fq(x)12 b Ft(=)942 571 y Ff(P)986 581
y Fe(n)986 614 y(i)p Fv(=1)1049 602 y Fq(x)1073 608 y
Fe(i)p 942 621 145 2 v 1002 659 a Fq(n)0 717 y Ft(Compute)h(the)h(v)n
(ariance)g Fq(\033)438 723 y Fe(x)473 717 y Ft(and)f
Fq(\033)577 723 y Fe(y)611 717 y Ft(for)g(eac)o(h)i(sample)d(set,)j
(where)789 837 y Fq(\033)813 843 y Fe(x)845 837 y Ft(=)894
777 y Ff(P)938 787 y Fe(n)938 821 y(i)p Fv(=1)993 808
y Ft(\()p Fq(x)1033 814 y Fe(i)1056 808 y Fn(\000)d Ft(\026)-23
b Fq(x)p Ft(\))1138 793 y Fv(2)p 894 827 263 2 v 977
865 a Fq(n)9 b Fn(\000)g Ft(1)0 943 y(Compute)k(an)h(estimate)f(of)g
(the)i(p)q(o)q(oled)e(v)n(ariance)j(^)-23 b Fq(\033)q
Ft(,)14 b(where)862 1049 y(^)-23 b Fq(\033)13 b Ft(=)946
1021 y Fq(\033)970 1027 y Fe(x)1000 1021 y Ft(+)c Fq(\033)1065
1027 y Fe(y)p 946 1040 140 2 v 1005 1078 a Ft(2)0 1152
y(Finally)m(,)i(compute)j(the)g(statistic)g Fq(T)6 b
Ft(,)14 b(where)861 1217 y Fq(T)j Ft(=)972 1189 y(\026)-23
b Fq(x)8 b Fn(\000)13 b Ft(\026)-24 b Fq(y)p 951 1207
134 2 v 951 1216 a Ff(p)p 993 1216 92 2 v 35 x Ft(2)r(^)h
Fq(\033)q(=n)0 1324 y Ft(Large)15 b(absolute)f(v)n(alues)h(of)f
Fq(T)20 b Ft(suggest)c(that)f(it)f(is)g(unlik)o(ely)g(that)j(\026)-24
b Fq(x)13 b Ft(=)j(\026)-24 b Fq(y)r Ft(.)20 b(Th)o(us,)15
b(if)e Fn(j)p Fq(T)6 b Fn(j)12 b Fq(>)h(t)p Ft(\(2)p
Fq(n)d Fn(\000)g Ft(2)p Fq(;)d(p)p Ft(\),)13 b(w)o(e)i(sa)o(y)g(that)i
(\026)-24 b Fq(x)0 1374 y Ft(di\013ers)13 b(from)g(\026)-24
b Fq(y)14 b Ft(at)e(the)h Fq(p)f Ft(lev)o(el)g(\(where)h
Fq(t)g Ft(is)f(a)f(table)h(of)g(magic)e(v)n(alues)i(copied)h(from)d(a)i
(statistics)h(b)q(o)q(ok)f([23)o(,)g(T)m(able)f(A{8]\).)0
1423 y(F)m(or)i(example,)f(if)g Fq(n)g Ft(=)f(10)i(and)g
Fq(T)18 b Ft(=)12 b(2)p Fq(:)p Ft(61,)f(w)o(e)j(can)g(examine)e(the)h
(ro)o(w)h(giv)o(en)e(b)o(y)i Fq(t)p Ft(\(18)p Fq(;)7
b Fn(\003)p Ft(\))12 b(in)h(T)m(able)f(2.1)h(and)g(w)o(e)g(see)i(that)0
1473 y(2)p Fq(:)p Ft(878)10 b Fq(<)i(T)17 b(<)12 b Ft(2)p
Fq(:)p Ft(552,)g(leading)h(us)h(to)g(reject)h(the)g(h)o(yp)q(othesis)g
(that)h(\026)-24 b Fq(x)12 b Ft(=)i(\026)-23 b Fq(y)q
Ft(,)14 b(with)f(less)i(than)f(1\045)f(c)o(hance)i(of)e(error.)0
1581 y Fs(Cac)o(he)j(P)o(olluti)o(on)0 1658 y Ft(W)m(e)j(use)g(the)h
(term)e(\\cac)o(he)i(p)q(ollution")d(to)i(encompass)g(an)g(en)o(tire)g
(set)h(of)f(di\016culties)f(in)o(tro)q(duced)i(b)o(y)f(the)g(memory)0
1708 y(hierarc)o(h)o(y)m(.)g(In)14 b(the)h(w)o(orst)f(case,)h(w)o(e)g
(migh)o(t)d(see)j(e\013ects)h(from)d(the)i(data)f(cac)o(he,)g(the)h
(instruction)g(cac)o(he,)f(a)g(second-lev)o(el)0 1757
y(cac)o(he,)g(and)g(the)h Fw(TLB)p Ft(.)e(There)i(seem)f(to)f(b)q(e)i
(t)o(w)o(o)e(sources)j(of)d(cac)o(he)i(p)q(ollution:)0
1840 y Fs(self)f(in)o(terference)j Ft(In)11 b(the)g(absence)g(of)f(con)
o(text)h(switc)o(hes,)h(w)o(e)e(w)o(ould)g(exp)q(ect)i(that)e(the)h(p)q
(ossibilit)o(y)e(of)h(self)g(in)o(terference)104 1890
y(w)o(ould)h(b)q(e)i(minim)o(ized)d(since)j(eac)o(h)g(test)g(is)f
(quite)g(small,)e(certainly)i(\014tting)g(in)o(to)g(the)g(I)h(cac)o
(he,)g(and)f(only)f(references)p 364 2091 1222 2 v 363
2137 2 46 v 389 2123 a Fw(Degrees)j(of)p 587 2137 V 430
w(Probabilit)o(y)p 588 2138 998 2 v 363 2182 2 46 v 409
2169 a(freedom)p 587 2182 V 77 w(0.005)p 738 2182 V 74
w(0.01)p 888 2182 V 72 w(0.025)p 1039 2182 V 74 w(0.05)p
1189 2182 V 92 w(0.1)p 1340 2182 V 92 w(0.15)p 1490 2182
V 66 w Fd(:)6 b(:)g(:)p 364 2184 1222 2 v 363 2260 2
76 v 471 2213 a Fw(.)471 2229 y(.)471 2246 y(.)p 587
2260 V 738 2260 V 888 2260 V 1039 2260 V 1189 2260 V
1340 2260 V 1490 2260 V 363 2305 2 46 v 457 2292 a(16)p
587 2305 V 124 w(2.921)p 738 2305 V 64 w(2.583)p 888
2305 V 63 w(2.120)p 1039 2305 V 64 w(1.746)p 1189 2305
V 63 w(1.363)p 1340 2305 V 64 w(1.071)p 1490 2305 V 363
2351 V 457 2337 a(17)p 587 2351 V 124 w(2.898)p 738 2351
V 64 w(2.567)p 888 2351 V 63 w(2.110)p 1039 2351 V 64
w(1.740)p 1189 2351 V 63 w(1.333)p 1340 2351 V 64 w(1.069)p
1490 2351 V 363 2397 V 454 2383 a Fc(18)p 587 2397 V
115 w(2.878)p 738 2397 V 50 w(2.552)p 888 2397 V 51 w(2.101)p
1039 2397 V 50 w(1.743)p 1189 2397 V 51 w(1.330)p 1340
2397 V 50 w(1.067)p 1490 2397 V 363 2442 V 457 2429 a
Fw(19)p 587 2442 V 124 w(2.861)p 738 2442 V 64 w(2.539)p
888 2442 V 63 w(2.093)p 1039 2442 V 64 w(1.729)p 1189
2442 V 63 w(1.328)p 1340 2442 V 64 w(1.066)p 1490 2442
V 363 2488 V 457 2474 a(20)p 587 2488 V 124 w(2.845)p
738 2488 V 64 w(2.528)p 888 2488 V 63 w(2.086)p 1039
2488 V 64 w(1.725)p 1189 2488 V 63 w(1.325)p 1340 2488
V 64 w(1.064)p 1490 2488 V 363 2564 2 76 v 471 2517 a(.)471
2534 y(.)471 2550 y(.)p 587 2564 V 738 2564 V 888 2564
V 1039 2564 V 1189 2564 V 1340 2564 V 1490 2564 V 634
2701 a Fs(T)l(able)15 b(2.1)41 b Ft(Studen)o(t's)15 b
Fq(t)f Ft(Distributions)965 2874 y(5)p eop
%%Page: 6 11
6 10 bop 104 91 a Ft(a)12 b(tin)o(y)g(amoun)o(t)f(of)h(data,)g(whic)o
(h)h(will)e(easily)h(\014t)h(in)o(to)f(the)h(D)f(cac)o(he.)19
b(A)13 b(single,)f(preliminary)e(run)j(of)f(a)g(test)i(should)104
141 y(pro)o(v)o(ok)o(e)f(an)o(y)h(initial)e(cac)o(he)i(misses,)f
(e\013ectiv)o(ely)i(w)o(arming)d(them)h(up.)104 204 y(Note)j(that)h(a)e
(mac)o(hine)g(with)h(a)g(com)o(bined)f(cac)o(he)i(\(v)o(ersus)g
(separate)h(I)e(and)g(D)g(cac)o(hes\))h(ma)o(y)d(pro)o(v)o(ok)o(e)i
(con\015icts)104 253 y(b)q(et)o(w)o(een)e(instructions)g(and)f(data,)f
(particularly)g(in)h(a)f(direct-mapp)q(ed)h(cac)o(he.)19
b(Since)13 b(the)h(con\015ict)f(ma)o(y)e(\(unpred-)104
303 y(icably\))j(h)o(urt)h(one)g(case)g(without)g(harming)d(another,)j
(it)f(w)o(on't)g(really)g(b)q(e)i(p)q(ossible)e(to)h(ensure)h(fair)e
(comparisons)104 353 y(on)f(suc)o(h)i(mac)o(hines.)0
428 y Fs(in)o(terferen)o(ce)e(from)i(other)f(pro)q(cesses)20
b Ft(Besides)13 b(the)e(quan)o(tization)f(errors)i(discussed)h(ab)q(o)o
(v)o(e,)e(a)g(con)o(text)g(switc)o(h)h(can)104 478 y(also)h(lea)o(v)o
(e)h(the)g(cac)o(he)h(in)e(a)h(non-deterministic)f(state,)h(t)o
(ypically)f(pro)o(v)o(oking)f(a)i(string)g(of)f(cac)o(he)i(misses.)104
541 y(Again,)d(the)i(tactic)g(of)e(using)i(man)o(y)d(runs)j(comes)f(to)
g(mind.)j(Unfortunately)m(,)d(the)h(errors)g(in)o(tro)q(duced)h(in)e
(this)g(case)104 590 y(are)i Fr(not)h Ft(normally)c(distributed.)23
b(Cac)o(he)15 b(misses)g(alw)o(a)o(ys)f(add)h(to)f(the)i(run)f(time;)f
(they)i(nev)o(er)g(decrease)h(it.)k(This)104 640 y(suggests)15
b(using)g(the)g(minim)n(um)10 b(time)j(from)g(sev)o(eral)i(runs)g
(rather)g(than)g(computing)d(the)j(mean.)k(Unfortunately)m(,)104
690 y(this)c(notion)f(con\015icts)i(with)f(our)g(earlier)g(approac)o(h)
g(to)g(minim)o(i)o(zing)d(the)k(e\013ects)h(of)d(quan)o(tization)g
(errors)j(due)e(to)104 740 y(con)o(text)f(switc)o(hes.)0
807 y(I)h(don't)f(ha)o(v)o(e)h(a)f(comp)q(elling)f(solution)h(to)h(the)
g(problems)f(raised)i(here.)22 b(It)15 b(ma)o(y)e(b)q(e)i(a)g(topic)g
(for)f(researc)o(h.)23 b(I'll)13 b(ha)o(v)o(e)i(to)0
857 y(talk)e(to)h(some)f(statistics)i(p)q(eople)f(ab)q(out)g(it.)j
(Things)d(that)g(come)f(to)h(mind:)62 924 y Fn(\017)21
b Ft(Ob)o(viously)m(,)12 b(try)i(to)g(get)g(the)h(mac)o(hine)d(in)i
(single-user)g(mo)q(de,)e(or)i(at)g(least)g(ligh)o(tly)e(loaded.)62
999 y Fn(\017)21 b Ft(If)13 b(the)g(standard)h(deviations)f(seem)g
(\\to)q(o)g(high")f(\(more)g(than)i(2)f(clo)q(c)o(k)g(tic)o(ks,)g(ma)o
(yb)q(e?\),)e(complain)g(that)i(the)h(data)104 1049 y(is)g(to)q(o)f
(noisy)h(and)f(ignore)h(the)g(results.)0 1116 y(Is)d(there)g(an)o(y)f
(c)o(hance)i(of)d(b)q(ounding,)i(statistically)m(,)e(the)i(c)o(hance)g
(for)f(error?)18 b(I'm)9 b(already)h(unsure)h(ab)q(out)f(the)h(com)o
(bination)0 1166 y(of)18 b(running)f(for)h(a)g(long)f(time)g(and)h
(running)g(man)o(y)e(times.)30 b(Sure,)19 b(the)g(more/longer)e(w)o(e)h
(run)g(the)h(thing,)f(the)h(more)0 1216 y(con\014dence)d(w)o(e)e(can)g
(ha)o(v)o(e)g(in)f(our)h(conclusion;)f(but)h(what)g(is)g(the)g(real)g
(c)o(hance)h(for)f(error?)0 1329 y Fo(2.2.2)55 b(Practice)0
1405 y Ft(When)15 b(collecting)f(samples,)g(run)h(once,)h(ignoring)d
(the)j(result,)f(just)g(to)g(get)g(the)g(Instruction)h(cac)o(he)g
(stable.)21 b(Collect)14 b(10)0 1455 y(times)f(from)f(one,)i(then)g(10)
g(timings)d(from)i(the)h(other.)62 1505 y(W)m(ork)f(on)h(tests)h(so)f
(that)g(the)h(di\013erences)h(are)e(signi\014can)o(t.)-150
1567 y Fm(6a)114 b Fk(h)p Fw(Include)14 b(\014les)p Fk(i)e(\021)104
1613 y Fl(#include)k(<math.h>)104 1659 y Fi(3)0 1717
y Fh(See)11 b(3a,)g Fm(3d,)i(9a)p Fh(.)-150 1772 y Fm(6b)116
b Fl("main.c")p Fk(\021)104 1818 y Fl(int)18 b(test\(int)f(ok,)280
1864 y(FunPar)h(base_case)o(,)280 1910 y(FunPar)g(test_case)o(,)280
1955 y(int)h(*data,)280 2001 y(int)g(n,)280 2047 y(char)f(*id\))104
2092 y({)143 2138 y(int)g(ret_val)f(=)j(0;)143 2184 y(printf\(")75
b(\045d\))19 b(\045s)g(-)g(",)g(n,)g(id\);)143 2229 y(if)g(\(1)g(/*)g
(always)e(test,)h(for)g(now)g(*/)h(||)g(ok\))g({)182
2275 y(double)f(base_tim)o(es[)o(SAM)o(PL)o(ES])o(,)e(test_times[)o(SA)
o(MPL)o(ES)o(];)182 2321 y(long)i(int)h(iteration)o(s)e(=)i(determine)o
(_i)o(ter)o(ati)o(on)o(s\(b)o(as)o(e_c)o(ase)o(,)d(data\);)182
2366 y(collect_ti)o(min)o(gs)o(\(it)o(era)o(ti)o(ons)o(,)g(test_case,)g
(data,)i(test_time)o(s\);)182 2412 y(collect_ti)o(min)o(gs)o(\(it)o
(era)o(ti)o(ons)o(,)e(base_case,)g(data,)i(base_time)o(s\);)182
2458 y Fk(h)p Fw(Analyze)c(timing)h(results)f Fm(7c)r
Fk(i)143 2503 y Fl(})143 2549 y(else)k(puts\("skip)o(pi)o(ng")o(\);)143
2595 y(return)f(ret_val;)104 2640 y(})104 2686 y Fi(3)0
2743 y Fh(See)11 b Fm(3b)n(c,)j(8c)n(d,)f(9e,)h(10)p
Fh(.)965 2874 y Ft(6)p eop
%%Page: 7 12
7 11 bop -150 78 a Fm(7a)114 b Fk(h)p Fw(Constan)o(ts)p
Fk(i)11 b(\021)104 124 y Fl(#define)17 b(SAMPLES)g(10)104
170 y(/*)i(#define)e(CLOCKS_P)o(ER_)o(SEC)f(1000000)134
b(for)19 b(SPARC)e(*/)104 215 y Fi(3)0 273 y Fh(See)11
b(3b,)g Fm(7d)p Fh(.)-150 353 y Fm(7b)116 b Fk(h)p Fw(Protot)o(yp)q(es)
p Fk(i)12 b(\021)104 399 y Fl(long)18 b(int)g(determine_)o(ite)o(rat)o
(io)o(ns\()o(Fu)o(nPa)o(r)e(base_case,)692 445 y(int)j(*data\);)104
536 y(void)f(collect_t)o(imi)o(ng)o(s\(l)o(ong)e(int)i(iterations)o(,)
516 582 y(FunPar)f(routine,)516 627 y(int)h(*data,)516
673 y(double)f(*times\);)104 719 y Fi(3)0 776 y Fh(See)11
b(3b,)g Fm(4,)h(8e,)i(17,)f(25,)g(32b,)h(39,)f(45c)p
Fh(.)0 857 y Ft(Note)h(that)g(w)o(e'v)o(e)g(done)g(a)g(little)f
(algebraic)g(manipulation,)e(e\013ectiv)o(ely)j(rewriting)g(the)h
(computation)d(of)h Fq(T)20 b Ft(as)773 969 y Fq(T)d
Ft(=)12 b(\()s(\026)-24 b Fq(x)9 b Fn(\000)k Ft(\026)-24
b Fq(y)r Ft(\))987 914 y Ff(r)p 1028 914 149 2 v 1090
941 a Fq(n)p 1033 960 140 2 v 1033 998 a(\033)1057 1004
y Fe(x)1087 998 y Ft(+)10 b Fq(\033)1153 1004 y Fe(y)0
1087 y Ft(whic)o(h)17 b(lo)q(oks)g(a)g(little)f(uglier,)h(but)h(should)
f(sa)o(v)o(e)g(some)g(time)f(and)h(precision.)28 b(Additionally)m(,)15
b(w)o(e)j(tak)o(e)f(care)h(to)f(a)o(v)o(oid)0 1137 y(division)d(b)o(y)i
(0.)22 b(This)16 b(is)f(a)h(real)f(p)q(ossibilit)o(y)m(,)f(esp)q
(ecially)i(with)f(relativ)o(ely)g(slo)o(w)g(clo)q(c)o(ks.)23
b(It)16 b(do)q(esn't)g(imply)d(an)o(y)i(sort)i(of)0 1186
y(problem;)12 b(it)i(only)f(means)g(that)h(all)e(the)j(times)e
(measured)h(for)f(eac)o(h)i(w)o(ere)f(iden)o(tical.)-150
1268 y Fm(7c)116 b Fk(h)p Fw(Analyze)14 b(timing)h(results)p
Fk(i)d(\021)104 1314 y Fl({)143 1360 y(double)17 b(base_mean)f(=)k
(mean\(base)o(_t)o(ime)o(s\))o(;)143 1406 y(double)d(test_mean)f(=)k
(mean\(test)o(_t)o(ime)o(s\))o(;)143 1451 y(double)d(result)h(=)h
(test_mean)d(-)j(base_mean;)143 1497 y(double)e(base_varia)o(nce)f(=)j
(variance\(b)o(as)o(e_m)o(ean)o(,)d(base_times\))o(;)143
1543 y(double)h(test_varia)o(nce)f(=)j(variance\(t)o(es)o(t_m)o(ean)o
(,)d(test_times\))o(;)143 1588 y(double)h(sum)i(=)g(base_varia)o(nc)o
(e)e(+)i(test_vari)o(anc)o(e;)143 1634 y(if)g(\(sum)f(==)h(0.0\))f({)
182 1680 y(if)h(\(result)e(==)i(0.0\))96 b(ret_val)17
b(=)i(1;)182 1725 y(else)f(if)h(\(result)e(<)i(0.0\))f(ret_val)f(=)i
(-1;)143 1771 y(})143 1817 y(else)f({)182 1862 y(result)g(=)h(result)e
(*)i(sqrt\(SAMPL)o(ES)d(/)j(sum\);)182 1908 y(if)g(\(fabs\(resu)o(lt)o
(\))e(<=)i(CUTOFF\))d(ret_val)h(=)j(1;)182 1954 y(else)e(if)h(\(result)
e(<)i(0.0\))116 b(ret_val)17 b(=)j(-1;)143 1999 y(})143
2045 y(if)f(\(ret_val)d(>)k(0\))136 b(puts\("yes")o(\);)143
2091 y(else)18 b(if)h(\(ret_val)d(==)j(0\))g(puts\("no"\))o(;)143
2136 y(else)371 b(puts\("bad)16 b(test"\);)143 2182 y
Fk(h)p Fw(Chec)o(k)d(for)g(exceptionally)j(noisy)f(data)e
Fm(8a)s Fk(i)104 2228 y Fl(})p Fi(3)0 2285 y Fh(See)e(6b.)0
2362 y Ft(W)m(e'll)18 b(de\014ne)k Fg(CUTOFF)d Ft(to)h(limit)e(ourselv)
o(es)j(to)f(a)g(1\045)f(c)o(hance)j(of)d(mistak)o(enly)g(claiming)e(an)
j(optimization)e(w)o(as)i(not)0 2412 y(p)q(erformed.)-150
2493 y Fm(7d)114 b Fk(h)p Fw(Constan)o(ts)p Fk(i)11 b(\021)104
2540 y Fl(#define)17 b(CUTOFF)g(2.552)104 2585 y Fi(3)0
2643 y Fh(See)11 b(3b,)g Fm(7a)p Fh(.)965 2874 y Ft(7)p
eop
%%Page: 8 13
8 12 bop -150 78 a Fm(8a)114 b Fk(h)p Fw(Chec)o(k)13
b(for)g(exceptionally)j(noisy)f(data)p Fk(i)c(\021)104
124 y Fl({)143 170 y(int)18 b(n)i(=)f(noisy\(bas)o(e_v)o(ari)o(an)o
(ce\))d(||)j(noisy\(tes)o(t_)o(var)o(ia)o(nce)o(\);)143
215 y(if)g(\(n\))182 261 y(puts\("\\t\(w)o(arn)o(in)o(g)e(--)i(the)f
(timings)f(were)h(not)g(very)g(consistent\))o("\))o(;)143
307 y(if)h(\(1)g(/*)g(always)e(print,)g(for)i(now)f(*/)h(||)g(n)g(||)g
(ret_val)e(==)i(-1\))182 352 y Fk(h)p Fw(Prin)o(t)14
b(times)g(and)f(statistical)j(measures)d Fm(8b)r Fk(i)104
398 y Fl(})p Fi(3)0 455 y Fh(See)e(7c.)0 520 y Ft(I'v)o(e)j(brok)o(en)g
(this)g(out)f(as)h(a)g(separate)h(scrap)g(so)f(I)g(can)g(use)g(it)g
(con)o(v)o(enien)o(tly)g(during)f(dev)o(elopmen)o(t)g(of)h(the)g
(tests.)-150 593 y Fm(8b)116 b Fk(h)p Fw(Prin)o(t)14
b(times)f(and)h(statistical)h(measures)p Fk(i)d(\021)104
639 y Fl({)143 685 y(int)18 b(i;)143 730 y(puts\("\\nTi)o(mi)o(ngs)o
(\\n)o(\\tb)o(ase)o(-c)o(ase)o(\\t)o(tes)o(t-)o(cas)o(e"\))o(;)143
776 y(for)g(\(i=0;)g(i<SAMPLES;)e(i++\))182 822 y(printf\("\\t)o
(\045-9)o(.3)o(f\\t)o(\045-9)o(.3)o(f\\n)o(",)g(base_times)o([i)o(],)g
(test_times)o([i])o(\);)143 867 y(printf\("me)o(an)o(s\\t)o(\045-)o
(9.3)o(f\\t)o(\045-)o(9.3)o(f\\)o(n",)g(base_mean)o(,)h(test_mean)o
(\);)143 913 y(printf\("va)o(rs)o(\\t\045)o(-9)o(.6f)o(\\t\045)o(-9)o
(.6f)o(\\n)o(",)f(base_varia)o(nce)o(,)g(test_varian)o(ce)o(\);)143
959 y(printf\("sd)o(s\\)o(t\045-)o(9.)o(6f\\)o(t\045-)o(9.)o(6f\\)o(n")
o(,)h(sqrt\(base)o(_v)o(ari)o(an)o(ce\))o(,)g(sqrt\(tes)o(t_v)o(ari)o
(an)o(ce\))o(\);)143 1004 y(printf\("re)o(su)o(lt\\)o(t\045)o(-9.)o
(6f\\)o(n\\)o(n",)f(result\);)104 1050 y(})p Fi(3)0 1107
y Fh(See)11 b(8a.)0 1172 y Ft(W)m(e'll)h(assume)i(the)g(data)g(w)o(as)f
(noisy)h(if)f(the)h(standard)h(deviation)e(is)g(more)g(than)h(2)g(tic)o
(ks.)-150 1240 y Fm(8c)116 b Fl("main.c")p Fk(\021)104
1286 y Fl(int)18 b(noisy\(doub)o(le)e(variance\))104
1332 y({)143 1377 y(double)h(std_dev)g(=)i(sqrt\(varian)o(ce)o(\);)143
1423 y(return)e(std_dev)g(>)i(2.0)g(/)g(ticks_per_)o(se)o(c;)104
1468 y(})104 1514 y Fi(3)0 1572 y Fh(See)11 b Fm(3b)n(c,)j(6b,)f(8d,)g
(9e,)g(10)p Fh(.)-150 1638 y Fm(8d)114 b Fl("main.c")p
Fk(\021)104 1684 y Fl(double)17 b(mean\(doubl)o(e)f(*times\))104
1729 y({)143 1775 y(int)i(i;)143 1821 y(double)f(sum)i(=)g(0.0;)143
1866 y(for)f(\(i=0;)g(i<SAMPLES;)e(i++\))182 1912 y(sum)j(+=)g
(times[i])o(;)143 1958 y(return)e(sum)i(/)g(SAMPLES;)104
2003 y(})104 2049 y Fi(3)1003 1684 y Fl(double)e(variance\(d)o(ou)o
(ble)f(mean,)i(double)f(*times\))1003 1729 y({)1042 1775
y(int)i(i;)1042 1821 y(double)e(sum)i(=)g(0.0;)1042 1866
y(for)g(\(i=0;)e(i<SAMPLES;)f(i++\))i({)1081 1912 y(double)g(diff)g(=)h
(mean)f(-)h(times[i];)1081 1958 y(sum)g(+=)g(diff)f(*)h(diff;)1042
2003 y(})1042 2049 y(return)e(sum)i(/)g(\(SAMPLES)e(-)i(1\);)1003
2095 y(})1003 2140 y Fi(3)0 2198 y Fh(See)11 b Fm(3b)n(c,)j(6b,)f(8c,)g
(9e,)h(10)p Fh(.)-150 2269 y Fm(8e)116 b Fk(h)p Fw(Protot)o(yp)q(es)p
Fk(i)12 b(\021)104 2315 y Fl(double)17 b(mean\(doubl)o(e)f(*times\);)
104 2361 y(double)h(variance\(d)o(ou)o(ble)f(mean,)i(double)f
(*times\);)104 2406 y Fi(3)0 2464 y Fh(See)11 b(3b,)g
Fm(4,)h(7b,)i(17,)f(25,)g(32b,)h(39,)f(45c)p Fh(.)0 2565
y Fo(2.2.3)55 b(Timing)17 b(Routines)0 2642 y Ft(In)k(the)g(bad)g(old)f
(da)o(ys,)h(timing)e(routines)i(w)o(ere)g(fairly)f(mac)o(hine)f(dep)q
(enden)o(t)k(and)d(programs)g(lik)o(e)g(this)g(had)h(to)f(b)q(e)0
2692 y(customized)14 b(for)f(eac)o(h)i(mac)o(hine.)h(F)m(ortunately)m
(,)d(there's)i(no)o(w)f(some)f(standardization)g(in)h(the)g(area)g(and)
g(w)o(e)g(are)g(able)g(to)0 2742 y(use)h(routines)f(from)e
Fw(ANSI)i Ft(C's)g(standard)g(run)o(time)f(library)g(to)h(a)o(v)o(oid)e
(some)h(of)g(this)h(p)q(orting)g(e\013ort.)965 2874 y(8)p
eop
%%Page: 9 14
9 13 bop -150 78 a Fm(9a)114 b Fk(h)p Fw(Include)14 b(\014les)p
Fk(i)e(\021)104 124 y Fl(#include)k(<time.h>)104 170
y Fi(3)0 227 y Fh(See)11 b(3a,)g Fm(3d,)i(6a)p Fh(.)0
308 y Ft(One)k(migh)o(t)d(think)i(that)h(the)g(v)n(alue)e(of)h
Fg(CLOCKS_PER_SEC)d Ft(w)o(ould)j(indicate)g(the)h(n)o(um)o(b)q(er)f
(of)f(timer)h(tic)o(ks)g(p)q(er)h(second,)0 358 y(allo)o(wing)12
b(con)o(v)o(enien)o(t)i(determination)f(of)g(the)h(timer)f(resolution.)
18 b(Unfortunately)m(,)13 b(this)h(isn't)f(the)i(case.)k(Some)13
b(systems)0 408 y(de\014ne)i Fg(CLOCKS_PER_SEC)c Ft(to)j(b)q(e)g(a)g(v)
o(ery)g(large)f(v)n(alue,)g(despite)i(a)f(fairly)e(coarse)j(timer.)-150
490 y Fm(9b)116 b Fk(h)p Fw(V)m(ariables)p Fk(i)12 b(\021)104
536 y Fl(clock_t)17 b(ticks_per)o(_s)o(ec)f(=)k(0;)104
581 y Fi(3)0 639 y Fh(See)11 b(3b.)-150 713 y Fm(9c)116
b Fk(h)p Fw(Initialize)p Fk(i)14 b(\021)104 759 y Fl({)143
804 y(clock_t)j(start,)g(diff;)143 850 y Fk(h)p Fw(Mak)o(e)c(sure)h
Fl(clock\(\))c Fw(w)o(orks)j(on)g(this)h(system)g Fm(9d)s
Fk(i)143 896 y Fl(start)k(=)h(clock\(\);)143 941 y(diff)f(=)h
(clock\(\))e(-)i(start;)143 987 y(while)f(\(diff)f(==)i(0\))182
1033 y(diff)f(=)i(clock\(\))c(-)k(start;)143 1078 y(ticks_per_)o(se)o
(c)d(=)38 b(CLOCKS_PER_)o(SE)o(C)17 b(/)i(diff;)143 1124
y(printf\("Ti)o(me)o(r)e(seems)g(to)i(run)g(at)f(\045d)h(ticks/seco)o
(nd\\)o(n")o(,)e(ticks_per)o(_s)o(ec\))o(;)104 1170 y(})p
Fi(3)0 1227 y Fh(See)11 b(3c.)0 1301 y Ft(Though)16 b
Fg(clock)g Ft(is)h(a)g(standard)g(routine,)g(systems)g(are)h(not)e
(required)i(to)f(supp)q(ort)g(it;)h(as)f(an)g(alternativ)o(e,)g(they)g
(ma)o(y)0 1351 y(return)g Fg(-1)p Ft(.)25 b(On)17 b(suc)o(h)g(systems,)
f(an)g(alternativ)o(e)g(approac)o(h)g(will)f(b)q(e)i(required)g(\()p
Fr(i.e.,)e Ft(w)o(e're)i(bac)o(k)f(to)g(customizing)f(the)0
1401 y(co)q(de)g(for)e(ev)o(ery)i(mac)o(hine\).)-150
1485 y Fm(9d)114 b Fk(h)p Fw(Mak)o(e)13 b(sure)h Fl(clock\(\))c
Fw(w)o(orks)j(on)g(this)h(system)p Fk(i)d(\021)104 1531
y Fl({)143 1577 y(if)19 b(\(clock\(\))d(==)j(-1\))g({)182
1623 y(fputs\("\\nT)o(he)d(routine)h('clock')g(is)i(not)f(supported\\)o
(n",)e(stderr\);)182 1668 y(exit\(-1\);)143 1714 y(})104
1760 y(})p Fi(3)0 1817 y Fh(See)11 b(9c.)-150 1885 y
Fm(9e)116 b Fl("main.c")p Fk(\021)104 1931 y Fl(long)18
b(int)g(determine_)o(ite)o(rat)o(io)o(ns\()o(Fu)o(nPa)o(r)e(base_case,)
692 1977 y(int)j(*data\))104 2023 y({)143 2068 y(long)f(int)h(iteratio)
o(ns)d(=)k(1;)143 2114 y(base_case\()o(da)o(ta\))o(;)36
b(/*)19 b(an)g(initial,)d(untimed)h(invocation)f(*/)143
2160 y(while)i(\(1\))g({)182 2205 y(long)g(int)h(i;)182
2251 y(clock_t)e(start)h(=)h(clock\(\);)182 2297 y(for)g(\(i=0;)e
(i<iteration)o(s;)f(i++\))221 2342 y(base_case\(d)o(at)o(a\);)182
2388 y(if)j(\(\(\(double\))d(clock\(\))h(-)i(start\))e(/)i(CLOCKS_PER_)
o(SE)o(C)e(>)i(100.0)f(/)h(ticks_per)o(_se)o(c\))221
2434 y(return)f(iteration)o(s;)182 2479 y(iterations)e(+=)j(iteration)o
(s;)143 2525 y(})104 2571 y(})104 2616 y Fi(3)0 2674
y Fh(See)11 b Fm(3b)n(c,)j(6b,)f(8c)n(d,)h(10)p Fh(.)965
2874 y Ft(9)p eop
%%Page: 10 15
10 14 bop -150 73 a Fm(10)114 b Fl("main.c")p Fk(\021)104
119 y Fl(void)18 b(collect_t)o(imi)o(ng)o(s\(l)o(ong)e(int)i
(iterations)o(,)516 164 y(FunPar)f(routine,)516 210 y(int)h(*data,)516
256 y(double)f(*times\))104 301 y({)143 347 y(int)h(i;)143
393 y(routine\(da)o(ta)o(\);)36 b(/*)19 b(an)g(initial,)d(untimed)h
(invocatio)o(n)g(*/)143 438 y(for)h(\(i=0;)g(i<SAMPLES;)e(i++\))i({)182
484 y(long)g(int)h(j;)182 530 y(clock_t)e(start)h(=)h(clock\(\);)182
575 y(for)g(\(j=0;)e(j<iteration)o(s;)f(j++\))221 621
y(routine\(dat)o(a\))o(;)182 667 y(times[i])h(=)i(\(\(double\))d
(\(clock\(\))h(-)i(start\)\))e(/)i(CLOCKS_PER)o(_S)o(EC;)143
712 y(})104 758 y(})104 804 y Fi(3)0 861 y Fh(See)11
b Fm(3b)n(c,)j(6b,)f(8c)n(d,)h(9e)p Fh(.)954 2874 y Ft(10)p
eop
%%Page: 11 16
11 15 bop 0 257 a Fu(Chapter)34 b(3)0 423 y(Dead)f(Co)s(de)i
(Elimination)0 598 y Ft(b)q(est)15 b(approac)o(h)f(is)g(based)g(on)g
(use-def)h(c)o(hains)e([15,)c(16,)h(17)o(])62 648 y(using)k(liv)o
(eness)g(analysis)f(is)h(inferior)f([9])62 697 y(ref-coun)o(ting)h(is)g
(inferior)62 747 y(SSA-based)h(v)o(ersion)f(of)f(use-def)i(c)o(hains)f
(is)g(c)o(heap)q(er)h([13)o(,)e(Section)i(7.1])62 797
y(Allo)o(ws)e(remo)o(v)n(al)f(of)h(useless)j(con)o(trol)d(\015o)o(w,)g
(and)h(therefore)h(more)e(useless)j(expressions)62 847
y(partially)d(dead)h(co)q(de)62 897 y(within)f(blo)q(c)o(k,)g(across)i
(blo)q(c)o(ks,)f(simple)e(lo)q(op,)h(complex)f(lo)q(op)h(case,)i(dead)f
(con)o(trol)g(\015o)o(w)f(\(if)g(and)h(lo)q(op\))-150
981 y Fm(11a)96 b Fk(h)p Fw(Ev)n(aluation)16 b(driv)o(ers)p
Fk(i)c(\021)104 1027 y Fl({)143 1073 y(int)18 b(ok;)143
1118 y(puts\("Dead)e(code)i(eliminati)o(on")o(\);)143
1164 y Fk(h)p Fw(Dead)c(co)q(de)f(eliminatio)q(n)j Fm(11c,)d
Fj(:)6 b(:)g(:)f Fk(i)104 1210 y Fl(})p Fi(3)0 1267 y
Fh(See)11 b(3c,)g Fm(18a,)i(26a,)g(33a,)h(40a)p Fh(.)0
1381 y Fp(3.1)70 b(Lo)r(cal)0 1481 y Fo(3.1.1)55 b(The)19
b(Easiest)e(Case)0 1557 y Ft(This)e(illustrates)h(one)g(of)f(the)h
(easiest)g(p)q(ossible)g(cases.)24 b(The)16 b(initialization)d(of)i
Fg(j)g Ft(is)h(useless,)h(so)e(the)h(add)g(and)f(the)h(\014rst)0
1607 y(t)o(w)o(o)d(references)k(to)d Fg(data)f Ft(ma)o(y)f(b)q(e)i
(remo)o(v)o(ed,)f(as)h(sho)o(wn)g(in)f(the)i(result)f(case.)-150
1684 y Fm(11b)98 b Fl("dead.c")p Fk(\021)104 1730 y Fl(void)18
b(dead_test)o(1\(i)o(nt)e(*data\))104 1776 y({)143 1821
y(int)i(j)i(=)f(data[0])e(+)i(data[1];)143 1867 y(j)g(=)g(data[2];)143
1913 y(data[j])e(=)i(2;)104 1958 y(})104 2004 y Fi(3)1297
1730 y Fl(void)f(dead_resul)o(t1)o(\(in)o(t)f(*data\))1297
1776 y({)1336 1821 y(int)i(j;)1336 1867 y(j)g(=)h(data[2];)1336
1913 y(data[j])d(=)i(2;)1297 1958 y(})1297 2004 y Fi(3)0
2061 y Fh(See)11 b Fm(12ac,)i(13ac,)h(14ac,)g(15ac,)g(16ac)p
Fh(.)0 2142 y Ft(This)g(bit)g(of)g(co)q(de)h(is)g(t)o(ypical)e(of)h
(the)h(w)o(a)o(y)f(w)o(e'll)f(in)o(v)o(ok)o(e)g Fg(test)p
Ft(.)19 b(W)m(e)14 b(initialize)f(a)h(small)e(arra)o(y)i(of)g(data,)g
(then)h(call)e Fg(test)p Ft(,)0 2192 y(passing)f(in)g(the)h(test)g
(data)f(and)g(the)h(t)o(w)o(o)e(routines)i(to)f(b)q(e)h(compared.)k
(The)12 b(\014rst)h(parameter)f(is)g(simply)e(a)i(\015ag)g(indicating)0
2242 y(the)j(test)g(is)e(to)h(b)q(e)h(p)q(erformed)e(\(in)h(other)g
(cases,)h(w)o(e'll)e(pass)h(in)g(a)g(v)n(ariable)e(con)o(trolling)h
(whether)i(the)g(comparison)d(is)i(to)0 2291 y(b)q(e)h(p)q(erformed)e
(or)h(skipp)q(ed\).)19 b(The)14 b(last)g(t)o(w)o(o)f(parameters)h(are)g
(used)h(to)f(iden)o(tify)f(the)h(test.)-150 2376 y Fm(11c)98
b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104
2422 y Fl({)143 2467 y(int)k(data[3])f(=)j({)f(0,)g(1,)g(2)g(};)143
2513 y(ok)g(=)g(test\(1,)e(dead_resul)o(t1)o(,)g(dead_tes)o(t1,)f
(data,)i(1,)g("basic)g(block"\);)104 2559 y(})p Fi(3)0
2616 y Fh(See)11 b(11a,)f Fm(12b)n(d,)k(13b)n(d,)g(14b)n(d,)g(15b)n(d,)
g(16b)n(d)p Fh(.)954 2874 y Ft(11)p eop
%%Page: 12 17
12 16 bop 0 91 a Fo(3.1.2)55 b(Sligh)n(tly)18 b(More)g(Complex)-150
155 y Fm(12a)96 b Fl("dead.c")p Fk(\021)104 201 y Fl(void)18
b(dead_test)o(2\(i)o(nt)e(*data\))104 247 y({)143 292
y(int)i(j)i(=)f(data[0])e(+)i(data[1];)143 338 y(int)f(k)i(=)f(j)g(+)g
(data[2];)143 384 y(int)f(m)i(=)f(k)g(+)g(data[3];)143
429 y(int)f(n)i(=)f(m)g(+)g(data[4];)143 475 y(j)g(=)g(data[2];)143
521 y(data[j])e(=)i(2;)104 566 y(})104 612 y Fi(3)1297
201 y Fl(void)f(dead_resul)o(t2)o(\(in)o(t)f(*data\))1297
247 y({)1336 292 y(int)i(j;)1336 338 y(j)g(=)h(data[2];)1336
384 y(data[j])d(=)i(2;)1297 429 y(})1297 475 y Fi(3)0
669 y Fh(See)11 b Fm(11b,)i(12c,)h(13ac,)g(14ac,)f(15ac,)h(16ac)p
Fh(.)-150 750 y Fm(12b)98 b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q
(n)p Fk(i)h(\021)104 796 y Fl({)143 841 y(int)k(data[5])f(=)j({)f(0,)g
(1,)g(2,)f(3,)h(4)g(};)143 887 y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o
(2,)f(dead_test2)o(,)h(data,)g(2,)i("basic)e(block"\);)104
933 y(})p Fi(3)0 990 y Fh(See)11 b(11a,)f Fm(11c,)k(12d,)f(13b)n(d,)h
(14b)n(d,)g(15b)n(d,)g(16b)n(d)p Fh(.)0 1105 y Fp(3.2)70
b(Global)0 1204 y Fo(3.2.1)55 b(Across)19 b(Basic)g(Blo)r(c)n(ks)0
1281 y Fs(Easy)-150 1343 y Fm(12c)98 b Fl("dead.c")p
Fk(\021)104 1389 y Fl(void)18 b(dead_test)o(3\(i)o(nt)e(*data\))104
1435 y({)143 1480 y(int)i(k)i(=)f(0;)143 1526 y(int)f(j)i(=)f(data[1];)
143 1571 y(if)g(\(j\))f({)182 1617 y(k++;)182 1663 y(j)h(=)h(k)f(+)g
(data[0])e(*)i(j;)143 1708 y(})143 1754 y(else)182 1800
y(k--;)143 1845 y(j)g(=)g(data[2];)143 1891 y(data[j])e(=)i(2;)143
1937 y(data[3])e(=)i(k;)104 1982 y(})104 2028 y Fi(3)1297
1389 y Fl(void)f(dead_resul)o(t3)o(\(in)o(t)f(*data\))1297
1435 y({)1336 1480 y(int)i(k)g(=)g(0;)1336 1526 y(int)g(j)g(=)g
(data[1];)1336 1571 y(if)g(\(j\))1375 1617 y(k++;)1336
1663 y(else)1375 1708 y(k--;)1336 1754 y(j)g(=)h(data[2];)1336
1800 y(data[j])d(=)i(2;)1336 1845 y(data[3])e(=)i(k;)1297
1891 y(})1297 1937 y Fi(3)0 2086 y Fh(See)11 b Fm(11b,)i(12a,)h(13ac,)f
(14ac,)h(15ac,)g(16ac)p Fh(.)-150 2166 y Fm(12d)96 b
Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104
2212 y Fl({)143 2258 y(int)k(data[4])f(=)j({)f(0,)g(1,)g(2)g(};)143
2303 y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o(3,)f(dead_test3)o(,)h
(data,)g(3,)i("across)e(basic)h(blocks"\);)104 2349 y(})p
Fi(3)0 2406 y Fh(See)11 b(11a,)f Fm(11c,)k(12b,)f(13b)n(d,)h(14b)n(d,)g
(15b)n(d,)g(16b)n(d)p Fh(.)954 2874 y Ft(12)p eop
%%Page: 13 18
13 17 bop 0 91 a Fs(More)16 b(In)o(terestin)o(g)-150
153 y Fm(13a)96 b Fl("dead.c")p Fk(\021)104 199 y Fl(void)18
b(dead_test)o(4\(i)o(nt)e(*data\))104 245 y({)143 291
y(int)i(k)i(=)f(0;)143 336 y(int)f(j)i(=)f(data[1];)143
382 y(if)g(\(j\))f({)182 428 y(k++;)182 473 y(j)h(=)h(k)f(+)g(j)g(*)h
(data[0];)143 519 y(})143 565 y(else)182 610 y(k--;)143
656 y(if)f(\(data[4])d(&)k(1\))182 702 y(k++;)143 747
y(else)e({)182 793 y(k--;)182 839 y(j++;)143 884 y(})143
930 y(j)h(=)g(data[2];)143 976 y(data[j])e(=)i(2;)143
1021 y(data[3])e(=)i(k;)104 1067 y(})104 1113 y Fi(3)1297
199 y Fl(void)f(dead_resul)o(t4)o(\(in)o(t)f(*data\))1297
245 y({)1336 291 y(int)i(k)g(=)g(0;)1336 336 y(int)g(j)g(=)g(data[1];)
1336 382 y(if)g(\(j\))1375 428 y(k++;)1336 473 y(else)1375
519 y(k--;)1336 565 y(if)g(\(data[4])e(&)i(1\))1375 610
y(k++;)1336 656 y(else)1375 702 y(k--;)1336 747 y(j)g(=)h(data[2];)1336
793 y(data[j])d(=)i(2;)1336 839 y(data[3])e(=)i(k;)1297
884 y(})1297 930 y Fi(3)0 1170 y Fh(See)11 b Fm(11b,)i(12ac,)h(13c,)g
(14ac,)f(15ac,)h(16ac)p Fh(.)-150 1250 y Fm(13b)98 b
Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104
1296 y Fl({)143 1342 y(int)k(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3,)h(4)g
(};)143 1388 y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o(4,)f(dead_test4)o
(,)h(data,)g(4,)i("across)e(basic)h(blocks"\);)104 1433
y(})p Fi(3)0 1491 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13d,)f(14b)
n(d,)h(15b)n(d,)g(16b)n(d)p Fh(.)0 1594 y Fo(3.2.2)55
b(Around)20 b(Lo)r(ops)0 1671 y Fs(Simple)-150 1733 y
Fm(13c)98 b Fl("dead.c")p Fk(\021)104 1779 y Fl(void)18
b(dead_test)o(5\(i)o(nt)e(*data\))104 1825 y({)143 1870
y(int)i(i,)h(j;)143 1916 y(int)f(k)i(=)f(0;)143 1962
y(int)f(stop)h(=)g(data[0];)143 2007 y(for)f(\(i=0;)g(i<stop;)f(i++\))h
({)182 2053 y(k)h(=)h(k)f(*)g(data[1];)182 2099 y(j)g(=)h(data[2];)182
2144 y(data[j])d(=)i(2;)143 2190 y(})104 2236 y(})104
2281 y Fi(3)1297 1779 y Fl(void)f(dead_resul)o(t5)o(\(in)o(t)f(*data\))
1297 1825 y({)1336 1870 y(int)i(i,)g(j;)1336 1916 y(int)g(stop)f(=)h
(data[0];)1336 1962 y(for)g(\(i=0;)e(i<stop;)g(i++\))h({)1375
2007 y(j)i(=)f(data[2];)1375 2053 y(data[j])e(=)j(2;)1336
2099 y(})1297 2144 y(})1297 2190 y Fi(3)0 2339 y Fh(See)11
b Fm(11b,)i(12ac,)h(13a,)f(14ac,)h(15ac,)g(16ac)p Fh(.)-150
2419 y Fm(13d)96 b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p
Fk(i)h(\021)104 2465 y Fl({)143 2511 y(int)k(data[3])f(=)j({)f(2,)g(1,)
g(2)g(};)143 2556 y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o(5,)f
(dead_test5)o(,)h(data,)g(5,)i("around)e(loops"\);)104
2602 y(})p Fi(3)0 2660 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b,)f
(14b)n(d,)h(15b)n(d,)g(16b)n(d)p Fh(.)954 2874 y Ft(13)p
eop
%%Page: 14 19
14 18 bop 0 91 a Fs(In)o(terestin)o(g)-150 153 y Fm(14a)96
b Fl("dead.c")p Fk(\021)104 199 y Fl(void)18 b(dead_test)o(6\(i)o(nt)e
(*data\))104 245 y({)143 291 y(int)i(i;)143 336 y(int)g(k)i(=)f(0;)143
382 y(int)f(m)i(=)f(0;)143 428 y(int)f(n)i(=)f(0;)143
473 y(int)f(stop)h(=)g(data[0];)143 519 y(for)f(\(i=0;)g(i<stop;)f
(i++\))h({)182 565 y(int)h(j)g(=)g(data[1];)182 610 y(if)g(\(j\))g({)
221 656 y(n)h(=)f(j)g(*)g(stop)f(+)i(m;)221 702 y(k++;)182
747 y(})182 793 y(else)e({)221 839 y(m)i(=)f(n)g(*)g(stop)f(+)i(k;)221
884 y(k--;)182 930 y(})182 976 y(j)f(=)h(data[2];)182
1021 y(data[j])d(=)i(2;)143 1067 y(})143 1113 y(data[3])e(=)i(k;)104
1158 y(})104 1204 y Fi(3)1297 199 y Fl(void)f(dead_resul)o(t6)o(\(in)o
(t)f(*data\))1297 245 y({)1336 291 y(int)i(i;)1336 336
y(int)g(k)g(=)g(0;)1336 382 y(int)g(m)g(=)g(0;)1336 428
y(int)g(n)g(=)g(0;)1336 473 y(int)g(stop)f(=)h(data[0];)1336
519 y(for)g(\(i=0;)e(i<stop;)g(i++\))h({)1375 565 y(int)h(j)g(=)g
(data[1];)1375 610 y(if)g(\(j\))1415 656 y(k++;)1375
702 y(else)1415 747 y(k--;)1375 793 y(j)h(=)f(data[2];)1375
839 y(data[j])e(=)j(2;)1336 884 y(})1336 930 y(data[3])d(=)i(k;)1297
976 y(})1297 1021 y Fi(3)0 1261 y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)g
(14c,)f(15ac,)h(16ac)p Fh(.)-150 1342 y Fm(14b)98 b Fk(h)p
Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104
1388 y Fl({)143 1433 y(int)k(data[4])f(=)j({)f(2,)g(1,)g(2)g(};)143
1479 y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o(6,)f(dead_test6)o(,)h
(data,)g(6,)i("around)e(loops"\);)104 1525 y(})p Fi(3)0
1582 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b)n(d,)g(14d,)f(15b)n
(d,)h(16b)n(d)p Fh(.)0 1697 y Fp(3.3)70 b(Dead)22 b(Con)n(trol)h(Flo)n
(w)0 1796 y Fo(3.3.1)55 b(Conditionals)0 1873 y Fs(Simple)-150
1935 y Fm(14c)98 b Fl("dead.c")p Fk(\021)104 1981 y Fl(void)18
b(dead_test)o(7\(i)o(nt)e(*data\))104 2026 y({)143 2072
y(int)i(k)i(=)f(0;)143 2118 y(int)f(j)i(=)f(data[2];)143
2163 y(data[j])e(=)i(2;)143 2209 y(if)g(\(j\))f(k++;)143
2255 y(else)g(k--;)104 2300 y(})104 2346 y Fi(3)1297
1981 y Fl(void)g(dead_resul)o(t7)o(\(in)o(t)f(*data\))1297
2026 y({)1336 2072 y(int)i(j)g(=)g(data[2];)1336 2118
y(data[j])e(=)i(2;)1297 2163 y(})1297 2209 y Fi(3)0 2404
y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)g(14a,)f(15ac,)h(16ac)p
Fh(.)-150 2484 y Fm(14d)96 b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q
(n)p Fk(i)h(\021)104 2530 y Fl({)143 2576 y(int)k(data[3])f(=)j({)f(0,)
g(1,)g(2)g(};)143 2621 y(ok)g(=)g(test\(1,)e(dead_resul)o(t7)o(,)g
(dead_tes)o(t7,)f(data,)i(7,)g("useless)f(conditiona)o(ls)o("\);)104
2667 y(})p Fi(3)0 2724 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b)n
(d,)g(14b,)f(15b)n(d,)h(16b)n(d)p Fh(.)954 2874 y Ft(14)p
eop
%%Page: 15 20
15 19 bop 0 91 a Fs(In)o(terestin)o(g)-150 153 y Fm(15a)96
b Fl("dead.c")p Fk(\021)104 199 y Fl(void)18 b(dead_test)o(8\(i)o(nt)e
(*data\))104 245 y({)143 291 y(int)i(i;)143 336 y(int)g(k)i(=)f(0;)143
382 y(int)f(stop)h(=)g(data[0];)143 428 y(for)f(\(i=0;)g(i<stop;)f
(i++\))h({)182 473 y(int)h(j)g(=)g(data[1])e(+)i(k;)182
519 y(if)g(\(j\))g(k++;)182 565 y(else)f(k--;)182 610
y(j)h(=)h(data[2];)182 656 y(data[j])d(=)i(2;)143 702
y(})104 747 y(})104 793 y Fi(3)1297 199 y Fl(void)f(dead_resul)o(t8)o
(\(in)o(t)f(*data\))1297 245 y({)1336 291 y(int)i(i;)1336
382 y(int)g(stop)f(=)h(data[0];)1336 428 y(for)g(\(i=0;)e(i<stop;)g
(i++\))h({)1375 473 y(int)h(j;)1375 519 y(j)h(=)f(data[2];)1375
565 y(data[j])e(=)j(2;)1336 610 y(})1297 656 y(})1297
702 y Fi(3)0 850 y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)g(14ac,)f(15c,)h
(16ac)p Fh(.)-150 931 y Fm(15b)98 b Fk(h)p Fw(Dead)14
b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104 977 y Fl({)143
1022 y(int)k(data[3])f(=)j({)f(2,)g(1,)g(2)g(};)143 1068
y(ok)g(=)g(test\(ok,)e(dead_resu)o(lt)o(8,)f(dead_test8)o(,)h(data,)g
(8,)i("useless)e(condition)o(al)o(s"\))o(;)104 1114 y(})p
Fi(3)0 1171 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b)n(d,)g(14b)n
(d,)f(15d,)h(16b)n(d)p Fh(.)0 1274 y Fo(3.3.2)55 b(Lo)r(ops)0
1351 y Fs(Conserv)m(ativ)o(e)-150 1405 y Fm(15c)98 b
Fl("dead.c")p Fk(\021)104 1451 y Fl(void)18 b(dead_test)o(9\(i)o(nt)e
(*data\))104 1496 y({)143 1542 y(int)i(k)i(=)f(0;)143
1588 y(int)f(j;)143 1633 y(for)g(\(j=0;)g(j<5;)g(j++\))g(k++;)143
1679 y(j)h(=)g(data[2];)143 1725 y(data[j])e(=)i(2;)104
1770 y(})104 1816 y Fi(3)1297 1451 y Fl(void)f(dead_resul)o(t9)o(\(in)o
(t)f(*data\))1297 1496 y({)1336 1542 y(int)i(j;)1336
1588 y(j)g(=)h(data[2];)1336 1633 y(data[j])d(=)i(2;)1297
1679 y(})1297 1725 y Fi(3)0 1874 y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)
g(14ac,)f(15a,)h(16ac)p Fh(.)-150 1954 y Fm(15d)96 b
Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q(n)p Fk(i)h(\021)104
2000 y Fl({)143 2046 y(int)k(data[3])f(=)j({)f(0,)g(1,)g(2)g(};)143
2091 y(ok)g(=)g(test\(1,)e(dead_resul)o(t9)o(,)g(dead_tes)o(t9,)f
(data,)i(9,)g("useless)f(loops)h(\(conserva)o(ti)o(ve\))o("\))o(;)104
2137 y(})p Fi(3)0 2194 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b)n
(d,)g(14b)n(d,)f(15b,)h(16b)n(d)p Fh(.)0 2292 y Fs(Aggressiv)o(e)0
2369 y Ft(Remo)o(ving)h(a)h(lo)q(op)h(with)g(unkno)o(wn)f(b)q(ounds)i
(\(a)f(p)q(oten)o(tially)f(in\014nite)h(lo)q(op\))f(ma)o(y)g(c)o(hange)
h(the)h(b)q(eha)o(viour)f(of)f(a)h(non-)0 2418 y(terminating)12
b(program.)954 2874 y(15)p eop
%%Page: 16 21
16 20 bop -150 73 a Fm(16a)96 b Fl("dead.c")p Fk(\021)104
119 y Fl(void)18 b(dead_test)o(10\()o(in)o(t)f(*data\))104
164 y({)143 210 y(int)h(k)i(=)f(0;)143 256 y(int)f(j;)143
301 y(for)g(\(j=0;)g(j<data[0];)e(j++\))i(k++;)143 347
y(j)h(=)g(data[2];)143 393 y(data[j])e(=)i(2;)104 438
y(})104 484 y Fi(3)1277 119 y Fl(void)f(dead_result)o(10)o(\(in)o(t)f
(*data\))1277 164 y({)1317 210 y(int)h(j;)1317 256 y(j)h(=)g(data[2];)
1317 301 y(data[j])e(=)i(2;)1277 347 y(})1277 393 y Fi(3)0
542 y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)g(14ac,)f(15ac,)h(16c)p
Fh(.)-150 622 y Fm(16b)98 b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q
(n)p Fk(i)h(\021)104 668 y Fl({)143 714 y(int)k(data[3])f(=)j({)f(2,)g
(1,)g(2)g(};)143 759 y(\(void\))e(test\(ok,)g(dead_resu)o(lt1)o(0,)f
(dead_test1)o(0,)g(data,)i(10,)g("useless)f(loops)g(\(aggressiv)o(e\)")
o(\);)104 805 y(})p Fi(3)0 862 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)
g(13b)n(d,)g(14b)n(d,)f(15b)n(d,)h(16d)p Fh(.)0 977 y
Fp(3.4)70 b(P)n(artially)21 b(Dead)i(Co)r(de)0 1068 y
Ft(Remo)o(v)n(al)7 b(of)i(partially-dead)f(co)q(de)i(is)g(actually)f
(an)g(unrelated)i(optimization;)c(it's)j(closer)g(in)f(spirit)h(to)f
(partial)g(redundancy)0 1118 y(elimination.)15 b(2)f(pap)q(ers)g(in)g
(PLDI)g('94.)j(This)c(case)i(can)f(b)q(e)h(done)f(b)o(y)g(a)f(simple)g
(forw)o(ard)g(propagation.)-150 1194 y Fm(16c)98 b Fl("dead.c")p
Fk(\021)104 1241 y Fl(void)18 b(dead_test)o(11\()o(in)o(t)f(*data\))104
1286 y({)143 1332 y(int)h(i)i(=)f(data[0];)143 1378 y(int)f(j)i(=)f
(data[1];)143 1423 y(int)f(k)i(=)f(i)g(*)g(j;)143 1469
y(if)g(\(i)g(&)g(j\))182 1515 y(data[0])e(=)i(k;)143
1560 y(j)g(=)g(data[2];)143 1606 y(data[j])e(=)i(2;)104
1652 y(})104 1697 y Fi(3)1277 1241 y Fl(void)f(dead_result)o(11)o(\(in)
o(t)f(*data\))1277 1286 y({)1317 1332 y(int)h(i)h(=)h(data[0];)1317
1378 y(int)e(j)h(=)h(data[1];)1317 1423 y(if)e(\(i)h(&)h(j\))1356
1469 y(data[0])d(=)i(i)g(*)g(j;)1317 1515 y(j)g(=)g(data[2];)1317
1560 y(data[j])e(=)i(2;)1277 1606 y(})1277 1652 y Fi(3)0
1755 y Fh(See)11 b Fm(11b,)i(12ac,)h(13ac,)g(14ac,)f(15ac,)h(16a)p
Fh(.)-150 1835 y Fm(16d)96 b Fk(h)p Fw(Dead)14 b(co)q(de)f(eliminatio)q
(n)p Fk(i)h(\021)104 1881 y Fl({)143 1927 y(int)k(data[3])f(=)j({)f(0,)
g(1,)g(2)g(};)143 1972 y(\(void\))e(test\(1,)g(dead_resul)o(t11)o(,)f
(dead_test11)o(,)g(data,)i(11,)h("partial)o(ly)d(dead"\);)104
2018 y(})p Fi(3)0 2076 y Fh(See)11 b(11a,)f Fm(11c,)k(12b)n(d,)g(13b)n
(d,)g(14b)n(d,)f(15b)n(d,)h(16b)p Fh(.)954 2874 y Ft(16)p
eop
%%Page: 17 22
17 21 bop 0 91 a Fp(3.5)70 b(Protot)n(yp)r(es)-150 176
y Fm(17)114 b Fk(h)p Fw(Protot)o(yp)q(es)p Fk(i)12 b(\021)104
222 y Fl(extern)17 b(void)h(dead_test1)o(\(in)o(t)e(*data\);)104
268 y(extern)h(void)h(dead_test2)o(\(in)o(t)e(*data\);)104
314 y(extern)h(void)h(dead_test3)o(\(in)o(t)e(*data\);)104
359 y(extern)h(void)h(dead_test4)o(\(in)o(t)e(*data\);)104
405 y(extern)h(void)h(dead_test5)o(\(in)o(t)e(*data\);)104
451 y(extern)h(void)h(dead_test6)o(\(in)o(t)e(*data\);)104
496 y(extern)h(void)h(dead_test7)o(\(in)o(t)e(*data\);)104
542 y(extern)h(void)h(dead_test8)o(\(in)o(t)e(*data\);)104
588 y(extern)h(void)h(dead_test9)o(\(in)o(t)e(*data\);)104
633 y(extern)h(void)h(dead_test1)o(0\(i)o(nt)e(*data\);)104
679 y(extern)h(void)h(dead_test1)o(1\(i)o(nt)e(*data\);)104
725 y Fi(3)1121 222 y Fl(extern)h(void)h(dead_resu)o(lt1)o(\(i)o(nt)e
(*data\);)1121 268 y(extern)h(void)h(dead_resu)o(lt2)o(\(i)o(nt)e
(*data\);)1121 314 y(extern)h(void)h(dead_resu)o(lt3)o(\(i)o(nt)e
(*data\);)1121 359 y(extern)h(void)h(dead_resu)o(lt4)o(\(i)o(nt)e
(*data\);)1121 405 y(extern)h(void)h(dead_resu)o(lt5)o(\(i)o(nt)e
(*data\);)1121 451 y(extern)h(void)h(dead_resu)o(lt6)o(\(i)o(nt)e
(*data\);)1121 496 y(extern)h(void)h(dead_resu)o(lt7)o(\(i)o(nt)e
(*data\);)1121 542 y(extern)h(void)h(dead_resu)o(lt8)o(\(i)o(nt)e
(*data\);)1121 588 y(extern)h(void)h(dead_resu)o(lt9)o(\(i)o(nt)e
(*data\);)1121 633 y(extern)h(void)h(dead_resu)o(lt1)o(0\()o(int)e
(*data\);)1121 679 y(extern)h(void)h(dead_resu)o(lt1)o(1\()o(int)e
(*data\);)1121 725 y Fi(3)0 782 y Fh(See)11 b(3b,)g Fm(4,)h(7b,)i(8e,)f
(25,)g(32b,)h(39,)f(45c)p Fh(.)954 2874 y Ft(17)p eop
%%Page: 18 23
18 22 bop 0 257 a Fu(Chapter)34 b(4)0 423 y(Constan)m(t)h(Propagation)0
598 y Ft(Best)15 b(is)f([21)o(,)c(22)o(])62 648 y(com)o(bines)j
(constan)o(t)i(prop)f(with)f(elimination)e(of)i(unreac)o(hable)i(co)q
(de)62 697 y(ideal)e(time)g(to)h(con)o(v)o(ert)g(m)o(ultiplies)e(in)o
(to)h(shifts,)g(adds,)h(and)g(subtracts)h([7])62 747
y(can)f(tak)o(e)g(further)h(adv)n(an)o(tage)e(of)g(conditionals)g
(\(assertion)i(stu\013)s(\))62 797 y(basic)h(blo)q(c)o(k,)e(extended)j
(basic)e(blo)q(c)o(k,)g(dominance,)f(global)f(\(p)q(essimistic\),)i
(global)f(\(optimistic\),)f(conditional)h(con-)0 847
y(stan)o(t,)g(reasso)q(ciation,)f(through)h(\015oats,)g(in)o(trinsics)g
(\(but)g(this)g(is)g(C\))62 897 y(ma)o(yb)q(e)f(c)o(hec)o(k)i(for)e(o)o
(v)o(er\015o)o(ws)-150 978 y Fm(18a)96 b Fk(h)p Fw(Ev)n(aluation)16
b(driv)o(ers)p Fk(i)c(\021)104 1025 y Fl({)143 1070 y(int)18
b(ok;)143 1116 y(puts\("Cons)o(ta)o(nt)e(propagatio)o(n"\))o(;)143
1162 y Fk(h)p Fw(Constan)o(t)d(propagation)j Fm(18c,)d
Fj(:)6 b(:)g(:)f Fk(i)104 1207 y Fl(})p Fi(3)0 1264 y
Fh(See)11 b(3c,)g Fm(11a,)i(26a,)g(33a,)h(40a)p Fh(.)0
1379 y Fp(4.1)70 b(Lo)r(cal)0 1478 y Fo(4.1.1)55 b(Constan)n(t)20
b(F)-5 b(olding)-150 1542 y Fm(18b)98 b Fl("cprop.c")p
Fk(\021)104 1588 y Fl(void)18 b(cprop_tes)o(t1\()o(in)o(t)f(*data\))104
1634 y({)143 1679 y(int)h(j)i(=)f(1)g(+)g(2)h(*)f(4;)143
1725 y(data[0])e(=)i(j;)104 1771 y(})104 1816 y Fi(3)1277
1588 y Fl(void)f(cprop_resul)o(t1)o(\(in)o(t)f(*data\))1277
1634 y({)1317 1679 y(int)h(j)h(=)h(9;)1317 1725 y(data[0])d(=)i(j;)1277
1771 y(})1277 1816 y Fi(3)0 1874 y Fh(See)11 b Fm(19ac)n(e,)j(20b)n(d,)
g(21ac,)g(22ac)n(e,)g(23b)n(d,)g(24a)p Fh(.)-150 1954
y Fm(18c)98 b Fk(h)p Fw(Constan)o(t)13 b(propagation)p
Fk(i)h(\021)104 2000 y Fl({)143 2046 y(int)k(data[1];)143
2092 y(ok)h(=)g(test\(1,)e(cprop_resu)o(lt)o(1,)f(cprop_test)o(1,)g
(data,)i(1,)h("folding")o(\);)104 2137 y(})p Fi(3)0 2195
y Fh(See)11 b(18a,)f Fm(19b)n(d,)k(20ac)n(e,)g(21b)n(d,)g(22b)n(d,)g
(23ac)n(e,)h(24b)p Fh(.)954 2874 y Ft(18)p eop
%%Page: 19 24
19 23 bop 0 91 a Fo(4.1.2)55 b(Propagating)19 b(through)g(Expressions)
-150 155 y Fm(19a)96 b Fl("cprop.c")p Fk(\021)104 201
y Fl(void)18 b(cprop_tes)o(t2\()o(in)o(t)f(*data\))104
247 y({)143 292 y(int)h(j)i(=)f(1;)143 338 y(int)f(k)i(=)f(2;)143
384 y(int)f(m)i(=)f(4;)143 429 y(int)f(n)i(=)f(k)g(*)g(m;)143
475 y(j)g(=)g(n)h(+)f(j;)143 521 y(data[0])e(=)i(j;)104
566 y(})104 612 y Fi(3)1277 201 y Fl(void)f(cprop_resul)o(t2)o(\(in)o
(t)f(*data\))1277 247 y({)1317 292 y(int)h(j;)1317 338
y(j)h(=)g(9;)1317 384 y(data[0])e(=)i(j;)1277 429 y(})1277
475 y Fi(3)0 669 y Fh(See)11 b Fm(18b,)i(19c)n(e,)h(20b)n(d,)g(21ac,)g
(22ac)n(e,)g(23b)n(d,)g(24a)p Fh(.)-150 750 y Fm(19b)98
b Fk(h)p Fw(Constan)o(t)13 b(propagation)p Fk(i)h(\021)104
796 y Fl({)143 841 y(int)k(data[1];)143 887 y(ok)h(=)g(test\(ok,)e
(cprop_res)o(ul)o(t2,)f(cprop_tes)o(t2,)g(data,)h(2,)i("basic)f
(block"\);)104 933 y(})p Fi(3)0 990 y Fh(See)11 b(18a,)f
Fm(18c,)k(19d,)f(20ac)n(e,)h(21b)n(d,)g(22b)n(d,)g(23ac)n(e,)h(24b)p
Fh(.)0 1105 y Fp(4.2)70 b(Global)0 1204 y Fo(4.2.1)55
b(Extended)18 b(Basic)g(Blo)r(c)n(ks)-150 1258 y Fm(19c)98
b Fl("cprop.c")p Fk(\021)104 1304 y Fl(void)18 b(cprop_tes)o(t3\()o(in)
o(t)f(*data\))104 1350 y({)143 1395 y(int)h(j)i(=)f(12345;)143
1441 y(if)g(\(data[0]\))182 1487 y(data[1])e(=)i(1)h(+)f(j)g(-)g(1234;)
143 1532 y(else)182 1578 y(data[2])e(=)i(123)g(+)g(j)g(+)h(10;)104
1624 y(})104 1669 y Fi(3)1277 1304 y Fl(void)e(cprop_resul)o(t3)o(\(in)
o(t)f(*data\))1277 1350 y({)1317 1395 y(if)h(\(data[0]\))1356
1441 y(data[1])f(=)i(11112;)1317 1487 y(else)1356 1532
y(data[2])e(=)i(12478;)1277 1578 y(})1277 1624 y Fi(3)0
1727 y Fh(See)11 b Fm(18b,)i(19ae,)h(20b)n(d,)g(21ac,)g(22ac)n(e,)g
(23b)n(d,)g(24a)p Fh(.)-150 1807 y Fm(19d)96 b Fk(h)p
Fw(Constan)o(t)13 b(propagation)p Fk(i)h(\021)104 1853
y Fl({)143 1899 y(int)k(data[3])f(=)j({)f(1)g(};)143
1945 y(ok)g(=)g(test\(ok,)e(cprop_res)o(ul)o(t3,)f(cprop_tes)o(t3,)g
(data,)h(3,)i("extended)d(basic)i(blocks"\);)104 1990
y(})p Fi(3)0 2048 y Fh(See)11 b(18a,)f Fm(18c,)k(19b,)f(20ac)n(e,)i
(21b)n(d,)e(22b)n(d,)h(23ac)n(e,)h(24b)p Fh(.)0 2131
y Ft(This)f(one)g(exp)q(oses)h(a)f(problem)e(I)i(stum)o(bled)f(across)i
(in)e(gcc)i(\(ok)f(with)f Fg(-O2)p Ft(\).)-150 2210 y
Fm(19e)98 b Fl("cprop.c")p Fk(\021)104 2256 y Fl(void)18
b(cprop_tes)o(t4\()o(in)o(t)f(*data\))104 2302 y({)143
2347 y(int)h(j)i(=)f(12345;)143 2393 y(if)g(\(data[0]\))182
2439 y(data[1])e(=)i(1)h(+)f(j)g(-)g(1234;)143 2484 y(else)182
2530 y(data[2])e(=)i(123)g(-)g(j)g(+)h(10;)104 2576 y(})104
2621 y Fi(3)1277 2256 y Fl(void)e(cprop_resul)o(t4)o(\(in)o(t)f
(*data\))1277 2302 y({)1317 2393 y(if)h(\(data[0]\))1356
2439 y(data[1])f(=)i(11112;)1317 2484 y(else)1356 2530
y(data[2])e(=)i(-12212;)1277 2576 y(})1277 2621 y Fi(3)0
2679 y Fh(See)11 b Fm(18b,)i(19ac,)h(20b)n(d,)g(21ac,)g(22ac)n(e,)g
(23b)n(d,)g(24a)p Fh(.)954 2874 y Ft(19)p eop
%%Page: 20 25
20 24 bop -150 78 a Fm(20a)96 b Fk(h)p Fw(Constan)o(t)13
b(propagation)p Fk(i)h(\021)104 124 y Fl({)143 170 y(int)k(data[3])f(=)
j({)f(1)g(};)143 215 y(\(void\))e(test\(ok,)g(cprop_res)o(ult)o(4,)f
(cprop_test)o(4,)g(data,)i(4,)h("extende)o(d)e(basic)g(blocks"\);)104
261 y(})p Fi(3)0 319 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20c)n
(e,)g(21b)n(d,)g(22b)n(d,)g(23ac)n(e,)g(24b)p Fh(.)0
422 y Fo(4.2.2)55 b(Dominators)-150 476 y Fm(20b)98 b
Fl("cprop.c")p Fk(\021)104 522 y Fl(void)18 b(cprop_tes)o(t5\()o(in)o
(t)f(*data\))104 568 y({)143 613 y(int)h(j)i(=)f(5;)143
659 y(if)g(\(data[0]\))182 705 y(data[1])e(=)i(10;)143
750 y(else)182 796 y(data[2])e(=)i(15;)143 842 y(data[3])e(=)i(j)g(+)h
(21;)104 887 y(})104 933 y Fi(3)1277 522 y Fl(void)e(cprop_resul)o(t5)o
(\(in)o(t)f(*data\))1277 568 y({)1317 613 y(if)h(\(data[0]\))1356
659 y(data[1])f(=)i(10;)1317 705 y(else)1356 750 y(data[2])e(=)i(15;)
1317 796 y(data[3])e(=)i(26;)1277 842 y(})1277 887 y
Fi(3)0 990 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20d,)e(21ac,)h(22ac)n
(e,)g(23b)n(d,)g(24a)p Fh(.)-150 1071 y Fm(20c)98 b Fk(h)p
Fw(Constan)o(t)13 b(propagation)p Fk(i)h(\021)104 1117
y Fl({)143 1162 y(int)k(data[4])f(=)j({)f(1)g(};)143
1208 y(ok)g(=)g(test\(ok,)e(cprop_res)o(ul)o(t5,)f(cprop_tes)o(t5,)g
(data,)h(5,)i("dominator)o(s"\))o(;)104 1254 y(})p Fi(3)0
1311 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ae,)f(21b)n(d,)h(22b)n
(d,)g(23ac)n(e,)h(24b)p Fh(.)0 1392 y Ft(Still)f(more)g(o)q(dd)h
(problems)f(with)h(gcc.)22 b(The)15 b(m)o(ultiplies)e(don't)h(seem)h
(to)g(pro)o(v)o(ok)o(e)g(the)h(problem;)d(it)i(also)f(app)q(ears)i
(with)0 1442 y(simple)c(adds.)-150 1519 y Fm(20d)96 b
Fl("cprop.c")p Fk(\021)104 1565 y Fl(void)18 b(cprop_tes)o(t6\()o(in)o
(t)f(*data\))104 1611 y({)143 1656 y(int)h(j)i(=)f(5;)143
1702 y(if)g(\(data[0]\))182 1748 y(data[1])e(=)i(j)h(*)f(10;)143
1793 y(else)182 1839 y(data[2])e(=)i(j)h(*)f(15;)143
1885 y(data[3])e(=)i(j)g(*)h(21;)104 1930 y(})104 1976
y Fi(3)1277 1565 y Fl(void)e(cprop_resul)o(t6)o(\(in)o(t)f(*data\))1277
1611 y({)1317 1656 y(if)h(\(data[0]\))1356 1702 y(data[1])f(=)i(50;)
1317 1748 y(else)1356 1793 y(data[2])e(=)i(75;)1317 1839
y(data[3])e(=)i(105;)1277 1885 y(})1277 1930 y Fi(3)0
2034 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20b,)e(21ac,)h(22ac)n(e,)g
(23b)n(d,)g(24a)p Fh(.)-150 2114 y Fm(20e)98 b Fk(h)p
Fw(Constan)o(t)13 b(propagation)p Fk(i)h(\021)104 2160
y Fl({)143 2205 y(int)k(data[4])f(=)j({)f(1)g(};)143
2251 y(\(void\))e(test\(ok,)g(cprop_res)o(ult)o(6,)f(cprop_test)o(6,)g
(data,)i(6,)h("dominat)o(ors)o("\);)104 2297 y(})p Fi(3)0
2354 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac,)f(21b)n(d,)h(22b)n
(d,)g(23ac)n(e,)h(24b)p Fh(.)954 2874 y Ft(20)p eop
%%Page: 21 26
21 25 bop 0 91 a Fo(4.2.3)55 b(D)n(A)n(Gs)-150 145 y
Fm(21a)96 b Fl("cprop.c")p Fk(\021)104 191 y Fl(void)18
b(cprop_tes)o(t7\()o(in)o(t)f(*data\))104 237 y({)143
283 y(int)h(j;)143 328 y(if)h(\(data[0]\))d({)182 374
y(j)j(=)h(5;)182 420 y(data[1])d(=)i(10;)143 465 y(})143
511 y(else)f({)182 557 y(data[2])f(=)i(15;)182 602 y(j)g(=)h(5;)143
648 y(})143 694 y(data[3])d(=)i(j)g(+)h(21;)104 739 y(})104
785 y Fi(3)1277 191 y Fl(void)e(cprop_resul)o(t7)o(\(in)o(t)f(*data\))
1277 237 y({)1317 283 y(if)h(\(data[0]\))1356 328 y(data[1])f(=)i(10;)
1317 374 y(else)1356 420 y(data[2])e(=)i(15;)1317 465
y(data[3])e(=)i(26;)1277 511 y(})1277 557 y Fi(3)0 842
y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20b)n(d,)e(21c,)h(22ac)n(e,)g(23b)n
(d,)g(24a)p Fh(.)-150 923 y Fm(21b)98 b Fk(h)p Fw(Constan)o(t)13
b(propagation)p Fk(i)h(\021)104 969 y Fl({)143 1014 y(int)k(data[4])f
(=)j({)f(1)g(};)143 1060 y(ok)g(=)g(test\(ok,)e(cprop_res)o(ul)o(t7,)f
(cprop_tes)o(t7,)g(data,)h(7,)i("dags"\);)104 1106 y(})p
Fi(3)0 1163 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21d,)
f(22b)n(d,)h(23ac)n(e,)h(24b)p Fh(.)0 1244 y Ft(Here's)h(a)e(similar)e
(lo)q(oking)h(case)i(that)g(I)f(don't)g(exp)q(ect)i(an)o(y)o(one)e(to)h
(get,)f(though)g(it)h(could)f(b)q(e)h(handled)f(b)o(y)h(\014rst)g
(cloning)0 1294 y(the)f(blo)q(c)o(k)g(con)o(taining)f(the)h(assignmen)o
(t)f(to)h Fg(data[3])p Ft(.)-150 1371 y Fm(21c)98 b Fl("cprop.c")p
Fk(\021)104 1417 y Fl(void)18 b(cprop_tes)o(t8\()o(in)o(t)f(*data\))104
1462 y({)143 1508 y(int)h(j,)h(k;)143 1554 y(if)g(\(data[0]\))d({)182
1599 y(j)j(=)h(4;)182 1645 y(k)f(=)h(6;)182 1691 y(data[1])d(=)i(j;)143
1736 y(})143 1782 y(else)f({)182 1828 y(j)h(=)h(7;)182
1873 y(k)f(=)h(3;)182 1919 y(data[2])d(=)i(k;)143 1965
y(})143 2010 y(data[3])e(=)i(\(j)g(+)g(k\))g(*)g(21;)104
2056 y(})104 2102 y Fi(3)1277 1417 y Fl(void)f(cprop_resul)o(t8)o(\(in)
o(t)f(*data\))1277 1462 y({)1317 1508 y(if)h(\(data[0]\))1356
1554 y(data[1])f(=)i(4;)1317 1599 y(else)1356 1645 y(data[2])e(=)i(3;)
1317 1691 y(data[3])e(=)i(210;)1277 1736 y(})1277 1782
y Fi(3)0 2159 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20b)n(d,)e(21a,)h
(22ac)n(e,)g(23b)n(d,)g(24a)p Fh(.)-150 2239 y Fm(21d)96
b Fk(h)p Fw(Constan)o(t)13 b(propagation)p Fk(i)h(\021)104
2286 y Fl({)143 2331 y(int)k(data[4])f(=)j({)f(1)g(};)143
2377 y(\(void\))e(test\(ok,)g(cprop_res)o(ult)o(8,)f(cprop_test)o(8,)g
(data,)i(8,)h("dags)e(\(hard\)"\);)104 2423 y(})p Fi(3)0
2480 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21b,)f(22b)n
(d,)h(23ac)n(e,)h(24b)p Fh(.)954 2874 y Ft(21)p eop
%%Page: 22 27
22 26 bop 0 91 a Fo(4.2.4)55 b(Lo)r(ops)-150 155 y Fm(22a)96
b Fl("cprop.c")p Fk(\021)104 201 y Fl(void)18 b(cprop_tes)o(t9\()o(in)o
(t)f(*data\))104 247 y({)143 292 y(int)h(i;)143 338 y(int)g(stop)h(=)g
(data[0];)143 384 y(int)f(j)i(=)f(21;)143 429 y(for)f(\(i=1;)g(i<stop;)
f(i++\))182 475 y(j)i(=)h(\(j)f(-)g(20\))f(*)h(21;)143
521 y(data[1])e(=)i(j;)143 566 y(data[2])e(=)i(i;)104
612 y(})104 658 y Fi(3)1277 201 y Fl(void)f(cprop_resul)o(t9)o(\(in)o
(t)f(*data\))1277 247 y({)1317 292 y(int)h(i;)1317 338
y(int)g(stop)g(=)h(data[0];)1317 384 y(for)f(\(i=1;)g(i<stop;)f(i++\))
1356 429 y(;)1317 475 y(data[1])g(=)i(21;)1317 521 y(data[2])e(=)i(i;)
1277 566 y(})1277 612 y Fi(3)0 715 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i
(20b)n(d,)e(21ac,)h(22c)n(e,)g(23b)n(d,)g(24a)p Fh(.)-150
786 y Fm(22b)98 b Fk(h)p Fw(Constan)o(t)13 b(propagation)p
Fk(i)h(\021)104 833 y Fl({)143 878 y(int)k(data[3])f(=)j({)f(2)g(};)143
924 y(ok)g(=)g(test\(ok,)e(cprop_res)o(ul)o(t9,)f(cprop_tes)o(t9,)g
(data,)h(9,)i("loops"\);)104 970 y(})p Fi(3)0 1027 y
Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21b)n(d,)g(22d,)f
(23ac)n(e,)i(24b)p Fh(.)0 1140 y Fp(4.3)70 b(Conditional)21
b(Constan)n(ts)-150 1208 y Fm(22c)98 b Fl("cprop.c")p
Fk(\021)104 1255 y Fl(void)18 b(cprop_tes)o(t10)o(\(i)o(nt)e(*data\))
104 1300 y({)143 1346 y(int)i(j)i(=)f(1;)143 1391 y(if)g(\(j\))f(j)i(=)
f(10;)143 1437 y(else)57 b(j)20 b(=)f(data[0];)143 1483
y(data[0])e(=)i(j)g(*)h(21)e(+)i(data[1];)104 1528 y(})104
1574 y Fi(3)1258 1255 y Fl(void)e(cprop_res)o(ult)o(10)o(\(in)o(t)f
(*data\))1258 1300 y({)1297 1346 y(data[0])g(=)i(210)g(+)g(data[1];)
1258 1391 y(})1258 1437 y Fi(3)0 1632 y Fh(See)11 b Fm(18b,)i(19ac)n
(e,)i(20b)n(d,)e(21ac,)h(22ae,)g(23b)n(d,)g(24a)p Fh(.)-150
1703 y Fm(22d)96 b Fk(h)p Fw(Constan)o(t)13 b(propagation)p
Fk(i)h(\021)104 1749 y Fl({)143 1795 y(int)k(data[2])f(=)j({)f(1,)g(2)g
(};)143 1840 y(ok)g(=)g(test\(1,)e(cprop_resu)o(lt)o(10,)f(cprop_tes)o
(t10)o(,)g(data,)i(10,)h("conditi)o(ona)o(l)e(constant)o(s"\))o(;)104
1886 y(})p Fi(3)0 1944 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n
(e,)g(21b)n(d,)g(22b,)f(23ac)n(e,)i(24b)p Fh(.)0 2016
y Ft(The)h(previous)h(test)g(migh)o(t)c(ha)o(v)o(e)j(b)q(een)h(passed)g
(successfully)g(b)o(y)f(running)g(a)f(relativ)o(ely)h(simple)e(constan)
o(t)i(propagator)0 2066 y(rep)q(eatedly)g(if)e(unreac)o(hable)h(co)q
(de)g(is)g(remo)o(v)o(ed)e(b)q(et)o(w)o(een)j(passes.)22
b(The)15 b(next)g(case)g(can)g(nev)o(er)h(b)q(e)f(handled)f(b)o(y)h
(suc)o(h)g(an)0 2115 y(approac)o(h.)-150 2183 y Fm(22e)98
b Fl("cprop.c")p Fk(\021)104 2229 y Fl(void)18 b(cprop_tes)o(t11)o(\(i)
o(nt)e(*data\))104 2275 y({)143 2321 y(int)i(i;)143 2366
y(int)g(stop)h(=)g(data[0];)143 2412 y(int)f(j)i(=)f(1;)143
2458 y(for)f(\(i=1;)g(i<stop;)f(i++\))182 2503 y(if)i(\(!j\))f(j)h(=)h
(i;)143 2549 y(data[1])d(=)i(j;)143 2595 y(data[2])e(=)i(i;)104
2640 y(})104 2686 y Fi(3)1258 2229 y Fl(void)f(cprop_res)o(ult)o(11)o
(\(in)o(t)f(*data\))1258 2275 y({)1297 2321 y(int)h(i;)1297
2366 y(int)g(stop)h(=)g(data[0];)1297 2412 y(for)f(\(i=1;)g(i<stop;)f
(i++\))1336 2458 y(;)1297 2503 y(data[1])g(=)i(1;)1297
2549 y(data[2])e(=)i(i;)1258 2595 y(})1258 2640 y Fi(3)0
2743 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20b)n(d,)e(21ac,)h(22ac,)g
(23b)n(d,)g(24a)p Fh(.)954 2874 y Ft(22)p eop
%%Page: 23 28
23 27 bop -150 78 a Fm(23a)96 b Fk(h)p Fw(Constan)o(t)13
b(propagation)p Fk(i)h(\021)104 124 y Fl({)143 170 y(int)k(data[3])f(=)
j({)f(2)g(};)143 215 y(\(void\))e(test\(ok,)g(cprop_res)o(ult)o(11)o(,)
g(cprop_tes)o(t1)o(1,)f(data,)i(11,)g("conditiona)o(l)e(constants")o
(\);)104 261 y(})p Fi(3)0 319 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g
(20ac)n(e,)g(21b)n(d,)g(22b)n(d,)g(23c)n(e,)g(24b)p Fh(.)0
433 y Fp(4.4)70 b(Conditional-Based)21 b(Assertions)0
524 y Ft(W)m(e)14 b(need)h(something)e(exp)q(ensiv)o(e)i(lik)o(e)f(the)
h(division;)d(otherwise,)j(the)g(m)o(ultiply)c(can)k(b)q(e)g(hidden)f
(b)o(y)g(sc)o(heduling)g(on)g(the)0 574 y(RS/6000.)-150
653 y Fm(23b)98 b Fl("cprop.c")p Fk(\021)104 699 y Fl(void)18
b(cprop_tes)o(t12)o(\(i)o(nt)e(*data\))104 745 y({)143
791 y(int)i(j)i(=)f(data[0];)143 836 y(if)g(\(j)g(==)g(5\))182
882 y(j)g(=)h(j)f(*)g(21)g(+)g(25)g(/)g(j;)143 928 y(data[1])e(=)i(j;)
104 973 y(})104 1019 y Fi(3)1258 699 y Fl(void)f(cprop_res)o(ult)o(12)o
(\(in)o(t)f(*data\))1258 745 y({)1297 791 y(int)h(j)i(=)f(data[0];)1297
836 y(if)g(\(j)g(==)g(5\))1336 882 y(j)g(=)h(110;)1297
928 y(data[1])d(=)i(j;)1258 973 y(})1258 1019 y Fi(3)0
1076 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i(20b)n(d,)e(21ac,)h(22ac)n(e,)h
(23d,)e(24a)p Fh(.)-150 1156 y Fm(23c)98 b Fk(h)p Fw(Constan)o(t)13
b(propagation)p Fk(i)h(\021)104 1203 y Fl({)143 1248
y(int)k(data[2])f(=)j({)f(5)g(};)143 1294 y(ok)g(=)g(test\(1,)e
(cprop_resu)o(lt)o(12,)f(cprop_tes)o(t12)o(,)g(data,)i(12,)h("conditi)o
(ona)o(l-b)o(as)o(ed)d(assertions)o("\);)104 1340 y(})p
Fi(3)0 1397 y Fh(See)11 b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21b)n
(d,)g(22b)n(d,)g(23ae,)g(24b)p Fh(.)-150 1472 y Fm(23d)96
b Fl("cprop.c")p Fk(\021)104 1519 y Fl(void)18 b(cprop_tes)o(t13)o(\(i)
o(nt)e(*data\))104 1564 y({)143 1610 y(int)i(j)i(=)f(data[1];)143
1656 y(int)f(k)i(=)f(data[0];)143 1701 y(if)g(\(j)g(==)g(5)g(&&)g(k)g
(==)g(10\))182 1747 y(j)g(=)h(j)f(*)g(21)g(+)g(100)g(/)g(k;)143
1793 y(data[2])e(=)i(j;)104 1838 y(})104 1884 y Fi(3)1258
1519 y Fl(void)f(cprop_res)o(ult)o(13)o(\(in)o(t)f(*data\))1258
1564 y({)1297 1610 y(int)h(j)i(=)f(data[1];)1297 1656
y(int)f(k)i(=)f(data[0];)1297 1701 y(if)g(\(j)g(==)g(5)g(&&)g(k)g(==)g
(10\))1336 1747 y(j)g(=)h(115;)1297 1793 y(data[2])d(=)i(j;)1258
1838 y(})1258 1884 y Fi(3)0 1941 y Fh(See)11 b Fm(18b,)i(19ac)n(e,)i
(20b)n(d,)e(21ac,)h(22ac)n(e,)h(23b,)e(24a)p Fh(.)-150
2021 y Fm(23e)98 b Fk(h)p Fw(Constan)o(t)13 b(propagation)p
Fk(i)h(\021)104 2113 y Fl({)143 2159 y(int)k(data[3])f(=)j({)f(10,)f(5)
i(};)143 2205 y(\(void\))d(test\(ok,)g(cprop_res)o(ult)o(13)o(,)g
(cprop_tes)o(t1)o(3,)f(data,)i(13,)g("conditiona)o(l-)o(bas)o(ed)e
(assertions)o("\))o(;)104 2250 y(})p Fi(3)0 2308 y Fh(See)11
b(18a,)f Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21b)n(d,)g(22b)n(d,)g(23ac,)g
(24b)p Fh(.)954 2874 y Ft(23)p eop
%%Page: 24 29
24 28 bop 0 91 a Fp(4.5)70 b(Reasso)r(ciation)-150 159
y Fm(24a)96 b Fl("cprop.c")p Fk(\021)104 206 y Fl(void)18
b(cprop_tes)o(t14)o(\(i)o(nt)e(*data\))104 251 y({)143
297 y(int)i(i)i(=)f(10;)143 343 y(int)f(j)i(=)f(data[0];)143
388 y(int)f(k)i(=)f(20;)143 434 y(int)f(m)i(=)f(data[1];)143
480 y(int)f(n)i(=)f(30;)143 525 y(if)g(\(data[2]\))182
571 y(data[3])e(=)i(i)h(+)f(j)g(+)g(k)h(+)f(m)g(+)g(n;)143
617 y(else)182 662 y(data[0])e(=)i(i)h(*)f(\(j)g(-)g(k)g(*)g(\(m)g(-)g
(n\)\);)104 708 y(})104 754 y Fi(3)1081 206 y Fl(void)f(cprop_resu)o
(lt1)o(4\(i)o(nt)e(*data\))1081 251 y({)1121 297 y(int)i(j)h(=)g
(data[0];)1121 343 y(int)f(m)h(=)g(data[1];)1121 388
y(if)f(\(data[2]\))1160 434 y(data[3])f(=)i(60)g(+)g(j)g(+)g(m;)1121
480 y(else)1160 525 y(data[0])e(=)i(10)g(*)g(\(j)g(-)g(20)g(*)g(\(m)g
(-)g(30\)\);)1081 571 y(})1081 617 y Fi(3)0 811 y Fh(See)11
b Fm(18b,)i(19ac)n(e,)i(20b)n(d,)e(21ac,)h(22ac)n(e,)h(23b)n(d)p
Fh(.)-150 891 y Fm(24b)98 b Fk(h)p Fw(Constan)o(t)13
b(propagation)p Fk(i)h(\021)104 937 y Fl({)143 983 y(int)k(data[4])f(=)
j({)f(0,)g(1,)g(2)g(};)143 1029 y(\(void\))e(test\(ok,)g(cprop_res)o
(ult)o(14)o(,)g(cprop_tes)o(t1)o(4,)f(data,)i(14,)g("reassociat)o(io)o
(n"\))o(;)104 1074 y(})p Fi(3)0 1132 y Fh(See)11 b(18a,)f
Fm(18c,)k(19b)n(d,)g(20ac)n(e,)g(21b)n(d,)g(22b)n(d,)g(23ac)n(e)p
Fh(.)0 1247 y Fp(4.6)70 b(Algebraic)21 b(Simpli\014cati)o(ons)865
1379 y Fq(x)9 b Ft(+)g(0)42 b Fn(\))f Fq(x)865 1441 y(x)9
b Fn(\000)g Ft(0)42 b Fn(\))f Fq(x)865 1504 y(x)9 b Fn(\002)g
Ft(0)42 b Fn(\))f Ft(0)865 1566 y Fq(x)9 b Fn(\002)g
Ft(1)42 b Fn(\))f Fq(x)895 1628 y(x=)p Ft(1)g Fn(\))g
Fq(x)811 1690 y(x)9 b Fn(\\)f Ft(false)42 b Fn(\))f Ft(false)816
1753 y Fq(x)9 b Fn(\\)g Ft(true)43 b Fn(\))e Fq(x)811
1815 y(x)9 b Fn([)f Ft(false)42 b Fn(\))f Fq(x)816 1877
y(x)9 b Fn([)g Ft(true)43 b Fn(\))e Ft(true)851 1939
y Fq(x)11 b Fn(\034)g Ft(0)42 b Fn(\))f Fq(x)851 2002
y Ft(0)11 b Fn(\034)h Fq(x)41 b Fn(\))g Ft(0)785 2064
y(mo)q(d)o(\()p Fq(x;)7 b Ft(1\))41 b Fn(\))g Ft(0)0
2263 y Fp(4.7)70 b(Floating-P)n(oin)n(t)21 b(Op)r(erations)0
2354 y Ft(Sometimes)15 b(propagation)g(of)h(\015oating-p)q(oin)o(t)f
(constan)o(ts)j(at)f(compile)e(time)g(can)i(lead)f(to)h(loss)g(of)f
(precision.)27 b(In)16 b(other)0 2404 y(cases,)f(it's)e(safe)h(and)g
(accurate.)19 b(F)m(urthermore,)14 b(sometimes)e(users)j(don't)e
(consider)i(suc)o(h)g(losses)g(imp)q(ortan)o(t.)62 2454
y(W)m(e)h(should)h(at)f(least)h(c)o(hec)o(k)g(to)g(see)h(ho)o(w)e(man)o
(y)e(of)i(the)h(safe)g(cases)h(are)f(handled,)g(and)f(p)q(erhaps)i(if)e
(they're)h(doing)0 2504 y(some)c(of)g(the)i(shakier)f(cases)h(\(not)f
(so)g(m)o(uc)o(h)f(to)h(pass)g(judgemen)o(t)f(as)h(to)g(sho)o(w)f(who)h
(do)q(es)h(what\).)62 2554 y(con)o(v)o(ersions,)f(rounding,)f
(truncation)954 2874 y(24)p eop
%%Page: 25 30
25 29 bop 0 91 a Fp(4.8)70 b(Protot)n(yp)r(es)-150 176
y Fm(25)114 b Fk(h)p Fw(Protot)o(yp)q(es)p Fk(i)12 b(\021)104
222 y Fl(extern)17 b(void)h(cprop_test)o(1\(i)o(nt)e(*data\);)104
268 y(extern)h(void)h(cprop_test)o(2\(i)o(nt)e(*data\);)104
314 y(extern)h(void)h(cprop_test)o(3\(i)o(nt)e(*data\);)104
359 y(extern)h(void)h(cprop_test)o(35\()o(in)o(t)f(*data\);)104
405 y(extern)g(void)h(cprop_test)o(4\(i)o(nt)e(*data\);)104
451 y(extern)h(void)h(cprop_test)o(5\(i)o(nt)e(*data\);)104
496 y(extern)h(void)h(cprop_test)o(6\(i)o(nt)e(*data\);)104
542 y(extern)h(void)h(cprop_test)o(7\(i)o(nt)e(*data\);)104
588 y(extern)h(void)h(cprop_test)o(8\(i)o(nt)e(*data\);)104
633 y(extern)h(void)h(cprop_test)o(9\(i)o(nt)e(*data\);)104
679 y(extern)h(void)h(cprop_test)o(10\()o(in)o(t)f(*data\);)104
725 y(extern)g(void)h(cprop_test)o(11\()o(in)o(t)f(*data\);)104
770 y(extern)g(void)h(cprop_test)o(12\()o(in)o(t)f(*data\);)104
816 y(extern)g(void)h(cprop_test)o(13\()o(in)o(t)f(*data\);)104
862 y(extern)g(void)h(cprop_test)o(14\()o(in)o(t)f(*data\);)104
907 y Fi(3)1101 222 y Fl(extern)g(void)h(cprop_resu)o(lt1)o(\(i)o(nt)e
(*data\);)1101 268 y(extern)h(void)h(cprop_resu)o(lt2)o(\(i)o(nt)e
(*data\);)1101 314 y(extern)h(void)h(cprop_resu)o(lt3)o(\(i)o(nt)e
(*data\);)1101 359 y(extern)h(void)h(cprop_resu)o(lt4)o(\(i)o(nt)e
(*data\);)1101 405 y(extern)h(void)h(cprop_resu)o(lt5)o(\(i)o(nt)e
(*data\);)1101 451 y(extern)h(void)h(cprop_resu)o(lt6)o(\(i)o(nt)e
(*data\);)1101 496 y(extern)h(void)h(cprop_resu)o(lt7)o(\(i)o(nt)e
(*data\);)1101 542 y(extern)h(void)h(cprop_resu)o(lt8)o(\(i)o(nt)e
(*data\);)1101 588 y(extern)h(void)h(cprop_resu)o(lt9)o(\(i)o(nt)e
(*data\);)1101 633 y(extern)h(void)h(cprop_resu)o(lt1)o(0\()o(int)e
(*data\);)1101 679 y(extern)h(void)h(cprop_resu)o(lt1)o(1\()o(int)e
(*data\);)1101 725 y(extern)h(void)h(cprop_resu)o(lt1)o(2\()o(int)e
(*data\);)1101 770 y(extern)h(void)h(cprop_resu)o(lt1)o(3\()o(int)e
(*data\);)1101 816 y(extern)h(void)h(cprop_resu)o(lt1)o(4\()o(int)e
(*data\);)1101 862 y Fi(3)0 965 y Fh(See)11 b(3b,)g Fm(4,)h(7b,)i(8e,)f
(17,)g(32b,)h(39,)f(45c)p Fh(.)954 2874 y Ft(25)p eop
%%Page: 26 31
26 30 bop 0 257 a Fu(Chapter)34 b(5)0 423 y(V)-8 b(alue)34
b(Num)m(b)s(ering)0 598 y Ft([11)o(])62 648 y([4])62
697 y(reasso)q(ciation)62 747 y(basic)14 b(blo)q(c)o(ks,)g(extended)h
(basic)f(blo)q(c)o(ks,)g(dominance)e(regions,)i(global,)d(gated)j(SSA)
62 797 y(com)o(bined)f(with)g(constan)o(t)h(prop,)f(unreac)o(hable)i
(co)q(de)f(due)g(to)f(cprop,)h(unreac)o(hable)g(co)q(de)h(due)f(to)f(v)
n(alue)g(n)o(um)o(b)q(ering)62 847 y(impro)o(v)o(emen)o(ts)f(p)q
(ossible)i(via)f(conditionals)g(\(assertions\))-150 931
y Fm(26a)96 b Fk(h)p Fw(Ev)n(aluation)16 b(driv)o(ers)p
Fk(i)c(\021)104 977 y Fl({)143 1023 y(int)18 b(ok;)143
1068 y(puts\("Valu)o(e)e(numbering"\))o(;)143 1114 y
Fk(h)p Fw(V)m(alue)e(n)o(um)o(b)q(ering)h Fm(26c,)e Fj(:)6
b(:)g(:)f Fk(i)104 1160 y Fl(})p Fi(3)0 1217 y Fh(See)11
b(3c,)g Fm(11a,)i(18a,)g(33a,)h(40a)p Fh(.)0 1332 y Fp(5.1)70
b(Lo)r(cal)0 1422 y Ft([11)o(])0 1539 y Fo(5.1.1)55 b(Expressions)-150
1602 y Fm(26b)98 b Fl("valnum.c")o Fk(\021)104 1649 y
Fl(void)18 b(vnum_test)o(1\(i)o(nt)e(*data\))104 1694
y({)143 1740 y(data[0])h(=)i(data[1])e(*)i(data[3])e(-)i(data[1])e(*)j
(data[3];)104 1786 y(})104 1831 y Fi(3)1297 1649 y Fl(void)e
(vnum_resul)o(t1)o(\(in)o(t)f(*data\))1297 1694 y({)1336
1740 y(data[0])g(=)i(0;)1297 1786 y(})1297 1831 y Fi(3)0
1889 y Fh(See)11 b Fm(26d,)i(27b)n(d,)h(28ac,)g(29ac,)f(30b)n(d,)h
(31ac)p Fh(.)-150 1969 y Fm(26c)98 b Fk(h)p Fw(V)m(alue)14
b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104 2015 y Fl({)143
2061 y(int)18 b(data[4])f(=)j({0,)e(1,)h(2,)g(3)g(};)143
2106 y(ok)g(=)g(test\(1,)37 b(vnum_resu)o(lt)o(1,)16
b(vnum_test1)o(,)h(data,)g(1,)i("expressio)o(ns)o("\);)104
2152 y(})p Fi(3)0 2210 y Fh(See)11 b(26a,)f Fm(27ac)n(e,)15
b(28b)n(d,)e(29b,)h(30ac)n(e,)g(31b,)g(32a)p Fh(.)-150
2285 y Fm(26d)96 b Fl("valnum.c")o Fk(\021)104 2331 y
Fl(void)18 b(vnum_test)o(2\(i)o(nt)e(*data\))104 2377
y({)143 2422 y(data[0])h(=)i(data[1])e(*)i(data[3])e(-)i(data[3])e(*)j
(data[1];)104 2468 y(})104 2514 y Fi(3)1297 2331 y Fl(void)e
(vnum_resul)o(t2)o(\(in)o(t)f(*data\))1297 2377 y({)1336
2422 y(data[0])g(=)i(0;)1297 2468 y(})1297 2514 y Fi(3)0
2571 y Fh(See)11 b Fm(26b,)i(27b)n(d,)h(28ac,)g(29ac,)g(30b)n(d,)g
(31ac)p Fh(.)954 2874 y Ft(26)p eop
%%Page: 27 32
27 31 bop -150 78 a Fm(27a)96 b Fk(h)p Fw(V)m(alue)14
b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104 124 y Fl({)143
170 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
215 y(\(void\))37 b(test\(ok,)16 b(vnum_result)o(2,)g(vnum_test2)o(,)g
(data,)i(2,)h("expressi)o(ons)o("\);)104 261 y(})p Fi(3)0
319 y Fh(See)11 b(26a,)f Fm(26c,)k(27c)n(e,)g(28b)n(d,)g(29b,)f(30ac)n
(e,)i(31b,)e(32a)p Fh(.)0 422 y Fo(5.1.2)55 b(Basic)19
b(Blo)r(c)n(ks)-150 476 y Fm(27b)98 b Fl("valnum.c")o
Fk(\021)104 522 y Fl(void)18 b(vnum_test)o(3\(i)o(nt)e(*data\))104
568 y({)143 613 y(int)i(n;)143 659 y(int)g(j)i(=)f(data[1])e(*)i
(data[3];)143 705 y(int)f(i)i(=)f(data[3];)143 750 y(int)f(m)i(=)f
(data[1];)143 796 y(int)f(k)i(=)f(data[2];)143 842 y(data[k])e(=)i(2;)
143 887 y(n)g(=)g(m)h(*)f(i;)143 933 y(data[0])e(=)i(n)g(-)h(j;)104
979 y(})104 1024 y Fi(3)1297 522 y Fl(void)e(vnum_resul)o(t3)o(\(in)o
(t)f(*data\))1297 568 y({)1336 613 y(int)i(k)g(=)g(data[2];)1336
659 y(data[k])e(=)i(2;)1336 705 y(data[0])e(=)i(0;)1297
750 y(})1297 796 y Fi(3)0 1082 y Fh(See)11 b Fm(26b)n(d,)j(27d,)f
(28ac,)h(29ac,)f(30b)n(d,)h(31ac)p Fh(.)-150 1162 y Fm(27c)98
b Fk(h)p Fw(V)m(alue)14 b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104
1208 y Fl({)143 1254 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i
(};)143 1299 y(ok)f(=)g(test\(ok,)e(vnum_resu)o(lt)o(3,)f(vnum_test3)o
(,)h(data,)g(3,)i("basic)e(block"\);)104 1345 y(})p Fi(3)0
1403 y Fh(See)11 b(26a,)f Fm(26c,)k(27ae,)f(28b)n(d,)h(29b,)g(30ac)n
(e,)g(31b,)g(32a)p Fh(.)0 1484 y Ft(Chec)o(k)h(comm)o(utati)o(vit)o(y)c
(since)j(some)f(compilers)g(seem)h(to)g(miss)e(it.)-150
1560 y Fm(27d)96 b Fl("valnum.c")o Fk(\021)104 1607 y
Fl(void)18 b(vnum_test)o(4\(i)o(nt)e(*data\))104 1652
y({)143 1698 y(int)i(n;)143 1744 y(int)g(j)i(=)f(data[1])e(*)i
(data[3];)143 1789 y(int)f(i)i(=)f(data[3];)143 1835
y(int)f(m)i(=)f(data[1];)143 1881 y(int)f(k)i(=)f(data[2];)143
1926 y(data[k])e(=)i(2;)143 1972 y(n)g(=)g(i)h(*)f(m;)143
2018 y(data[0])e(=)i(n)g(-)h(j;)104 2063 y(})104 2109
y Fi(3)1297 1607 y Fl(void)e(vnum_resul)o(t4)o(\(in)o(t)f(*data\))1297
1652 y({)1336 1698 y(int)i(k)g(=)g(data[2];)1336 1744
y(data[k])e(=)i(2;)1336 1789 y(data[0])e(=)i(0;)1297
1835 y(})1297 1881 y Fi(3)0 2166 y Fh(See)11 b Fm(26b)n(d,)j(27b,)f
(28ac,)h(29ac,)g(30b)n(d,)g(31ac)p Fh(.)-150 2246 y Fm(27e)98
b Fk(h)p Fw(V)m(alue)14 b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104
2293 y Fl({)143 2338 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i
(};)143 2384 y(\(void\))d(test\(ok,)g(vnum_resu)o(lt4)o(,)f
(vnum_test4,)g(data,)h(4,)i("basic)f(block"\);)104 2430
y(})p Fi(3)0 2487 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac,)f(28b)n(d,)h
(29b,)g(30ac)n(e,)g(31b,)g(32a)p Fh(.)954 2874 y Ft(27)p
eop
%%Page: 28 33
28 32 bop 0 91 a Fo(5.1.3)55 b(Extended)18 b(Basic)g(Blo)r(c)n(ks)-150
145 y Fm(28a)96 b Fl("valnum.c")o Fk(\021)104 191 y Fl(void)18
b(vnum_test)o(5\(i)o(nt)e(*data\))104 237 y({)143 283
y(int)i(j)i(=)f(data[1])e(*)i(data[3];)143 328 y(if)g(\(data[3])d(==)j
(3\))g({)182 374 y(int)g(n;)182 420 y(int)g(i)g(=)g(data[3];)182
465 y(int)g(m)g(=)g(data[1];)182 511 y(int)g(k)g(=)g(data[2];)182
557 y(data[k])e(=)i(2;)182 602 y(n)g(=)h(m)f(*)g(i;)182
648 y(data[0])e(=)i(n)h(-)f(j;)143 694 y(})143 739 y(else)f(if)h
(\(data[0])d(&)k(1\))f({)182 785 y(j)g(=)h(3)f(+)g(data[2])e(-)i(j;)182
831 y(data[j])e(=)i(2;)143 876 y(})104 922 y(})104 968
y Fi(3)1297 191 y Fl(void)f(vnum_resul)o(t5)o(\(in)o(t)f(*data\))1297
237 y({)1336 283 y(int)i(j)g(=)g(data[1])e(*)i(data[3];)1336
328 y(if)g(\(data[3])e(==)h(3\))h({)1375 374 y(int)g(k)g(=)g(data[2];)
1375 420 y(data[k])e(=)j(2;)1375 465 y(data[0])d(=)j(0;)1336
511 y(})1336 557 y(else)e(if)h(\(data[0])e(&)i(1\))g({)1375
602 y(j)h(=)f(3)g(+)g(data[2])e(-)j(j;)1375 648 y(data[j])d(=)j(2;)1336
694 y(})1297 739 y(})1297 785 y Fi(3)0 1025 y Fh(See)11
b Fm(26b)n(d,)j(27b)n(d,)g(28c,)f(29ac,)h(30b)n(d,)g(31ac)p
Fh(.)-150 1105 y Fm(28b)98 b Fk(h)p Fw(V)m(alue)14 b(n)o(um)o(b)q
(ering)p Fk(i)e(\021)104 1151 y Fl({)143 1197 y(int)18
b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143 1243 y(ok)f(=)g
(test\(ok,)e(vnum_resu)o(lt)o(5,)f(vnum_test5)o(,)h(data,)g(5,)i
("extended)d(basic)i(block"\);)104 1288 y(})p Fi(3)0
1346 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28d,)f(29b,)h(30ac)n
(e,)g(31b,)g(32a)p Fh(.)0 1461 y Fp(5.2)70 b(Dominators)0
1551 y Ft(Can)14 b(b)q(e)g(handled)g(prett)o(y)h(easily)e(using)h
Fw(SSA)p Ft(.)k(Not)c(published)g({)g(due)g(to)g(Jonathan)f(Brezin.)
-150 1628 y Fm(28c)98 b Fl("valnum.c")o Fk(\021)104 1674
y Fl(void)18 b(vnum_test)o(6\(i)o(nt)e(*data\))104 1720
y({)143 1766 y(int)i(n;)143 1811 y(int)g(j)i(=)f(data[1])e(*)i
(data[3];)143 1857 y(int)f(m)i(=)f(data[1];)143 1903
y(int)f(k)i(=)f(j;)143 1948 y(if)g(\(data[0]\))182 1994
y(j)g(=)h(j)f(+)g(3;)143 2040 y(else)182 2085 y(j)g(=)h(j)f(-)g(3;)143
2131 y(n)g(=)g(data[3];)143 2177 y(j)g(=)g(data[2])e(+)j(j;)143
2222 y(data[j])d(=)i(2;)143 2268 y(data[4])e(=)i(k)g(-)h(m)f(*)g(n;)104
2314 y(})104 2359 y Fi(3)1297 1674 y Fl(void)f(vnum_resul)o(t6)o(\(in)o
(t)f(*data\))1297 1720 y({)1336 1766 y(int)i(j)g(=)g(data[1])e(*)i
(data[3];)1336 1811 y(if)g(\(data[0]\))1375 1857 y(j)h(=)f(j)g(+)g(3;)
1336 1903 y(else)1375 1948 y(j)h(=)f(j)g(-)g(3;)1336
1994 y(j)g(=)h(data[2])d(+)i(j;)1336 2040 y(data[j])e(=)i(2;)1336
2085 y(data[4])e(=)i(0;)1297 2131 y(})1297 2177 y Fi(3)0
2417 y Fh(See)11 b Fm(26b)n(d,)j(27b)n(d,)g(28a,)f(29ac,)h(30b)n(d,)g
(31ac)p Fh(.)-150 2497 y Fm(28d)96 b Fk(h)p Fw(V)m(alue)14
b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104 2543 y Fl({)143
2589 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3,)h(4)g(};)143
2634 y(ok)g(=)g(test\(ok,)e(vnum_resu)o(lt)o(6,)f(vnum_test6)o(,)h
(data,)g(6,)i("dominator)o(s")o(\);)104 2680 y(})p Fi(3)0
2738 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b,)g(29b,)f(30ac)n
(e,)h(31b,)g(32a)p Fh(.)954 2874 y Ft(28)p eop
%%Page: 29 34
29 33 bop 0 91 a Fp(5.3)70 b(Global)0 182 y Ft([4)o(])0
298 y Fo(5.3.1)55 b(D)n(A)n(Gs)-150 352 y Fm(29a)96 b
Fl("valnum.c")o Fk(\021)104 398 y Fl(void)18 b(vnum_test)o(7\(i)o(nt)e
(*data\))104 444 y({)143 490 y(int)i(i,)h(j,)g(k;)143
535 y(int)f(m)i(=)f(data[1];)143 581 y(int)f(n)i(=)f(data[3];)143
627 y(if)g(\(data[0]\))d({)182 672 y(j)j(=)h(m)f(*)g(n;)182
718 y(i)g(=)h(data[2];)182 764 y(data[i])d(=)i(2;)182
809 y(k)g(=)h(m)f(*)g(n;)143 855 y(})143 901 y(else)f({)182
946 y(j)h(=)h(5;)182 992 y(k)f(=)h(5;)143 1038 y(})143
1083 y(data[0])d(=)i(k)g(-)h(j;)104 1129 y(})104 1175
y Fi(3)1297 398 y Fl(void)e(vnum_resul)o(t7)o(\(in)o(t)f(*data\))1297
444 y({)1336 490 y(int)i(i;)1336 535 y(if)g(\(data[0]\))d({)1375
581 y(i)k(=)f(data[2];)1375 627 y(data[i])e(=)j(2;)1336
672 y(})1336 718 y(data[0])d(=)i(0;)1297 764 y(})1297
809 y Fi(3)0 1232 y Fh(See)11 b Fm(26b)n(d,)j(27b)n(d,)g(28ac,)f(29c,)h
(30b)n(d,)g(31ac)p Fh(.)-150 1312 y Fm(29b)98 b Fk(h)p
Fw(V)m(alue)14 b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104
1359 y Fl({)143 1404 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3,)h
(4)g(};)143 1450 y(ok)g(=)g(test\(1,)37 b(vnum_resu)o(lt)o(7,)16
b(vnum_test7)o(,)h(data,)g(7,)i("global)e(DAGs"\);)104
1495 y(})p Fi(3)0 1553 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b)n
(d,)g(30ac)n(e,)g(31b,)g(32a)p Fh(.)0 1656 y Fo(5.3.2)55
b(Lo)r(ops)-150 1719 y Fm(29c)98 b Fl("valnum.c")o Fk(\021)104
1766 y Fl(void)18 b(vnum_test)o(8\(i)o(nt)e(*data\))104
1811 y({)143 1857 y(int)i(i;)143 1903 y(int)g(stop)h(=)g(data[3];)143
1948 y(int)f(m)i(=)f(data[4];)143 1994 y(int)f(n)i(=)f(m;)143
2040 y(for)f(\(i=0;)g(i<stop;)f(i++\))h({)182 2085 y(int)h(k)g(=)g
(data[2];)182 2131 y(data[k])e(=)i(2;)182 2177 y(data[0])e(=)i(m)h(-)f
(n;)182 2222 y(k)g(=)h(data[1];)182 2268 y(m)f(=)h(m)f(+)g(k;)182
2313 y(n)g(=)h(n)f(+)g(k;)143 2359 y(})104 2405 y(})104
2450 y Fi(3)1297 1766 y Fl(void)f(vnum_resul)o(t8)o(\(in)o(t)f(*data\))
1297 1811 y({)1336 1857 y(int)i(i;)1336 1903 y(int)g(stop)f(=)h
(data[3];)1336 1948 y(for)g(\(i=0;)e(i<stop;)g(i++\))h({)1375
1994 y(int)h(k)g(=)g(data[2];)1375 2040 y(data[k])e(=)j(2;)1375
2085 y(data[0])d(=)j(0;)1336 2131 y(})1297 2177 y(})1297
2222 y Fi(3)0 2508 y Fh(See)11 b Fm(26b)n(d,)j(27b)n(d,)g(28ac,)f(29a,)
h(30b)n(d,)g(31ac)p Fh(.)954 2874 y Ft(29)p eop
%%Page: 30 35
30 34 bop -150 78 a Fm(30a)96 b Fk(h)p Fw(V)m(alue)14
b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104 124 y Fl({)143
170 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3,)h(4)g(};)143
215 y(ok)g(=)g(test\(ok,)e(vnum_resu)o(lt)o(8,)f(vnum_test8)o(,)h
(data,)g(8,)i("global)e(loops"\);)104 261 y(})p Fi(3)0
319 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b)n(d,)g(29b,)f(30c)n
(e,)i(31b,)e(32a)p Fh(.)0 433 y Fp(5.4)70 b(Conditional-Based)21
b(Assertions)0 532 y Fo(5.4.1)55 b(Simple)-150 596 y
Fm(30b)98 b Fl("valnum.c")o Fk(\021)104 642 y Fl(void)18
b(vnum_test)o(9\(i)o(nt)e(*data\))104 688 y({)143 734
y(int)i(i)i(=)f(data[0];)143 779 y(int)f(j)i(=)f(data[1];)143
825 y(if)g(\(i)g(==)g(j\))182 871 y(data[2])e(=)i(\(i)g(-)g(j\))g(*)h
(21;)143 916 y(else)182 962 y(data[2])d(=)i(i)h(+)f(j;)104
1008 y(})104 1053 y Fi(3)1297 642 y Fl(void)f(vnum_resul)o(t9)o(\(in)o
(t)f(*data\))1297 688 y({)1336 734 y(int)i(i)g(=)g(data[0];)1336
779 y(int)g(j)g(=)g(data[1];)1336 825 y(if)g(\(i)g(==)g(j\))1375
871 y(data[2])e(=)j(0;)1336 916 y(else)1375 962 y(data[2])d(=)j(i)f(+)g
(j;)1297 1008 y(})1297 1053 y Fi(3)0 1111 y Fh(See)11
b Fm(26b)n(d,)j(27b)n(d,)g(28ac,)f(29ac,)h(30d,)f(31ac)p
Fh(.)-150 1191 y Fm(30c)98 b Fk(h)p Fw(V)m(alue)14 b(n)o(um)o(b)q
(ering)p Fk(i)e(\021)104 1237 y Fl({)143 1283 y(int)18
b(data[3])f(=)j({)f(0,)g(0)g(};)143 1328 y(ok)g(=)g(test\(1,)e
(vnum_resul)o(t9)o(,)g(vnum_tes)o(t9,)f(data,)i(9,)g("conditiona)o(l-)o
(bas)o(ed)e(assertions)o("\))o(;)104 1374 y(})p Fi(3)0
1432 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b)n(d,)g(29b,)f
(30ae,)h(31b,)g(32a)p Fh(.)0 1535 y Fo(5.4.2)55 b(Deriv)n(ed)0
1612 y Ft(This)14 b(one)g(is)g(quite)g(hard.)-150 1688
y Fm(30d)96 b Fl("valnum.c")o Fk(\021)104 1734 y Fl(void)18
b(vnum_test)o(10\()o(in)o(t)f(*data\))104 1780 y({)143
1826 y(int)h(i)i(=)f(data[0];)143 1871 y(int)f(m)i(=)f(i)g(+)g(1;)143
1917 y(int)f(j)i(=)f(data[1];)143 1963 y(int)f(n)i(=)f(j)g(+)g(1;)143
2008 y(data[2])e(=)i(m)g(+)h(n;)143 2054 y(if)f(\(i)g(==)g(j\))182
2100 y(data[3])e(=)i(\(m)g(-)g(n\))g(*)h(21;)104 2145
y(})104 2191 y Fi(3)1277 1734 y Fl(void)e(vnum_result)o(10)o(\(in)o(t)f
(*data\))1277 1780 y({)1317 1826 y(int)h(i)h(=)h(data[0];)1317
1871 y(int)e(m)h(=)h(i)f(+)g(1;)1317 1917 y(int)f(j)h(=)h(data[1];)1317
1963 y(int)e(n)h(=)h(j)f(+)g(1;)1317 2008 y(data[2])e(=)i(m)g(+)g(n;)
1317 2054 y(if)f(\(i)h(==)g(j\))1356 2100 y(data[3])e(=)i(0;)1277
2145 y(})1277 2191 y Fi(3)0 2249 y Fh(See)11 b Fm(26b)n(d,)j(27b)n(d,)g
(28ac,)f(29ac,)h(30b,)g(31ac)p Fh(.)-150 2329 y Fm(30e)98
b Fk(h)p Fw(V)m(alue)14 b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104
2375 y Fl({)143 2421 y(int)18 b(data[4])f(=)j({)f(0,)g(0)g(};)143
2466 y(ok)g(=)g(test\(ok,)e(vnum_resu)o(lt)o(10,)f(vnum_test)o(10,)g
(data,)h(10,)i("conditio)o(nal)o(-ba)o(se)o(d)e(assertio)o(ns")o(\);)
104 2512 y(})p Fi(3)0 2569 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g
(28b)n(d,)g(29b,)f(30ac,)h(31b,)g(32a)p Fh(.)954 2874
y Ft(30)p eop
%%Page: 31 36
31 35 bop 0 91 a Fp(5.5)70 b(Conditional)21 b(V)-6 b(alue)22
b(Num)n(b)r(ers)0 182 y Ft(Analogous)9 b(to)i(the)g(conditional)d
(constan)o(ts)k(found)e(b)o(y)g(W)m(egman)e(and)i(Zadec)o(ks's)h
(constan)o(t)g(propagation)e(algorithm)f([22)o(],)0 232
y(com)o(bines)13 b(v)n(alue)h(n)o(um)o(b)q(ering)e(and)i(remo)o(v)n(al)
e(of)i(unreac)o(hable)h(co)q(de)g(to)f(\014nd)g(more)f(equalities)h
(than)g(could)g(b)q(e)g(found)g(b)o(y)0 282 y(running)j(the)h(passes)h
(separately)m(.)28 b(This)17 b(example)f(is)i(due)f(to)h(Cli\013)e
(Clic)o(k,)h(who)g(has)g(an)h(algorithm)c(to)j(handle)h(these)0
332 y(cases.)-150 400 y Fm(31a)96 b Fl("valnum.c")o Fk(\021)104
446 y Fl(void)18 b(vnum_test)o(11\()o(in)o(t)f(*data\))104
492 y({)143 538 y(int)h(n;)143 583 y(int)g(stop)h(=)g(data[3];)143
629 y(int)f(j)i(=)f(data[1];)143 675 y(int)f(k)i(=)f(j;)143
720 y(int)f(i)i(=)f(1;)143 766 y(for)f(\(n=0;)g(n<stop;)f(n++\))h({)182
812 y(if)h(\(j)g(!=)g(k\))g(i)g(=)g(2;)182 857 y(if)g(\(i)g(!=)g(1\))g
(k)g(=)g(2;)182 903 y(data[data[)o(2]])d(=)j(2;)143 949
y(})143 994 y(data[1])e(=)i(i;)104 1040 y(})104 1086
y Fi(3)1277 446 y Fl(void)f(vnum_result)o(11)o(\(in)o(t)f(*data\))1277
492 y({)1317 538 y(int)h(n;)1317 583 y(int)g(stop)g(=)h(data[3];)1317
629 y(for)f(\(n=0;)g(n<stop;)f(n++\))1356 675 y(data[data)o([2])o(])f
(=)k(2;)1317 720 y(data[1])d(=)i(1;)1277 766 y(})1277
812 y Fi(3)0 1143 y Fh(See)11 b Fm(26b)n(d,)j(27b)n(d,)g(28ac,)f(29ac,)
h(30b)n(d,)g(31c)p Fh(.)-150 1223 y Fm(31b)98 b Fk(h)p
Fw(V)m(alue)14 b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104
1269 y Fl({)143 1315 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i
(};)143 1361 y(ok)f(=)g(test\(1,)e(vnum_resul)o(t1)o(1,)f(vnum_test1)o
(1,)g(data,)i(11,)g("condition)o(al)e(value)i(numbers"\))o(;)104
1406 y(})p Fi(3)0 1464 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b)n
(d,)g(29b,)f(30ac)n(e,)i(32a)p Fh(.)0 1579 y Fp(5.6)70
b(Com)n(bining)21 b(V)-6 b(alue)22 b(Num)n(b)r(ering)g(and)i(Constan)n
(t)f(Propagation)0 1670 y Ft(This)12 b(one)f(is)h(quite)g(hard.)17
b(Com)o(bines)10 b(global)g(v)n(alue)h(n)o(um)o(b)q(ering,)f(constan)o
(t)j(propagation,)d(and)i(elimination)c(of)j(unreac)o(h-)0
1719 y(able)j(co)q(de.)k(Again,)13 b(Clic)o(k's)g(approac)o(h)h(should)
g(handle)f(this)h(sort)h(of)e(case.)-150 1796 y Fm(31c)98
b Fl("valnum.c")o Fk(\021)104 1842 y Fl(void)18 b(vnum_test)o(12\()o
(in)o(t)f(*data\))104 1888 y({)143 1933 y(int)h(n;)143
1979 y(int)g(stop)h(=)g(data[3];)143 2025 y(int)f(j)i(=)f(data[1];)143
2070 y(int)f(k)i(=)f(j;)143 2116 y(int)f(i)i(=)f(1;)143
2162 y(for)f(\(n=0;)g(n<stop;)f(n++\))h({)182 2207 y(if)h(\(j)g(!=)g
(k\))g(i)g(=)g(2;)182 2253 y(i)g(=)h(2)f(-)g(i;)182 2299
y(if)g(\(i)g(!=)g(1\))g(k)g(=)g(2;)182 2344 y(data[data[)o(2]])d(=)j
(2;)143 2390 y(})143 2436 y(data[1])e(=)i(i;)104 2481
y(})104 2527 y Fi(3)1277 1842 y Fl(void)f(vnum_result)o(12)o(\(in)o(t)f
(*data\))1277 1888 y({)1317 1933 y(int)h(n;)1317 1979
y(int)g(stop)g(=)h(data[3];)1317 2025 y(for)f(\(n=0;)g(n<stop;)f(n++\))
1356 2070 y(data[data)o([2])o(])f(=)k(2;)1317 2116 y(data[1])d(=)i(1;)
1277 2162 y(})1277 2207 y Fi(3)0 2585 y Fh(See)11 b Fm(26b)n(d,)j(27b)n
(d,)g(28ac,)f(29ac,)h(30b)n(d,)g(31a)p Fh(.)954 2874
y Ft(31)p eop
%%Page: 32 37
32 36 bop -150 78 a Fm(32a)96 b Fk(h)p Fw(V)m(alue)14
b(n)o(um)o(b)q(ering)p Fk(i)e(\021)104 124 y Fl({)143
170 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
215 y(ok)f(=)g(test\(ok,)e(vnum_resu)o(lt)o(12,)f(vnum_test)o(12,)g
(data,)h(12,)i("cprop)e(+)i(vnum"\);)104 261 y(})p Fi(3)0
319 y Fh(See)11 b(26a,)f Fm(26c,)k(27ac)n(e,)g(28b)n(d,)g(29b,)f(30ac)n
(e,)i(31b)p Fh(.)0 433 y Fp(5.7)70 b(Reasso)r(ciation)0
532 y Fo(5.7.1)55 b(Expressions)0 617 y(5.7.2)g(Lo)r(cal)0
702 y(5.7.3)g(Global)0 804 y Fp(5.8)70 b(Algebraic)21
b(Simpli\014cati)o(ons)821 936 y Fq(x)12 b Ft(=)g Fq(x)41
b Fn(\))g Ft(true)821 998 y Fq(x)12 b Fn(6)p Ft(=)g Fq(x)41
b Fn(\))g Ft(false)821 1061 y Fq(x)12 b(>)g(x)41 b Fn(\))g
Ft(false)821 1123 y Fq(x)12 b Fn(\025)g Fq(x)41 b Fn(\))g
Ft(true)821 1185 y Fq(x)12 b(<)g(x)41 b Fn(\))g Ft(false)821
1248 y Fq(x)12 b Fn(\024)g Fq(x)41 b Fn(\))g Ft(true)831
1310 y Fq(x)9 b Fn(\\)g Fq(x)41 b Fn(\))g Fq(x)831 1372
y(x)9 b Fn([)g Fq(x)41 b Fn(\))g Fq(x)826 1434 y(x)9
b Fn(\000)h Fq(x)41 b Fn(\))g Ft(0)0 1634 y Fp(5.9)70
b(Protot)n(yp)r(es)-150 1719 y Fm(32b)98 b Fk(h)p Fw(Protot)o(yp)q(es)p
Fk(i)12 b(\021)104 1765 y Fl(extern)17 b(void)h(vnum_test1)o(\(in)o(t)e
(*\);)104 1811 y(extern)h(void)h(vnum_test2)o(\(in)o(t)e(*\);)104
1856 y(extern)h(void)h(vnum_test3)o(\(in)o(t)e(*\);)104
1902 y(extern)h(void)h(vnum_test4)o(\(in)o(t)e(*\);)104
1948 y(extern)h(void)h(vnum_test5)o(\(in)o(t)e(*\);)104
1993 y(extern)h(void)h(vnum_test6)o(\(in)o(t)e(*\);)104
2039 y(extern)h(void)h(vnum_test7)o(\(in)o(t)e(*\);)104
2085 y(extern)h(void)h(vnum_test8)o(\(in)o(t)e(*\);)104
2130 y(extern)h(void)h(vnum_test9)o(\(in)o(t)e(*\);)104
2176 y(extern)h(void)h(vnum_test1)o(0\(i)o(nt)e(*\);)104
2222 y(extern)h(void)h(vnum_test1)o(1\(i)o(nt)e(*\);)104
2267 y(extern)h(void)h(vnum_test1)o(2\(i)o(nt)e(*\);)104
2313 y Fi(3)1199 1765 y Fl(extern)h(void)h(vnum_resul)o(t1\()o(int)e
(*\);)1199 1811 y(extern)h(void)h(vnum_resul)o(t2\()o(int)e(*\);)1199
1856 y(extern)h(void)h(vnum_resul)o(t3\()o(int)e(*\);)1199
1902 y(extern)h(void)h(vnum_resul)o(t4\()o(int)e(*\);)1199
1948 y(extern)h(void)h(vnum_resul)o(t5\()o(int)e(*\);)1199
1993 y(extern)h(void)h(vnum_resul)o(t6\()o(int)e(*\);)1199
2039 y(extern)h(void)h(vnum_resul)o(t7\()o(int)e(*\);)1199
2085 y(extern)h(void)h(vnum_resul)o(t8\()o(int)e(*\);)1199
2130 y(extern)h(void)h(vnum_resul)o(t9\()o(int)e(*\);)1199
2176 y(extern)h(void)h(vnum_resul)o(t10)o(\(in)o(t)e(*\);)1199
2222 y(extern)h(void)h(vnum_resul)o(t11)o(\(in)o(t)e(*\);)1199
2267 y(extern)h(void)h(vnum_resul)o(t12)o(\(in)o(t)e(*\);)1199
2313 y Fi(3)0 2370 y Fh(See)11 b(3b,)g Fm(4,)h(7b,)i(8e,)f(17,)g(25,)g
(39,)g(45c)p Fh(.)954 2874 y Ft(32)p eop
%%Page: 33 38
33 37 bop 0 257 a Fu(Chapter)34 b(6)0 423 y(Co)s(de)g(Motion)0
598 y Ft(Redundancies)15 b(that)g(can't)f(simply)e(b)q(e)j(remo)o(v)o
(ed.)k(The)14 b(examples)g(I'll)f(test)i(for)f(are)h(partial)e
(redundancy)j(eliminatio)o(n,)0 648 y(lo)q(op)d(unswitc)o(hing,)g(and)h
(the)h(p)q(ossibilit)o(y)d(of)h(hoisting)g(en)o(tire)i(in)o(v)n(arian)o
(t)d(con)o(trol)i(structures)i(out)e(of)f(lo)q(ops.)-150
711 y Fm(33a)96 b Fk(h)p Fw(Ev)n(aluation)16 b(driv)o(ers)p
Fk(i)c(\021)104 758 y Fl({)143 803 y(int)18 b(ok;)143
849 y(puts\("Code)e(motion"\);)143 895 y Fk(h)p Fw(Co)q(de)d(motion)h
Fm(33c,)g Fj(:)5 b(:)h(:)g Fk(i)104 940 y Fl(})p Fi(3)0
997 y Fh(See)11 b(3c,)g Fm(11a,)i(18a,)g(26a,)h(40a)p
Fh(.)0 1109 y Fp(6.1)70 b(In)n(v)l(arian)n(t)24 b(Expressions)0
1200 y Ft([18)o(])0 1313 y Fo(6.1.1)55 b(D)n(A)n(Gs)0
1390 y Ft(b)q(oth)12 b(of)g(these)i(examples)d(could)h(b)q(e)h(done)f
(via)g(cloning)f(follo)o(w)o(ed)g(b)o(y)g(v)n(alue)h(n)o(um)o(b)q
(ering)f(\(or)h(some)g(other)g(form)f(of)g(simple)0 1440
y(redundancy)k(elimination\))0 1544 y Fs(The)h(Protot)o(ypi)o(cal)d
(Case)-150 1606 y Fm(33b)98 b Fl("motion.c")o Fk(\021)104
1653 y Fl(void)18 b(motion_te)o(st1)o(\(i)o(nt)e(*data\))104
1698 y({)143 1744 y(int)i(i;)143 1790 y(if)h(\(data[1]\))182
1835 y(i)g(=)h(data[0])d(+)i(data[3];)143 1881 y(else)f({)182
1927 y(data[data[)o(2]])e(=)j(2;)182 1972 y(i)g(=)h(5;)143
2018 y(})143 2064 y(data[3])d(=)i(data[0])e(+)i(data[3];)143
2109 y(data[4])e(=)i(i;)104 2155 y(})104 2201 y Fi(3)1258
1653 y Fl(void)f(motion_re)o(sul)o(t1)o(\(in)o(t)f(*data\))1258
1698 y({)1297 1744 y(int)h(i;)1297 1790 y(int)g(j;)1297
1835 y(if)h(\(data[1]\))d({)1336 1881 y(j)j(=)h(data[0])d(+)i(data[3];)
1336 1927 y(i)g(=)h(j;)1297 1972 y(})1297 2018 y(else)e({)1336
2064 y(data[data[)o(2]])e(=)j(2;)1336 2109 y(i)g(=)h(5;)1336
2155 y(j)f(=)h(data[0])d(+)i(data[3];)1297 2201 y(})1297
2246 y(data[4])e(=)i(j;)1297 2292 y(data[5])e(=)i(i;)1258
2338 y(})1258 2383 y Fi(3)0 2440 y Fh(See)11 b Fm(34ac,)i(35ac,)h
(36ac,)g(37ac,)g(38ac)p Fh(.)-150 2503 y Fm(33c)98 b
Fk(h)p Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104 2549
y Fl({)143 2595 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
2640 y(ok)f(=)g(test\(1,)e(motion_res)o(ul)o(t1,)f(motion_te)o(st1)o(,)
g(data,)i(1,)h("DAGs"\);)104 2686 y(})p Fi(3)0 2743 y
Fh(See)11 b(33a,)f Fm(34b)n(d,)k(35b)n(d,)g(36b)n(d,)g(37b)n(d,)g(38b)n
(d)p Fh(.)954 2874 y Ft(33)p eop
%%Page: 34 39
34 38 bop 0 91 a Fs(Edge)16 b(Placemen)o(t)-150 153 y
Fm(34a)96 b Fl("motion.c")o Fk(\021)104 199 y Fl(void)18
b(motion_te)o(st2)o(\(i)o(nt)e(*data\))104 245 y({)143
291 y(int)i(j;)143 336 y(int)g(i)i(=)f(1;)143 382 y(if)g(\(data[1]\))d
({)182 428 y(data[data[)o(2]])g(=)j(2;)182 473 y(j)g(=)h(data[0])d(+)i
(data[3];)182 519 y(i)g(=)h(i)f(+)g(j;)143 565 y(})143
610 y(data[4])e(=)i(data[0])e(+)i(data[3];)143 656 y(data[5])e(=)i(i;)
104 702 y(})104 747 y Fi(3)1258 199 y Fl(void)f(motion_re)o(sul)o(t2)o
(\(in)o(t)f(*data\))1258 245 y({)1297 291 y(int)h(j;)1297
336 y(int)g(i)i(=)f(1;)1297 382 y(if)g(\(data[1]\))d({)1336
428 y(data[data[)o(2]])g(=)j(2;)1336 473 y(j)g(=)h(data[0])d(+)i
(data[3];)1336 519 y(i)g(=)h(i)f(+)g(j;)1297 565 y(})1297
610 y(else)1336 656 y(j)g(=)h(data[0])d(+)i(data[3];)1297
702 y(data[4])e(=)i(j;)1297 747 y(data[5])e(=)i(i;)1258
793 y(})1258 839 y Fi(3)0 896 y Fh(See)11 b Fm(33b,)i(34c,)h(35ac,)g
(36ac,)f(37ac,)h(38ac)p Fh(.)-150 976 y Fm(34b)98 b Fk(h)p
Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104 1022 y Fl({)143
1068 y(int)18 b(data[6])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
1114 y(ok)f(=)g(test\(ok,)e(motion_re)o(su)o(lt2)o(,)f(motion_test)o
(2,)g(data,)i(2,)h("DAGs)e(\(edge)h(placement)o(\)"\))o(;)104
1159 y(})p Fi(3)0 1217 y Fh(See)11 b(33a,)f Fm(33c,)k(34d,)f(35b)n(d,)h
(36b)n(d,)g(37b)n(d,)g(38b)n(d)p Fh(.)0 1320 y Fo(6.1.2)55
b(Lo)r(ops)-150 1383 y Fm(34c)98 b Fl("motion.c")o Fk(\021)104
1430 y Fl(void)18 b(motion_te)o(st3)o(\(i)o(nt)e(*data\))104
1475 y({)143 1521 y(int)i(i)i(=)f(0;)143 1566 y(int)f(k)i(=)f(data[2];)
143 1612 y(int)f(j)i(=)f(data[0];)143 1658 y(do)182 1703
y(i)g(=)h(21)f(*)g(j)g(+)g(i)g(+)h(1;)143 1749 y(while)e(\(i)h(<)g
(k\);)143 1795 y(data[4])e(=)i(i;)104 1840 y(})104 1886
y Fi(3)1258 1430 y Fl(void)f(motion_re)o(sul)o(t3)o(\(in)o(t)f(*data\))
1258 1475 y({)1297 1521 y(int)h(i)i(=)f(0;)1297 1566
y(int)f(k)i(=)f(data[2];)1297 1612 y(int)f(j)i(=)f(21)g(*)g(data[0];)
1297 1658 y(do)1336 1703 y(i)g(=)h(j)f(+)g(i)g(+)h(1;)1297
1749 y(while)e(\(i)h(<)g(k\);)1297 1795 y(data[4])e(=)i(i;)1258
1840 y(})1258 1886 y Fi(3)0 1944 y Fh(See)11 b Fm(33b,)i(34a,)h(35ac,)f
(36ac,)h(37ac,)g(38ac)p Fh(.)-150 2024 y Fm(34d)96 b
Fk(h)p Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104 2070
y Fl({)143 2116 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
2161 y(ok)f(=)g(test\(1,)e(motion_res)o(ul)o(t3,)f(motion_te)o(st3)o(,)
g(data,)i(3,)h("loops"\);)104 2207 y(})p Fi(3)0 2264
y Fh(See)11 b(33a,)f Fm(33c,)k(34b,)f(35b)n(d,)h(36b)n(d,)g(37b)n(d,)g
(38b)n(d)p Fh(.)0 2348 y Ft(See)h(if)e(they're)h(smart)f(enough)h(to)g
(hoist)g(a)f(divide)h(\(in)f(this)h(case,)h(a)e(safe)h(mo)o(v)o(e\).)
954 2874 y(34)p eop
%%Page: 35 40
35 39 bop -150 73 a Fm(35a)96 b Fl("motion.c")o Fk(\021)104
119 y Fl(void)18 b(motion_te)o(st4)o(\(i)o(nt)e(*data\))104
164 y({)143 210 y(int)i(i)i(=)f(0;)143 256 y(int)f(j)i(=)f(data[2];)143
301 y(do)g({)182 347 y(data[i])e(=)i(2)h(/)f(j)g(+)g(i)h(-)f(1;)182
393 y(i++;)143 438 y(})g(while)f(\(i)h(<)g(data[2]\);)104
484 y(})104 530 y Fi(3)1258 119 y Fl(void)f(motion_re)o(sul)o(t4)o
(\(in)o(t)f(*data\))1258 164 y({)1297 210 y(int)h(i)i(=)f(0;)1297
256 y(int)f(j)i(=)f(2)g(/)g(data[2];)1297 301 y(do)g({)1336
347 y(data[i])e(=)i(j)h(+)f(i)g(-)g(1;)1336 393 y(i++;)1297
438 y(})g(while)f(\(i)h(<)g(data[2]\);)1258 484 y(})1258
530 y Fi(3)0 587 y Fh(See)11 b Fm(33b,)i(34ac,)h(35c,)g(36ac,)f(37ac,)h
(38ac)p Fh(.)-150 667 y Fm(35b)98 b Fk(h)p Fw(Co)q(de)13
b(motion)p Fk(i)f(\021)104 714 y Fl({)143 759 y(int)18
b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143 805 y(\(void\))d
(test\(ok,)g(motion_re)o(sul)o(t4)o(,)g(motion_te)o(st)o(4,)f(data,)i
(4,)h("loops)e(\(hoisting)f(divide\)"\);)104 851 y(})p
Fi(3)0 908 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35d,)f(36b)n(d,)h
(37b)n(d,)g(38b)n(d)p Fh(.)0 1006 y Fs(Irreducible)e(Lo)q(ops)-150
1068 y Fm(35c)98 b Fl("motion.c")o Fk(\021)104 1114 y
Fl(void)18 b(motion_te)o(st5)o(\(i)o(nt)e(*data\))104
1159 y({)143 1205 y(int)i(i)i(=)f(0;)143 1251 y(int)f(j)i(=)f(data[0];)
143 1296 y(if)g(\(data[1]\))182 1342 y(goto)f(here;)143
1388 y(j)h(=)g(data[3])e(+)j(j;)143 1433 y(do)f({)182
1479 y(i++;)104 1525 y(here:)182 1570 y(data[i])e(=)i(21)g(*)g(j)h(+)f
(i;)143 1616 y(})g(while)f(\(i)h(<)g(data[2]\);)104 1662
y(})104 1707 y Fi(3)1258 1114 y Fl(void)f(motion_re)o(sul)o(t5)o(\(in)o
(t)f(*data\))1258 1159 y({)1297 1205 y(int)h(i)i(=)f(0;)1297
1251 y(int)f(j)i(=)f(data[0];)1297 1296 y(if)g(\(data[1]\))d({)1336
1342 y(j)j(=)h(j)f(*)g(21;)1336 1388 y(goto)f(here;)1297
1433 y(})1297 1479 y(j)h(=)g(data[3])e(+)j(j;)1297 1525
y(j)f(=)g(j)h(*)f(21;)1297 1570 y(do)g({)1336 1616 y(i++;)1258
1662 y(here:)1336 1707 y(data[i])e(=)i(j)h(+)f(i;)1297
1753 y(})g(while)f(\(i)h(<)g(data[2]\);)1258 1799 y(})1258
1844 y Fi(3)0 1902 y Fh(See)11 b Fm(33b,)i(34ac,)h(35a,)f(36ac,)h
(37ac,)g(38ac)p Fh(.)-150 1982 y Fm(35d)96 b Fk(h)p Fw(Co)q(de)13
b(motion)p Fk(i)f(\021)104 2028 y Fl({)143 2074 y(int)18
b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143 2119 y(\(void\))d
(test\(ok,)g(motion_re)o(sul)o(t5)o(,)g(motion_te)o(st)o(5,)f(data,)i
(5,)h("irreduci)o(ble)d(loops"\);)104 2165 y(})p Fi(3)0
2223 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b,)f(36b)n(d,)h(37b)n
(d,)g(38b)n(d)p Fh(.)954 2874 y Ft(35)p eop
%%Page: 36 41
36 40 bop 0 91 a Fo(6.1.3)55 b(Reasso)r(ciation)-150
145 y Fm(36a)96 b Fl("motion.c")o Fk(\021)104 191 y Fl(void)18
b(motion_te)o(st6)o(\(i)o(nt)e(*data\))104 237 y({)143
283 y(int)i(j)i(=)f(data[1];)143 328 y(int)f(k)i(=)f(data[2];)143
374 y(int)f(i)i(=)f(data[0];)143 420 y(int)f(n)i(=)f(data[3];)143
465 y(do)182 511 y(i)g(=)h(j)f(+)g(i)g(+)h(k;)143 557
y(while)e(\(i)h(<)g(n\);)143 602 y(data[4])e(=)i(i;)104
648 y(})104 694 y Fi(3)1258 191 y Fl(void)f(motion_re)o(sul)o(t6)o
(\(in)o(t)f(*data\))1258 237 y({)1297 283 y(int)h(j)i(=)f(data[1];)1297
328 y(int)f(k)i(=)f(data[2];)1297 374 y(int)f(i)i(=)f(data[0];)1297
420 y(int)f(n)i(=)f(data[3];)1297 465 y(int)f(m)i(=)f(j)g(+)g(k;)1297
511 y(do)1336 557 y(i)g(=)h(m)f(+)g(i;)1297 602 y(while)f(\(i)h(<)g
(n\);)1297 648 y(data[4])e(=)i(i;)1258 694 y(})1258 739
y Fi(3)0 797 y Fh(See)11 b Fm(33b,)i(34ac,)h(35ac,)g(36c,)f(37ac,)h
(38ac)p Fh(.)-150 877 y Fm(36b)98 b Fk(h)p Fw(Co)q(de)13
b(motion)p Fk(i)f(\021)104 923 y Fl({)143 969 y(int)18
b(data[5])f(=)j({)f(0,)g(1,)g(0,)f(3)i(};)143 1014 y(\(void\))d
(test\(ok,)g(motion_re)o(sul)o(t6)o(,)g(motion_te)o(st)o(6,)f(data,)i
(6,)h("reassoci)o(ati)o(on)o("\);)104 1060 y(})p Fi(3)0
1118 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g(36d,)f(37b)n
(d,)h(38b)n(d)p Fh(.)0 1215 y Fs(Aggressiv)o(e)g(Co)q(de)i(Motion)0
1292 y Ft(mo)o(ving)11 b(an)j(expression)h(on)o(to)e(a)h(path)g(where)h
(it)e(ma)o(y)f(not)i(ha)o(v)o(e)g(b)q(een)h(executed,)g(p)q(ossibly)f
(slo)o(wing)e(the)j(co)q(de.)-150 1368 y Fm(36c)98 b
Fl("motion.c")o Fk(\021)104 1414 y Fl(void)18 b(motion_te)o(st7)o(\(i)o
(nt)e(*data\))104 1460 y({)143 1506 y(int)i(i)i(=)f(data[1];)143
1551 y(int)f(j)i(=)f(data[0];)143 1597 y(do)g({)182 1643
y(if)g(\(i)g(&)g(1\))g(data[data[)o(2])o(])e(=)i(21)g(*)g(j)g(+)g(i;)
182 1688 y(i++;)143 1734 y(})g(while)f(\(i)h(<)g(data[3]\);)104
1780 y(})104 1825 y Fi(3)1121 1414 y Fl(void)f(motion_r)o(esu)o(lt7)o
(\(i)o(nt)e(*data\))1121 1460 y({)1160 1506 y(int)i(i)h(=)h(data[1];)
1160 1551 y(int)e(j)h(=)h(data[0])d(*)i(21;)1160 1597
y(do)g({)1199 1643 y(if)g(\(i)g(&)g(1\))g(data[data)o([2)o(]])d(=)k(j)f
(+)g(i;)1199 1688 y(i++;)1160 1734 y(})g(while)f(\(i)g(<)i(data[3]\);)
1121 1780 y(})1121 1825 y Fi(3)0 1883 y Fh(See)11 b Fm(33b,)i(34ac,)h
(35ac,)g(36a,)f(37ac,)h(38ac)p Fh(.)-150 1963 y Fm(36d)96
b Fk(h)p Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104 2009
y Fl({)143 2055 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(4,)f(10)h(};)143
2101 y(ok)g(=)g(!test\(1,)e(motion_re)o(su)o(lt7)o(,)f(motion_test)o
(7,)g(data,)i(7,)h("aggress)o(ive)o("\);)104 2146 y(})p
Fi(3)0 2204 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g(36b,)f
(37b)n(d,)h(38b)n(d)p Fh(.)954 2874 y Ft(36)p eop
%%Page: 37 42
37 41 bop 0 91 a Fs(Lo)q(op)15 b(Rotation)-150 153 y
Fm(37a)96 b Fl("motion.c")o Fk(\021)104 199 y Fl(void)18
b(motion_te)o(st8)o(\(i)o(nt)e(*data\))104 245 y({)143
291 y(int)i(i)i(=)f(0;)143 336 y(int)f(j)i(=)f(data[0];)143
382 y(while)f(\(i)h(<)g(data[2]\))d({)182 428 y(data[i])h(=)i(21)g(*)g
(j)h(+)f(i;)182 473 y(i++;)143 519 y(})104 565 y(})104
610 y Fi(3)1258 199 y Fl(void)f(motion_re)o(sul)o(t8)o(\(in)o(t)f
(*data\))1258 245 y({)1297 291 y(int)h(i)i(=)f(0;)1297
336 y(int)f(j)i(=)f(data[0];)1297 382 y(if)g(\(i)g(<)g(data[2]\))d({)
1336 428 y(j)j(=)h(j)f(*)g(21;)1336 473 y(do)g({)1375
519 y(data[i])e(=)j(j)f(+)g(i;)1375 565 y(i++;)1336 610
y(})g(while)f(\(i)h(<)g(data[2]\);)1297 656 y(})1258
702 y(})1258 747 y Fi(3)0 805 y Fh(See)11 b Fm(33b,)i(34ac,)h(35ac,)g
(36ac,)f(37c,)h(38ac)p Fh(.)0 886 y Ft(If)h(they're)h(doing)e
(aggressiv)o(e)h(co)q(de)h(motion,)d(then)j(w)o(e)f(w)o(on't)g(b)q(e)h
(able)e(to)h(distinguish)g(the)h(conserv)n(ativ)o(e)f(approac)o(h)h(of)
0 936 y(using)e(lo)q(op)f(rotation.)-150 1017 y Fm(37b)98
b Fk(h)p Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104 1064
y Fl({)143 1109 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143
1155 y(\(void\))d(test\(ok,)g(motion_re)o(sul)o(t8)o(,)g(motion_te)o
(st)o(8,)f(data,)i(8,)h("loop)e(rotation"\);)104 1201
y(})p Fi(3)0 1258 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g
(36b)n(d,)f(37d,)h(38b)n(d)p Fh(.)0 1339 y Ft(The)k(test)h(ab)q(o)o(v)o
(e)f(migh)o(t)e(ha)o(v)o(e)i(b)q(een)h(handled)f(b)o(y)g(the)g(fron)o
(t)g(end)g(simply)e(translating)i(the)g Fg(while)f Ft(lo)q(op)g(in)o
(to)h(an)f Fg(if)0 1389 y Ft(con)o(taining)d(a)h Fg(do-while)f
Ft(\(whic)o(h)h(I)h(think)f(of)g(as)g(the)h(correct)h(approac)o(h\).)23
b(Here)16 b(w)o(e)g(try)g(the)g(same)e(test,)j(but)e(using)g(a)0
1439 y(lo)q(op)e(built)g(with)h Fg(goto)f Ft(statemen)o(ts.)-150
1516 y Fm(37c)98 b Fl("motion.c")o Fk(\021)104 1562 y
Fl(void)18 b(motion_te)o(st9)o(\(i)o(nt)e(*data\))104
1608 y({)143 1654 y(int)i(i)i(=)f(0;)143 1699 y(int)f(j)i(=)f(data[0];)
104 1745 y(loop:)143 1791 y(if)g(\(i)g(>=)g(data[2]\))d(return;)182
1836 y(data[i])h(=)i(21)g(*)g(j)h(+)f(i;)182 1882 y(i++;)182
1928 y(goto)f(loop;)104 1973 y(})104 2019 y Fi(3)1258
1562 y Fl(void)g(motion_re)o(sul)o(t9)o(\(in)o(t)f(*data\))1258
1608 y({)1297 1654 y(int)h(i)i(=)f(0;)1297 1699 y(int)f(j)i(=)f
(data[0];)1297 1745 y(if)g(\(i)g(>=)g(data[2]\))d(return;)1297
1791 y(j)j(=)g(j)h(*)f(21;)1258 1836 y(loop:)1336 1882
y(data[i])e(=)i(j)h(+)f(i;)1336 1928 y(i++;)1297 1973
y(if)g(\(i)g(<)g(data[2]\))d(goto)j(loop;)1258 2019 y(})1258
2065 y Fi(3)0 2122 y Fh(See)11 b Fm(33b,)i(34ac,)h(35ac,)g(36ac,)f
(37a,)h(38ac)p Fh(.)-150 2202 y Fm(37d)96 b Fk(h)p Fw(Co)q(de)13
b(motion)p Fk(i)f(\021)104 2249 y Fl({)143 2294 y(int)18
b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(3)i(};)143 2340 y(\(void\))d
(test\(ok,)g(motion_re)o(sul)o(t9)o(,)g(motion_te)o(st)o(9,)f(data,)i
(9,)h("loop)e(rotation"\);)104 2386 y(})p Fi(3)0 2443
y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g(36b)n(d,)f(37b,)h
(38b)n(d)p Fh(.)0 2558 y Fp(6.2)70 b(In)n(v)l(arian)n(t)24
b(Con)n(trol)e(Flo)n(w)0 2657 y Fo(6.2.1)55 b(Hoisting)18
b(In)n(v)m(arian)n(t)h(Con)n(trol)g(Flo)n(w)0 2734 y
Ft([14)o(].)f(Hmmm)n(.)d(This)f(one)g(could)g(also)f(b)q(e)i(done)f
(via)f(lo)q(op)g(unswitc)o(hing.)954 2874 y(37)p eop
%%Page: 38 43
38 42 bop -150 73 a Fm(38a)96 b Fl("motion.c")o Fk(\021)104
119 y Fl(void)18 b(motion_te)o(st1)o(0\()o(int)e(*data\))104
164 y({)143 210 y(int)i(j;)143 256 y(int)g(p)i(=)f(data[1];)143
301 y(int)f(i)i(=)f(data[0];)143 347 y(do)g({)182 393
y(if)g(\(p\))221 438 y(j)h(=)f(1;)182 484 y(else)221
530 y(j)h(=)f(2;)182 575 y(i)g(=)h(i)f(+)g(j;)182 621
y(data[data[)o(2]])d(=)j(2;)143 667 y(})g(while)f(\(i)h(<)g(data[3]\);)
104 712 y(})104 758 y Fi(3)1238 119 y Fl(void)f(motion_res)o(ult)o(10)o
(\(in)o(t)f(*data\))1238 164 y({)1277 210 y(int)i(j;)1277
256 y(int)g(p)g(=)g(data[1];)1277 301 y(int)g(i)g(=)g(data[0];)1277
347 y(if)g(\(p\))1317 393 y(j)g(=)g(1;)1277 438 y(else)1317
484 y(j)g(=)g(2;)1277 530 y(do)g({)1317 575 y(i)g(=)g(i)g(+)h(j;)1317
621 y(data[data)o([2)o(]])c(=)j(2;)1277 667 y(})h(while)d(\(i)i(<)g
(data[3]\);)1238 712 y(})1238 758 y Fi(3)0 816 y Fh(See)11
b Fm(33b,)i(34ac,)h(35ac,)g(36ac,)f(37ac,)h(38c)p Fh(.)-150
896 y Fm(38b)98 b Fk(h)p Fw(Co)q(de)13 b(motion)p Fk(i)f(\021)104
988 y Fl({)143 1033 y(int)18 b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(10)h
(};)143 1079 y(\(void\))e(test\(ok,)g(motion_re)o(sul)o(t1)o(0,)f
(motion_tes)o(t10)o(,)g(data,)i(10,)h("invarian)o(t)d(control)h
(structures)o("\);)104 1125 y(})p Fi(3)0 1182 y Fh(See)11
b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g(36b)n(d,)f(37b)n(d,)h(38d)p
Fh(.)0 1285 y Fo(6.2.2)55 b(Lo)r(op)18 b(Unswitc)n(hing)0
1362 y Ft([2)o(])62 1412 y(opp)q(ortunit)o(y)12 b(arises)i(when)f
(using)f(nested)i(DO)e(lo)q(ops)g(in)g(F)m(ortran)h(77)e(and)i
(sometimes)d(with)j(nested)h Fg(for)d Ft(lo)q(ops)h(in)g(C.)-150
1488 y Fm(38c)98 b Fl("motion.c")o Fk(\021)104 1535 y
Fl(void)18 b(motion_te)o(st1)o(1\()o(int)e(*data\))104
1580 y({)143 1626 y(int)i(p)i(=)f(data[1];)143 1672 y(int)f(i)i(=)f
(data[0];)143 1717 y(do)g({)182 1763 y(if)g(\(p\))221
1809 y(i)h(=)f(i)g(+)g(1;)182 1854 y(else)221 1900 y(i)h(=)f(i)g(+)g
(2;)182 1946 y(data[data[)o(2]])d(=)j(2;)143 1991 y(})g(while)f(\(i)h
(<)g(data[3]\);)104 2037 y(})104 2083 y Fi(3)1238 1535
y Fl(void)f(motion_res)o(ult)o(11)o(\(in)o(t)f(*data\))1238
1580 y({)1277 1626 y(int)i(p)g(=)g(data[1];)1277 1672
y(int)g(i)g(=)g(data[0];)1277 1717 y(if)g(\(p\))1317
1763 y(do)f({)1356 1809 y(i)h(=)g(i)h(+)f(1;)1356 1854
y(data[data)o([2])o(])d(=)k(2;)1317 1900 y(})f(while)f(\(i)g(<)i
(data[3]\);)1277 1946 y(else)1317 1991 y(do)e({)1356
2037 y(i)h(=)g(i)h(+)f(2;)1356 2083 y(data[data)o([2])o(])d(=)k(2;)1317
2128 y(})f(while)f(\(i)g(<)i(data[3]\);)1238 2174 y(})1238
2219 y Fi(3)0 2277 y Fh(See)11 b Fm(33b,)i(34ac,)h(35ac,)g(36ac,)f
(37ac,)h(38a)p Fh(.)-150 2357 y Fm(38d)96 b Fk(h)p Fw(Co)q(de)13
b(motion)p Fk(i)f(\021)104 2403 y Fl({)143 2449 y(int)18
b(data[5])f(=)j({)f(0,)g(1,)g(2,)f(10)h(};)143 2495 y(\(void\))e
(test\(ok,)g(motion_re)o(sul)o(t1)o(1,)f(motion_tes)o(t11)o(,)g(data,)i
(11,)h("loop)e(unswitchin)o(g"\))o(;)104 2540 y(})p Fi(3)0
2598 y Fh(See)11 b(33a,)f Fm(33c,)k(34b)n(d,)g(35b)n(d,)g(36b)n(d,)f
(37b)n(d,)h(38b)p Fh(.)954 2874 y Ft(38)p eop
%%Page: 39 44
39 43 bop 0 91 a Fp(6.3)70 b(Protot)n(yp)r(es)-150 176
y Fm(39)114 b Fk(h)p Fw(Protot)o(yp)q(es)p Fk(i)12 b(\021)104
222 y Fl(extern)17 b(void)h(motion_tes)o(t1\()o(in)o(t)f(*\);)104
268 y(extern)g(void)h(motion_tes)o(t2\()o(in)o(t)f(*\);)104
314 y(extern)g(void)h(motion_tes)o(t3\()o(in)o(t)f(*\);)104
359 y(extern)g(void)h(motion_tes)o(t4\()o(in)o(t)f(*\);)104
405 y(extern)g(void)h(motion_tes)o(t5\()o(in)o(t)f(*\);)104
451 y(extern)g(void)h(motion_tes)o(t6\()o(in)o(t)f(*\);)104
496 y(extern)g(void)h(motion_tes)o(t7\()o(in)o(t)f(*\);)104
542 y(extern)g(void)h(motion_tes)o(t8\()o(in)o(t)f(*\);)104
588 y(extern)g(void)h(motion_tes)o(t9\()o(in)o(t)f(*\);)104
633 y(extern)g(void)h(motion_tes)o(t10)o(\(i)o(nt)e(*\);)104
679 y(extern)h(void)h(motion_tes)o(t11)o(\(i)o(nt)e(*\);)104
725 y Fi(3)1160 222 y Fl(extern)h(void)h(motion_res)o(ul)o(t1\()o(int)e
(*\);)1160 268 y(extern)h(void)h(motion_res)o(ul)o(t2\()o(int)e(*\);)
1160 314 y(extern)h(void)h(motion_res)o(ul)o(t3\()o(int)e(*\);)1160
359 y(extern)h(void)h(motion_res)o(ul)o(t4\()o(int)e(*\);)1160
405 y(extern)h(void)h(motion_res)o(ul)o(t5\()o(int)e(*\);)1160
451 y(extern)h(void)h(motion_res)o(ul)o(t6\()o(int)e(*\);)1160
496 y(extern)h(void)h(motion_res)o(ul)o(t7\()o(int)e(*\);)1160
542 y(extern)h(void)h(motion_res)o(ul)o(t8\()o(int)e(*\);)1160
588 y(extern)h(void)h(motion_res)o(ul)o(t9\()o(int)e(*\);)1160
633 y(extern)h(void)h(motion_res)o(ul)o(t10)o(\(in)o(t)e(*\);)1160
679 y(extern)h(void)h(motion_res)o(ul)o(t11)o(\(in)o(t)e(*\);)1160
725 y Fi(3)0 782 y Fh(See)11 b(3b,)g Fm(4,)h(7b,)i(8e,)f(17,)g(25,)g
(32b,)h(45c)p Fh(.)954 2874 y Ft(39)p eop
%%Page: 40 45
40 44 bop 0 257 a Fu(Chapter)34 b(7)0 423 y(Strength)h(Reduction)0
598 y Ft([10)o(,)10 b(3])62 648 y([9])j(and)h(other)g(v)o(ersions)h
(based)f(on)g(partial)f(redundancy)i(eliminatio)o(n)c(are)k(w)o(eak)o
(er)62 697 y(linear)g(function)f(test)i(replacemen)o(t,)e(o)q(dd)h
(induction)f(v)n(ariables,)g(con)o(trol)g(\015o)o(w)h(in)f(lo)q(op,)g
(goto)g(lo)q(ops,)g(nested)i(lo)q(ops,)0 747 y(irreducible)e(lo)q(ops,)
f(reduction)i(of)e(mo)q(d,)f(div,)h(etc.)62 797 y(straigh)o(t-line)g
(co)q(de,)i(lo)q(op)e(in)o(v)n(arian)o(ts)f(\(vs.)19
b(constan)o(ts\))-150 881 y Fm(40a)96 b Fk(h)p Fw(Ev)n(aluation)16
b(driv)o(ers)p Fk(i)c(\021)104 927 y Fl({)143 973 y(int)18
b(ok;)143 1019 y(puts\("Stre)o(ng)o(th)e(reduction")o(\);)143
1064 y Fk(h)p Fw(Strength)e(reduction)h Fm(40c,)e Fj(:)6
b(:)g(:)f Fk(i)104 1110 y Fl(})p Fi(3)0 1167 y Fh(See)11
b(3c,)g Fm(11a,)i(18a,)g(26a,)h(33a)p Fh(.)0 1282 y Fp(7.1)70
b(Induction)22 b(V)-6 b(ariable)22 b(and)i(Constan)n(t)0
1373 y Ft(T)m(esting)15 b(a)f Fg(while)g Ft(lo)q(op)g(migh)o(t)e(also)i
(b)q(e)i(in)o(teresting;)f(ho)o(w)o(ev)o(er,)g(the)g(prop)q(er)h(metho)
q(d)e(of)g(handling)g(them)g(w)o(ould)g(b)q(e)h(to)0
1422 y(p)q(erform)e(lo)q(op)g(rotation)g(\014rst,)i(whic)o(h)e(is)h
(already)g(co)o(v)o(ered)h(elsewhere.)-150 1499 y Fm(40b)98
b Fl("strength.)o(c")o Fk(\021)104 1545 y Fl(void)18
b(strength_)o(tes)o(t1)o(\(in)o(t)f(*data\))104 1591
y({)143 1637 y(int)h(i)i(=)f(0;)143 1682 y(do)g({)182
1728 y(data[data[)o(2]])d(=)j(2;)182 1774 y(i)g(=)h(i)f(+)g(1;)143
1819 y(})g(while)f(\(i)h(*)g(21)g(<)g(data[1]\);)104
1865 y(})104 1911 y Fi(3)1219 1545 y Fl(void)f(strength_)o(re)o(sul)o
(t1)o(\(in)o(t)f(*data\))1219 1591 y({)1258 1637 y(int)h(i)h(=)h(0;)
1258 1682 y(do)f({)1297 1728 y(data[data[)o(2])o(])e(=)i(2;)1297
1774 y(i)g(=)g(i)h(+)f(21;)1258 1819 y(})g(while)f(\(i)h(<)g
(data[1]\);)1219 1865 y(})1219 1911 y Fi(3)0 1968 y Fh(See)11
b Fm(41ac,)i(42ac,)h(43ac,)g(44ac,)g(45a)p Fh(.)-150
2048 y Fm(40c)98 b Fk(h)p Fw(Strength)14 b(reduction)p
Fk(i)e(\021)104 2094 y Fl({)143 2140 y(int)18 b(data[3])f(=)j({)f(0,)g
(22,)f(2)h(};)143 2186 y(ok)g(=)g(test\(1,)e(strength_r)o(es)o(ult)o
(1,)f(strength_t)o(es)o(t1,)g(data,)i(1,)g("iv)h(*)g(constant"\))o(;)
104 2231 y(})p Fi(3)0 2289 y Fh(See)11 b(40a,)f Fm(41b)n(d,)k(42b)n(d,)
g(43b)n(d,)g(44b)n(d,)g(45b)p Fh(.)954 2874 y Ft(40)p
eop
%%Page: 41 46
41 45 bop 0 91 a Fp(7.2)70 b(Induction)22 b(V)-6 b(ariable)22
b(and)i(Region)e(Constan)n(t)-150 171 y Fm(41a)96 b Fl("strength.)o(c")
o Fk(\021)104 217 y Fl(void)18 b(strength_)o(tes)o(t2)o(\(in)o(t)f
(*data\))104 263 y({)143 309 y(int)h(k)i(=)f(data[0];)143
354 y(int)f(i)i(=)f(0;)143 400 y(do)g({)182 446 y(data[data[)o(2]])d(=)
j(2;)182 491 y(i)g(=)h(i)f(+)g(1;)143 537 y(})g(while)f(\(i)h(*)g(k)g
(<)g(data[1]\);)104 583 y(})104 628 y Fi(3)1219 217 y
Fl(void)f(strength_)o(re)o(sul)o(t2)o(\(in)o(t)f(*data\))1219
263 y({)1258 309 y(int)h(k)h(=)h(data[0];)1258 354 y(int)e(i)h(=)h(0;)
1258 400 y(do)f({)1297 446 y(data[data[)o(2])o(])e(=)i(2;)1297
491 y(i)g(=)g(i)h(+)f(k;)1258 537 y(})g(while)f(\(i)h(<)g(data[1]\);)
1219 583 y(})1219 628 y Fi(3)0 686 y Fh(See)11 b Fm(40b,)i(41c,)h
(42ac,)g(43ac,)f(44ac,)h(45a)p Fh(.)-150 766 y Fm(41b)98
b Fk(h)p Fw(Strength)14 b(reduction)p Fk(i)e(\021)104
812 y Fl({)143 858 y(int)18 b(data[3])f(=)j({)f(1,)g(3,)g(2)g(};)143
903 y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t2,)f(strength_)o
(tes)o(t2)o(,)h(data,)g(2,)i("iv)g(*)g(rc"\);)104 949
y(})p Fi(3)0 1007 y Fh(See)11 b(40a,)f Fm(40c,)k(41d,)f(42b)n(d,)h(43b)
n(d,)g(44b)n(d,)g(45b)p Fh(.)0 1121 y Fp(7.3)70 b(Multiplying)20
b(Tw)n(o)j(Induction)f(V)-6 b(ariables)-150 1201 y Fm(41c)98
b Fl("strength.)o(c")o Fk(\021)104 1247 y Fl(void)18
b(strength_)o(tes)o(t3)o(\(in)o(t)f(*data\))104 1293
y({)143 1338 y(int)h(i)i(=)f(data[0];)143 1384 y(int)f(j)i(=)f
(data[1];)143 1430 y(do)g({)182 1475 y(data[data[)o(2]])d(=)j(2;)182
1521 y(i)g(=)h(i)f(+)g(1;)182 1567 y(j)g(=)h(j)f(+)g(1;)143
1612 y(})g(while)f(\(i)h(*)g(j)g(<)g(data[3]\);)104 1658
y(})104 1704 y Fi(3)1219 1247 y Fl(void)f(strength_)o(re)o(sul)o(t3)o
(\(in)o(t)f(*data\))1219 1293 y({)1258 1338 y(int)h(i)h(=)h(data[0];)
1258 1384 y(int)e(j)h(=)h(data[1];)1258 1430 y(int)e(k)h(=)h(i)f(*)g
(j;)1258 1475 y(do)g({)1297 1521 y(data[data[)o(2])o(])e(=)i(2;)1297
1567 y(i)g(=)g(i)h(+)f(1;)1297 1612 y(k)g(=)g(k)h(+)f(j;)1297
1658 y(j)g(=)g(j)h(+)f(1;)1297 1704 y(k)g(=)g(k)h(+)f(i;)1258
1749 y(})g(while)f(\(k)h(<)g(data[3]\);)1219 1795 y(})1219
1841 y Fi(3)0 1898 y Fh(See)11 b Fm(40b,)i(41a,)h(42ac,)f(43ac,)h
(44ac,)g(45a)p Fh(.)-150 1978 y Fm(41d)96 b Fk(h)p Fw(Strength)14
b(reduction)p Fk(i)e(\021)104 2025 y Fl({)143 2070 y(int)18
b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(100)h(};)143 2116
y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t3,)f(strength_)o(tes)o
(t3)o(,)h(data,)g(3,)i("iv)g(*)g(iv"\);)104 2162 y(})p
Fi(3)0 2219 y Fh(See)11 b(40a,)f Fm(40c,)k(41b,)f(42b)n(d,)h(43b)n(d,)g
(44b)n(d,)g(45b)p Fh(.)954 2874 y Ft(41)p eop
%%Page: 42 47
42 46 bop 0 91 a Fp(7.4)70 b(Irreducible)21 b(Lo)r(ops)-150
171 y Fm(42a)96 b Fl("strength.)o(c")o Fk(\021)104 217
y Fl(void)18 b(strength_)o(tes)o(t4)o(\(in)o(t)f(*data\))104
263 y({)143 309 y(int)h(i;)143 354 y(if)h(\(data[1]\))d({)182
400 y(i)j(=)h(2;)182 446 y(goto)e(here;)143 491 y(})143
537 y(i)h(=)g(0;)143 583 y(do)g({)182 628 y(i)g(=)h(i)f(+)g(1;)104
674 y(here:)182 720 y(data[data[)o(2]])d(=)j(2;)143 765
y(})g(while)f(\(i)h(*)g(21)g(<)g(data[3]\);)104 811 y(})104
856 y Fi(3)1219 217 y Fl(void)f(strength_)o(re)o(sul)o(t4)o(\(in)o(t)f
(*data\))1219 263 y({)1258 309 y(int)h(i;)1258 354 y(if)h(\(data[1]\))d
({)1297 400 y(i)j(=)g(42;)1297 446 y(goto)f(here;)1258
491 y(})1258 537 y(i)h(=)g(0;)1258 583 y(do)g({)1297
628 y(i)g(=)g(i)h(+)f(21;)1219 674 y(here:)1297 720 y(data[data[)o(2])o
(])e(=)i(2;)1258 765 y(})g(while)f(\(i)h(<)g(data[3]\);)1219
811 y(})1219 856 y Fi(3)0 914 y Fh(See)11 b Fm(40b,)i(41ac,)h(42c,)g
(43ac,)f(44ac,)h(45a)p Fh(.)-150 994 y Fm(42b)98 b Fk(h)p
Fw(Strength)14 b(reduction)p Fk(i)e(\021)104 1040 y Fl({)143
1086 y(int)18 b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(100)h(};)143
1132 y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t4,)f(strength_)o
(tes)o(t4)o(,)h(data,)g(4,)i("irreducib)o(le)d(loop"\);)104
1177 y(})p Fi(3)0 1235 y Fh(See)11 b(40a,)f Fm(40c,)k(41b)n(d,)g(42d,)f
(43b)n(d,)h(44b)n(d,)g(45b)p Fh(.)0 1349 y Fp(7.5)70
b(Con)n(trol)22 b(Flo)n(w)h(in)f(the)g(Lo)r(op)-150 1429
y Fm(42c)98 b Fl("strength.)o(c")o Fk(\021)104 1475 y
Fl(void)18 b(strength_)o(tes)o(t5)o(\(in)o(t)f(*data\))104
1521 y({)143 1567 y(int)h(i)i(=)f(0;)143 1612 y(while)f(\(1\))g({)182
1658 y(i)h(=)h(i)f(+)g(1;)182 1704 y(if)g(\(data[1])e(&&)h(i)i(*)f(21)g
(>)g(data[3]\))221 1749 y(break;)182 1795 y(data[data[)o(2]])d(=)j(2;)
143 1841 y(})104 1886 y(})104 1932 y Fi(3)1219 1475 y
Fl(void)f(strength_)o(re)o(sul)o(t5)o(\(in)o(t)f(*data\))1219
1521 y({)1258 1567 y(int)h(i)h(=)h(0;)1258 1612 y(while)d(\(1\))i({)
1297 1658 y(i)g(=)g(i)h(+)f(21;)1297 1704 y(if)g(\(data[1])d(&&)j(i)g
(>)h(data[3]\))1336 1749 y(break;)1297 1795 y(data[data[)o(2])o(])d(=)i
(2;)1258 1841 y(})1219 1886 y(})1219 1932 y Fi(3)0 1990
y Fh(See)11 b Fm(40b,)i(41ac,)h(42a,)f(43ac,)h(44ac,)g(45a)p
Fh(.)-150 2070 y Fm(42d)96 b Fk(h)p Fw(Strength)14 b(reduction)p
Fk(i)e(\021)104 2116 y Fl({)143 2162 y(int)18 b(data[4])f(=)j({)f(0,)g
(1,)g(2,)f(100)h(};)143 2207 y(\(void\))e(test\(ok,)g(strength_)o(res)o
(ul)o(t5,)f(strength_)o(tes)o(t5)o(,)h(data,)g(5,)i("control)e(flow)h
(in)h(loop"\);)104 2253 y(})p Fi(3)0 2310 y Fh(See)11
b(40a,)f Fm(40c,)k(41b)n(d,)g(42b,)f(43b)n(d,)h(44b)n(d,)g(45b)p
Fh(.)0 2425 y Fp(7.6)70 b(More)23 b(Complex)e(Induction)i(V)-6
b(ariables)0 2516 y Ft(There)15 b(are)f(man)o(y)e(p)q(ossibilities)i
([24)o(].)j(I'm)12 b(only)h(co)o(v)o(ering)h(a)f(few)h(cases.)954
2874 y(42)p eop
%%Page: 43 48
43 47 bop 0 91 a Fo(7.6.1)55 b(Incremen)n(t)17 b(b)n(y)i(a)g(Region)e
(Constan)n(t)-150 155 y Fm(43a)96 b Fl("strength.)o(c")o
Fk(\021)104 201 y Fl(void)18 b(strength_)o(tes)o(t6)o(\(in)o(t)f
(*data\))104 247 y({)143 292 y(int)h(j)i(=)f(data[0];)143
338 y(int)f(i)i(=)f(data[1];)143 384 y(do)g({)182 429
y(data[data[)o(2]])d(=)j(2;)182 475 y(i)g(=)h(i)f(+)g(j;)143
521 y(})g(while)f(\(i)h(*)g(21)g(<)g(data[3]\);)104 566
y(})104 612 y Fi(3)1219 201 y Fl(void)f(strength_)o(re)o(sul)o(t6)o
(\(in)o(t)f(*data\))1219 247 y({)1258 292 y(int)h(j)h(=)h(data[0])d(*)i
(21;)1258 338 y(int)f(i)h(=)h(data[1])d(*)i(21;)1258
384 y(do)g({)1297 429 y(data[data[)o(2])o(])e(=)i(2;)1297
475 y(i)g(=)g(i)h(+)f(j;)1258 521 y(})g(while)f(\(i)h(<)g(data[3]\);)
1219 566 y(})1219 612 y Fi(3)0 669 y Fh(See)11 b Fm(40b,)i(41ac,)h
(42ac,)g(43c,)f(44ac,)h(45a)p Fh(.)-150 750 y Fm(43b)98
b Fk(h)p Fw(Strength)14 b(reduction)p Fk(i)e(\021)104
796 y Fl({)143 841 y(int)18 b(data[4])f(=)j({)f(1,)g(1,)g(2,)f(100)h
(};)143 887 y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t6,)f
(strength_)o(tes)o(t6)o(,)h(data,)g(6,)i("inc)f(by)h(rc"\);)104
933 y(})p Fi(3)0 990 y Fh(See)11 b(40a,)f Fm(40c,)k(41b)n(d,)g(42b)n
(d,)g(43d,)f(44b)n(d,)h(45b)p Fh(.)0 1094 y Fo(7.6.2)55
b(Monotonic)19 b(Induction)f(V)-5 b(ariables)-150 1147
y Fm(43c)98 b Fl("strength.)o(c")o Fk(\021)104 1194 y
Fl(void)18 b(strength_)o(tes)o(t7)o(\(in)o(t)f(*data\))104
1239 y({)143 1285 y(int)h(i)i(=)f(0;)143 1331 y(do)g({)182
1376 y(if)g(\(data[1]\))221 1422 y(i)h(=)f(i)g(+)g(1;)182
1468 y(else)221 1513 y(i)h(=)f(i)g(+)g(2;)182 1559 y(data[data[)o(2]])d
(=)j(2;)143 1604 y(})g(while)f(\(i)h(*)g(21)g(<)g(data[3]\);)104
1650 y(})104 1696 y Fi(3)1219 1194 y Fl(void)f(strength_)o(re)o(sul)o
(t7)o(\(in)o(t)f(*data\))1219 1239 y({)1258 1285 y(int)h(i)h(=)h(0;)
1258 1331 y(do)f({)1297 1376 y(if)g(\(data[1]\))1336
1422 y(i)g(=)h(i)f(+)g(21;)1297 1468 y(else)1336 1513
y(i)g(=)h(i)f(+)g(42;)1297 1559 y(data[data[)o(2])o(])e(=)i(2;)1258
1604 y(})g(while)f(\(i)h(<)g(data[3]\);)1219 1650 y(})1219
1696 y Fi(3)0 1753 y Fh(See)11 b Fm(40b,)i(41ac,)h(42ac,)g(43a,)f
(44ac,)h(45a)p Fh(.)-150 1833 y Fm(43d)96 b Fk(h)p Fw(Strength)14
b(reduction)p Fk(i)e(\021)104 1880 y Fl({)143 1925 y(int)18
b(data[4])f(=)j({)f(0,)g(1,)g(2,)f(100)h(};)143 1971
y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t7,)f(strength_)o(tes)o
(t7)o(,)h(data,)g(7,)i("monotonic)d(iv"\);)104 2017 y(})p
Fi(3)0 2074 y Fh(See)11 b(40a,)f Fm(40c,)k(41b)n(d,)g(42b)n(d,)g(43b,)f
(44b)n(d,)h(45b)p Fh(.)954 2874 y Ft(43)p eop
%%Page: 44 49
44 48 bop 0 91 a Fo(7.6.3)55 b(Mutual)19 b(Induction)f(V)-5
b(ariables)-150 145 y Fm(44a)96 b Fl("strength.)o(c")o
Fk(\021)104 191 y Fl(void)18 b(strength_)o(tes)o(t8)o(\(in)o(t)f
(*data\))104 237 y({)143 283 y(int)h(i)i(=)f(0;)143 328
y(do)g({)182 374 y(int)g(j)g(=)g(i)g(+)h(1;)182 420 y(data[data[)o(2]])
c(=)j(j;)182 465 y(i)g(=)h(j)f(+)g(1;)143 511 y(})g(while)f(\(i)h(*)g
(21)g(<)g(data[3]\);)104 557 y(})104 602 y Fi(3)1219
191 y Fl(void)f(strength_)o(re)o(sul)o(t8)o(\(in)o(t)f(*data\))1219
237 y({)1258 283 y(int)h(i)h(=)h(0;)1258 328 y(int)e(n)h(=)h(0;)1258
374 y(do)f({)1297 420 y(int)f(j)i(=)f(i)g(+)g(1;)1297
465 y(n)g(=)g(n)h(+)f(21;)1297 511 y(data[data[)o(2])o(])e(=)i(j;)1297
557 y(i)g(=)g(j)h(+)f(1;)1297 602 y(n)g(=)g(n)h(+)f(21;)1258
648 y(})g(while)f(\(n)h(<)g(data[3]\);)1219 694 y(})1219
739 y Fi(3)0 797 y Fh(See)11 b Fm(40b,)i(41ac,)h(42ac,)g(43ac,)f(44c,)h
(45a)p Fh(.)-150 877 y Fm(44b)98 b Fk(h)p Fw(Strength)14
b(reduction)p Fk(i)e(\021)104 923 y Fl({)143 969 y(int)18
b(data[4])f(=)j({)f(0,)g(1,)g(1,)f(100)h(};)143 1014
y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t8,)f(strength_)o(tes)o
(t8)o(,)h(data,)g(8,)i("mutual)e(iv's"\);)104 1060 y(})p
Fi(3)0 1118 y Fh(See)11 b(40a,)f Fm(40c,)k(41b)n(d,)g(42b)n(d,)g(43b)n
(d,)f(44d,)h(45b)p Fh(.)0 1232 y Fp(7.7)70 b(Multiple)20
b(Strides)-150 1312 y Fm(44c)98 b Fl("strength.)o(c")o
Fk(\021)104 1358 y Fl(void)18 b(strength_)o(tes)o(t9)o(\(in)o(t)f
(*data\))104 1404 y({)143 1449 y(int)h(i)i(=)f(0;)143
1495 y(do)g({)182 1541 y(data[data[)o(2]])d(=)j(i;)182
1586 y(i)g(=)h(i)f(+)g(1;)143 1632 y(})g(while)f(\(i)h(*)g(21)g(<)g
(data[3]\);)104 1678 y(})104 1723 y Fi(3)1219 1358 y
Fl(void)f(strength_)o(re)o(sul)o(t9)o(\(in)o(t)f(*data\))1219
1404 y({)1258 1449 y(int)h(i)h(=)h(0;)1258 1495 y(int)e(j)h(=)h(0;)1258
1541 y(do)f({)1297 1586 y(data[data[)o(2])o(])e(=)i(i;)1297
1632 y(i)g(=)g(i)h(+)f(1;)1297 1678 y(j)g(=)g(j)h(+)f(21;)1258
1723 y(})g(while)f(\(j)h(<)g(data[3]\);)1219 1769 y(})1219
1815 y Fi(3)0 1872 y Fh(See)11 b Fm(40b,)i(41ac,)h(42ac,)g(43ac,)f
(44a,)h(45a)p Fh(.)-150 1952 y Fm(44d)96 b Fk(h)p Fw(Strength)14
b(reduction)p Fk(i)e(\021)104 1999 y Fl({)143 2044 y(int)18
b(data[4])f(=)j({)f(0,)g(1,)g(1,)f(100)h(};)143 2090
y(\(void\))e(test\(ok,)g(strength_)o(res)o(ul)o(t9,)f(strength_)o(tes)o
(t9)o(,)h(data,)g(9,)i("multiple)d(strides"\);)104 2136
y(})p Fi(3)0 2193 y Fh(See)11 b(40a,)f Fm(40c,)k(41b)n(d,)g(42b)n(d,)g
(43b)n(d,)f(44b,)h(45b)p Fh(.)954 2874 y Ft(44)p eop
%%Page: 45 50
45 49 bop 0 91 a Fp(7.8)70 b(Linear)22 b(F)-6 b(unction)23
b(T)-6 b(est)22 b(Replacemen)n(t)-150 171 y Fm(45a)96
b Fl("strength.)o(c")o Fk(\021)104 217 y Fl(void)18 b(strength_)o(tes)o
(t1)o(0\(i)o(nt)e(*data\))104 263 y({)143 309 y(int)i(stop)h(=)g
(data[3];)143 354 y(int)f(i)i(=)f(0;)143 400 y(do)g({)182
446 y(data[data[)o(2]])d(=)j(21)g(*)g(i;)182 491 y(i)g(=)h(i)f(+)g(1;)
143 537 y(})g(while)f(\(i)h(<)g(stop\);)104 583 y(})104
628 y Fi(3)1199 217 y Fl(void)f(strength_r)o(es)o(ult)o(10)o(\(in)o(t)f
(*data\))1199 263 y({)1238 309 y(int)i(stop)f(=)h(data[3])e(*)i(21;)
1238 354 y(int)g(i)g(=)g(0;)1238 400 y(do)g({)1277 446
y(data[data[2)o(]])d(=)j(i;)1277 491 y(i)h(=)f(i)g(+)g(21;)1238
537 y(})g(while)f(\(i)h(<)g(stop\);)1199 583 y(})1199
628 y Fi(3)0 686 y Fh(See)11 b Fm(40b,)i(41ac,)h(42ac,)g(43ac,)f(44ac)p
Fh(.)-150 766 y Fm(45b)98 b Fk(h)p Fw(Strength)14 b(reduction)p
Fk(i)e(\021)104 812 y Fl({)143 858 y(int)18 b(data[4])f(=)j({)f(0,)g
(1,)g(1,)f(20)h(};)143 903 y(\(void\))e(test\(ok,)g(strength_)o(res)o
(ul)o(t10)o(,)f(strength_te)o(st)o(10,)g(data,)i(10,)g("test)g
(replaceme)o(nt)o("\);)104 949 y(})p Fi(3)0 1007 y Fh(See)11
b(40a,)f Fm(40c,)k(41b)n(d,)g(42b)n(d,)g(43b)n(d,)f(44b)n(d)p
Fh(.)0 1121 y Fp(7.9)70 b(Protot)n(yp)r(es)-150 1206
y Fm(45c)98 b Fk(h)p Fw(Protot)o(yp)q(es)p Fk(i)12 b(\021)104
1252 y Fl(extern)17 b(void)h(strength_t)o(est)o(1\()o(int)e(*\);)104
1297 y(extern)h(void)h(strength_t)o(est)o(2\()o(int)e(*\);)104
1343 y(extern)h(void)h(strength_t)o(est)o(3\()o(int)e(*\);)104
1389 y(extern)h(void)h(strength_t)o(est)o(4\()o(int)e(*\);)104
1434 y(extern)h(void)h(strength_t)o(est)o(5\()o(int)e(*\);)104
1480 y(extern)h(void)h(strength_t)o(est)o(6\()o(int)e(*\);)104
1526 y(extern)h(void)h(strength_t)o(est)o(7\()o(int)e(*\);)104
1571 y(extern)h(void)h(strength_t)o(est)o(8\()o(int)e(*\);)104
1617 y(extern)h(void)h(strength_t)o(est)o(9\()o(int)e(*\);)104
1663 y(extern)h(void)h(strength_t)o(est)o(10)o(\(in)o(t)e(*\);)104
1708 y Fi(3)1121 1252 y Fl(extern)h(void)h(strength_)o(res)o(ul)o(t1\()
o(int)e(*\);)1121 1297 y(extern)h(void)h(strength_)o(res)o(ul)o(t2\()o
(int)e(*\);)1121 1343 y(extern)h(void)h(strength_)o(res)o(ul)o(t3\()o
(int)e(*\);)1121 1389 y(extern)h(void)h(strength_)o(res)o(ul)o(t4\()o
(int)e(*\);)1121 1434 y(extern)h(void)h(strength_)o(res)o(ul)o(t5\()o
(int)e(*\);)1121 1480 y(extern)h(void)h(strength_)o(res)o(ul)o(t6\()o
(int)e(*\);)1121 1526 y(extern)h(void)h(strength_)o(res)o(ul)o(t7\()o
(int)e(*\);)1121 1571 y(extern)h(void)h(strength_)o(res)o(ul)o(t8\()o
(int)e(*\);)1121 1617 y(extern)h(void)h(strength_)o(res)o(ul)o(t9\()o
(int)e(*\);)1121 1663 y(extern)h(void)h(strength_)o(res)o(ul)o(t10)o
(\(in)o(t)e(*\);)1121 1708 y Fi(3)0 1766 y Fh(See)11
b(3b,)g Fm(4,)h(7b,)i(8e,)f(17,)g(25,)g(32b,)h(39)p Fh(.)954
2874 y Ft(45)p eop
%%Page: 46 51
46 50 bop 0 257 a Fu(App)s(endix)34 b(A)0 423 y(Indices)0
623 y Fp(A.1)69 b(Files)0 709 y Fl("cprop.c")9 b Fb(18b,)k(19ac)n(e,)e
(20b)n(d,)h(21ac,)g(22ac)n(e,)g(23b)n(d,)g(24a)p Fw(.)0
755 y Fl("dead.c")e Fb(11b,)i(12ac,)g(13ac,)g(14ac,)g(15ac,)g(16ac)p
Fw(.)0 801 y Fl("global.h")d Fb(3a)p Fw(.)0 846 y Fl("main.c")h
Fb(3b)n(c,)i(6b,)h(8c)n(d,)f(9e,)h(10)p Fw(.)0 892 y
Fl("motion.c")c Fb(33b,)j(34ac,)g(35ac,)g(36ac,)g(37ac,)g(38ac)p
Fw(.)0 938 y Fl("strength.)o(c")d Fb(40b,)j(41ac,)g(42ac,)g(43ac,)g
(44ac,)g(45a)p Fw(.)0 983 y Fl("valnum.c")d Fb(26b)n(d,)j(27b)n(d,)g
(28ac,)g(29ac,)g(30b)n(d,)g(31ac)p Fw(.)0 1121 y Fp(A.2)69
b(Macros)0 1207 y Fk(h)p Fw(Analyze)14 b(timing)h(results)p
Fk(i)f Fw(6b,)f Fb(7c)p Fw(.)0 1253 y Fk(h)p Fw(Chec)o(k)g(for)g
(exceptionally)j(noisy)f(data)p Fk(i)e Fw(7c,)g Fb(8a)p
Fw(.)0 1299 y Fk(h)p Fw(Co)q(de)g(motion)p Fk(i)h Fw(33a,)f
Fb(33c,)g(34b)n(d,)f(35b)n(d,)g(36b)n(d,)g(37b)n(d,)f(38b)n(d)p
Fw(.)0 1344 y Fk(h)p Fw(Constan)o(t)i(propagation)p Fk(i)j
Fw(18a,)d Fb(18c,)f(19b)n(d,)g(20ac)n(e,)g(21b)n(d,)g(22b)n(d,)g(23ac)n
(e,)f(24b)p Fw(.)0 1390 y Fk(h)p Fw(Constan)o(ts)p Fk(i)j
Fw(3b,)f Fb(7ad)p Fw(.)0 1436 y Fk(h)p Fw(Dead)h(co)q(de)f(eliminatio)q
(n)p Fk(i)j Fw(11a,)d Fb(11c,)f(12b)n(d,)g(13b)n(d,)g(14b)n(d,)g(15b)n
(d,)g(16b)n(d)p Fw(.)0 1481 y Fk(h)p Fw(Ev)n(aluation)k(driv)o(ers)p
Fk(i)e Fw(3c,)e Fb(11a,)h(18a,)f(26a,)g(33a,)h(40a)p
Fw(.)0 1527 y Fk(h)p Fw(Include)h(\014les)p Fk(i)g Fw(3a,)f
Fb(3d,)g(6a,)g(9a)p Fw(.)0 1573 y Fk(h)p Fw(Initialize)p
Fk(i)j Fw(3c,)d Fb(9c)p Fw(.)0 1618 y Fk(h)p Fw(Mak)o(e)g(sure)h
Fl(clock\(\))c Fw(w)o(orks)j(on)g(this)h(system)p Fk(i)f
Fw(9c,)g Fb(9d)p Fw(.)0 1664 y Fk(h)p Fw(Prin)o(t)h(times)f(and)h
(statistical)h(measures)p Fk(i)f Fw(8a,)f Fb(8b)p Fw(.)0
1710 y Fk(h)p Fw(Protot)o(yp)q(es)p Fk(i)h Fw(3b,)f Fb(4,)g(7b,)g(8e,)f
(17,)h(25,)g(32b,)f(39,)h(45c)p Fw(.)0 1755 y Fk(h)p
Fw(Strength)h(reduction)p Fk(i)h Fw(40a,)e Fb(40c,)f(41b)n(d,)g(42b)n
(d,)g(43b)n(d,)g(44b)n(d,)g(45b)p Fw(.)0 1801 y Fk(h)p
Fw(T)o(yp)q(es)p Fk(i)h Fw(3a,)g Fb(3e)p Fw(.)0 1847
y Fk(h)p Fw(V)m(alue)h(n)o(um)o(b)q(ering)p Fk(i)h Fw(26a,)e
Fb(26c,)f(27ac)n(e,)g(28b)n(d,)g(29b,)g(30ac)n(e,)f(31b,)i(32a)p
Fw(.)0 1892 y Fk(h)p Fw(V)m(ariables)p Fk(i)i Fw(3b,)e
Fb(9b)p Fw(.)0 2030 y Fp(A.3)69 b(Iden)n(ti\014ers)0
2116 y Fl(clock)p Fw(:)15 b Fb(9a,)d Fw(9cde,)h(10.)0
2162 y Fl(CLOCKS_PER)o(_S)o(EC)p Fw(:)c(7a,)k Fb(9a,)f
Fw(9ce,)g(10.)0 2208 y Fl(clock_t)p Fw(:)i Fb(9a,)e Fw(9b)q(ce,)h(10.)0
2253 y Fl(collect_ti)o(mi)o(ngs)o Fw(:)h(6b,)f Fb(7b,)g(10)p
Fw(.)0 2299 y Fl(cprop_resu)o(lt)o(1)p Fw(:)h Fb(18b,)d
Fw(18c,)i(25.)0 2345 y Fl(cprop_resu)o(lt)o(10)p Fw(:)g
Fb(22c,)f Fw(22d,)h(25.)0 2390 y Fl(cprop_resu)o(lt)o(11)p
Fw(:)g Fb(22e,)f Fw(23a,)h(25.)0 2436 y Fl(cprop_resu)o(lt)o(12)p
Fw(:)g Fb(23b,)f Fw(23c,)h(25.)0 2482 y Fl(cprop_resu)o(lt)o(13)p
Fw(:)g Fb(23d,)f Fw(23e,)h(25.)0 2527 y Fl(cprop_resu)o(lt)o(14)p
Fw(:)g Fb(24a,)f Fw(24b,)h(25.)0 2573 y Fl(cprop_resu)o(lt)o(2)p
Fw(:)h Fb(19a,)d Fw(19b,)i(25.)0 2619 y Fl(cprop_resu)o(lt)o(3)p
Fw(:)h Fb(19c,)d Fw(19d,)i(25.)0 2664 y Fl(cprop_resu)o(lt)o(4)p
Fw(:)h Fb(19e,)d Fw(20a,)i(25.)0 2710 y Fl(cprop_resu)o(lt)o(5)p
Fw(:)h Fb(20b,)d Fw(20c,)i(25.)954 2874 y Ft(46)p eop
%%Page: 47 52
47 51 bop 0 91 a Fl(cprop_resu)o(lt)o(6)p Fw(:)14 b Fb(20d,)d
Fw(20e,)i(25.)0 137 y Fl(cprop_resu)o(lt)o(7)p Fw(:)h
Fb(21a,)d Fw(21b,)i(25.)0 183 y Fl(cprop_resu)o(lt)o(8)p
Fw(:)h Fb(21c,)d Fw(21d,)i(25.)0 228 y Fl(cprop_resu)o(lt)o(9)p
Fw(:)h Fb(22a,)d Fw(22b,)i(25.)0 274 y Fl(cprop_test)o(1)p
Fw(:)g Fb(18b,)f Fw(18c,)h(25.)0 320 y Fl(cprop_test)o(10)o
Fw(:)h Fb(22c,)e Fw(22d,)h(25.)0 365 y Fl(cprop_test)o(11)o
Fw(:)h Fb(22e,)e Fw(23a,)h(25.)0 411 y Fl(cprop_test)o(13)o
Fw(:)h Fb(23d,)d Fw(23e,)i(25.)0 457 y Fl(cprop_test)o(14)o
Fw(:)h Fb(24a,)d Fw(24b,)j(25.)0 502 y Fl(cprop_test)o(2)p
Fw(:)f Fb(19a,)f Fw(19b,)h(25.)0 548 y Fl(cprop_test)o(3)p
Fw(:)g Fb(19c,)f Fw(19d,)h(25.)0 594 y Fl(cprop_test)o(4)p
Fw(:)g Fb(19e,)f Fw(20a,)h(25.)0 639 y Fl(cprop_test)o(5)p
Fw(:)g Fb(20b,)f Fw(20c,)h(25.)0 685 y Fl(cprop_test)o(6)p
Fw(:)g Fb(20d,)f Fw(20e,)h(25.)0 731 y Fl(cprop_test)o(7)p
Fw(:)g Fb(21a,)f Fw(21b,)h(25.)0 776 y Fl(cprop_test)o(8)p
Fw(:)g Fb(21c,)f Fw(21d,)h(25.)0 822 y Fl(cprop_test)o(9)p
Fw(:)g Fb(22a,)f Fw(22b,)h(25.)0 868 y Fl(CUTOFF)p Fw(:)d(7c,)j
Fb(7d)p Fw(.)0 913 y Fl(dead_resul)o(t1)o Fw(:)h Fb(11b,)e
Fw(11c,)g(17.)0 959 y Fl(dead_resul)o(t1)o(0)p Fw(:)i
Fb(16a,)d Fw(16b,)i(17.)0 1005 y Fl(dead_resul)o(t1)o(1)p
Fw(:)h Fb(16c,)d Fw(16d,)i(17.)0 1050 y Fl(dead_resul)o(t2)o
Fw(:)h Fb(12a,)d Fw(12b,)j(17.)0 1096 y Fl(dead_resul)o(t3)o
Fw(:)g Fb(12c,)e Fw(12d,)h(17.)0 1142 y Fl(dead_resul)o(t4)o
Fw(:)h Fb(13a,)d Fw(13b,)j(17.)0 1187 y Fl(dead_resul)o(t5)o
Fw(:)g Fb(13c,)e Fw(13d,)h(17.)0 1233 y Fl(dead_resul)o(t6)o
Fw(:)h Fb(14a,)d Fw(14b,)j(17.)0 1279 y Fl(dead_resul)o(t7)o
Fw(:)g Fb(14c,)e Fw(14d,)h(17.)0 1324 y Fl(dead_resul)o(t8)o
Fw(:)h Fb(15a,)d Fw(15b,)j(17.)0 1370 y Fl(dead_resul)o(t9)o
Fw(:)g Fb(15c,)e Fw(15d,)h(17.)0 1416 y Fl(dead_test1)o
Fw(:)h Fb(11b,)d Fw(11c,)i(17.)0 1461 y Fl(dead_test1)o(0)p
Fw(:)g Fb(16a,)f Fw(16b,)h(17.)0 1507 y Fl(dead_test1)o(1)p
Fw(:)g Fb(16c,)f Fw(16d,)h(17.)0 1553 y Fl(dead_test2)o
Fw(:)h Fb(12a,)d Fw(12b,)i(17.)0 1598 y Fl(dead_test3)o
Fw(:)h Fb(12c,)d Fw(12d,)i(17.)0 1644 y Fl(dead_test4)o
Fw(:)h Fb(13a,)d Fw(13b,)i(17.)0 1689 y Fl(dead_test5)o
Fw(:)h Fb(13c,)d Fw(13d,)i(17.)0 1735 y Fl(dead_test6)o
Fw(:)h Fb(14a,)d Fw(14b,)i(17.)0 1781 y Fl(dead_test7)o
Fw(:)h Fb(14c,)d Fw(14d,)i(17.)0 1826 y Fl(dead_test8)o
Fw(:)h Fb(15a,)d Fw(15b,)i(17.)0 1872 y Fl(dead_test9)o
Fw(:)h Fb(15c,)d Fw(15d,)i(17.)0 1918 y Fl(determine_)o(it)o(era)o(ti)o
(ons)o Fw(:)h(6b,)f Fb(7b,)g(9e)p Fw(.)0 1963 y Fl(exit)p
Fw(:)i(3c,)e Fb(3d,)f Fw(9d.)0 2009 y Fl(fabs)p Fw(:)j
Fb(6a,)d Fw(7c.)0 2055 y Fl(fputs)p Fw(:)j Fb(3d,)d Fw(9d.)0
2100 y Fl(FunPar)p Fw(:)i Fb(3e,)e Fw(4,)h(6b,)g(7b,)g(9e,)g(10.)0
2146 y Fl(main)p Fw(:)i Fb(3c)p Fw(.)0 2192 y Fl(mean)p
Fw(:)g(7c,)e Fb(8de)p Fw(.)0 2237 y Fl(motion_res)o(ul)o(t1)p
Fw(:)g Fb(33b,)f Fw(33c,)h(39.)0 2283 y Fl(motion_res)o(ul)o(t10)o
Fw(:)h Fb(38a,)d Fw(38b,)j(39.)0 2329 y Fl(motion_res)o(ul)o(t11)o
Fw(:)g Fb(38c,)d Fw(38d,)j(39.)0 2374 y Fl(motion_res)o(ul)o(t2)p
Fw(:)f Fb(34a,)f Fw(34b,)h(39.)0 2420 y Fl(motion_res)o(ul)o(t3)p
Fw(:)g Fb(34c,)f Fw(34d,)h(39.)0 2466 y Fl(motion_res)o(ul)o(t4)p
Fw(:)g Fb(35a,)f Fw(35b,)h(39.)0 2511 y Fl(motion_res)o(ul)o(t5)p
Fw(:)g Fb(35c,)f Fw(35d,)h(39.)0 2557 y Fl(motion_res)o(ul)o(t6)p
Fw(:)g Fb(36a,)f Fw(36b,)h(39.)0 2603 y Fl(motion_res)o(ul)o(t7)p
Fw(:)g Fb(36c,)f Fw(36d,)h(39.)0 2648 y Fl(motion_res)o(ul)o(t8)p
Fw(:)g Fb(37a,)f Fw(37b,)h(39.)0 2694 y Fl(motion_res)o(ul)o(t9)p
Fw(:)g Fb(37c,)f Fw(37d,)h(39.)0 2740 y Fl(motion_tes)o(t1)o
Fw(:)h Fb(33b,)e Fw(33c,)g(39.)954 2874 y Ft(47)p eop
%%Page: 48 53
48 52 bop 0 91 a Fl(motion_tes)o(t1)o(0)p Fw(:)14 b Fb(38a,)d
Fw(38b,)i(39.)0 137 y Fl(motion_tes)o(t1)o(1)p Fw(:)h
Fb(38c,)d Fw(38d,)i(39.)0 183 y Fl(motion_tes)o(t2)o
Fw(:)h Fb(34a,)d Fw(34b,)j(39.)0 228 y Fl(motion_tes)o(t3)o
Fw(:)g Fb(34c,)e Fw(34d,)h(39.)0 274 y Fl(motion_tes)o(t4)o
Fw(:)h Fb(35a,)d Fw(35b,)j(39.)0 320 y Fl(motion_tes)o(t5)o
Fw(:)g Fb(35c,)e Fw(35d,)h(39.)0 365 y Fl(motion_tes)o(t6)o
Fw(:)h Fb(36a,)d Fw(36b,)j(39.)0 411 y Fl(motion_tes)o(t7)o
Fw(:)g Fb(36c,)e Fw(36d,)h(39.)0 457 y Fl(motion_tes)o(t8)o
Fw(:)h Fb(37a,)d Fw(37b,)j(39.)0 502 y Fl(motion_tes)o(t9)o
Fw(:)g Fb(37c,)e Fw(37d,)h(39.)0 548 y Fl(noisy)p Fw(:)i(7c,)e(8a,)f
Fb(8c)p Fw(.)0 594 y Fl(printf)p Fw(:)i Fb(3d,)e Fw(6b,)h(8b,)g(9c.)0
639 y Fl(puts)p Fw(:)i(3c,)e Fb(3d,)f Fw(6b,)h(7c,)f(8ab,)i(11a,)f
(18a,)g(26a,)g(33a,)g(40a.)0 685 y Fl(SAMPLES)p Fw(:)d(6b,)j
Fb(7a,)f Fw(7c,)g(8b)q(d,)i(10.)0 731 y Fl(sqrt)p Fw(:)h
Fb(6a,)d Fw(7c,)h(8b)q(c.)0 776 y Fl(stderr)p Fw(:)h
Fb(3d,)e Fw(9d.)0 822 y Fl(strength_r)o(es)o(ult)o(1)p
Fw(:)i Fb(40b,)d Fw(40c,)i(45c.)0 868 y Fl(strength_r)o(es)o(ult)o(10)o
Fw(:)h Fb(45a,)e Fw(45b)q(c.)0 913 y Fl(strength_r)o(es)o(ult)o(2)p
Fw(:)i Fb(41a,)d Fw(41b,)i(45c.)0 959 y Fl(strength_r)o(es)o(ult)o(3)p
Fw(:)h Fb(41c,)d Fw(41d,)i(45c.)0 1005 y Fl(strength_r)o(es)o(ult)o(4)p
Fw(:)h Fb(42a,)d Fw(42b,)i(45c.)0 1050 y Fl(strength_r)o(es)o(ult)o(5)p
Fw(:)h Fb(42c,)d Fw(42d,)i(45c.)0 1096 y Fl(strength_r)o(es)o(ult)o(6)p
Fw(:)h Fb(43a,)d Fw(43b,)i(45c.)0 1142 y Fl(strength_r)o(es)o(ult)o(7)p
Fw(:)h Fb(43c,)d Fw(43d,)i(45c.)0 1187 y Fl(strength_r)o(es)o(ult)o(8)p
Fw(:)h Fb(44a,)d Fw(44b,)i(45c.)0 1233 y Fl(strength_r)o(es)o(ult)o(9)p
Fw(:)h Fb(44c,)d Fw(44d,)i(45c.)0 1279 y Fl(strength_t)o(es)o(t1)p
Fw(:)g Fb(40b,)f Fw(40c,)h(45c.)0 1324 y Fl(strength_t)o(es)o(t10)o
Fw(:)h Fb(45a,)d Fw(45b)q(c.)0 1370 y Fl(strength_t)o(es)o(t2)p
Fw(:)i Fb(41a,)f Fw(41b,)h(45c.)0 1416 y Fl(strength_t)o(es)o(t3)p
Fw(:)g Fb(41c,)f Fw(41d,)h(45c.)0 1461 y Fl(strength_t)o(es)o(t4)p
Fw(:)g Fb(42a,)f Fw(42b,)h(45c.)0 1507 y Fl(strength_t)o(es)o(t5)p
Fw(:)g Fb(42c,)f Fw(42d,)h(45c.)0 1553 y Fl(strength_t)o(es)o(t6)p
Fw(:)g Fb(43a,)f Fw(43b,)h(45c.)0 1598 y Fl(strength_t)o(es)o(t7)p
Fw(:)g Fb(43c,)f Fw(43d,)h(45c.)0 1644 y Fl(strength_t)o(es)o(t8)p
Fw(:)g Fb(44a,)f Fw(44b,)h(45c.)0 1689 y Fl(strength_t)o(es)o(t9)p
Fw(:)g Fb(44c,)f Fw(44d,)h(45c.)0 1735 y Fl(test)p Fw(:)i
Fb(4,)e(6b,)e Fw(7c,)h(11c,)h(12b)q(d,)g(13b)q(d,)g(14b)q(d,)g(15b)q
(d,)g(16b)q(d,)g(18c,)g(19b)q(d,)g(20ace,)g(21b)q(d,)g(22b)q(d,)g
(23ace,)g(24b,)f(26c,)h(27ace,)f(28b)q(d,)i(29b,)104
1781 y(30ace,)f(31b,)g(32a,)g(33c,)g(34b)q(d,)h(35b)q(d,)f(36b)q(d,)h
(37b)q(d,)g(38b)q(d,)f(40c,)g(41b)q(d,)h(42b)q(d,)f(43b)q(d,)h(44b)q
(d,)f(45b.)0 1826 y Fl(ticks_per_)o(se)o(c)p Fw(:)h(8c,)e
Fb(9b,)g Fw(9ce.)0 1872 y Fl(variance)p Fw(:)i(7c,)e(8c,)h
Fb(8de)p Fw(.)0 1918 y Fl(vnum_resul)o(t1)o Fw(:)h Fb(26b,)e
Fw(26c,)g(32b.)0 1963 y Fl(vnum_resul)o(t1)o(0)p Fw(:)i
Fb(30d,)d Fw(30e,)i(32b.)0 2009 y Fl(vnum_resul)o(t1)o(1)p
Fw(:)h Fb(31a,)d Fw(31b,)i(32b.)0 2055 y Fl(vnum_resul)o(t1)o(2)p
Fw(:)h Fb(31c,)d Fw(32ab.)0 2100 y Fl(vnum_resul)o(t2)o
Fw(:)j Fb(26d,)d Fw(27a,)j(32b.)0 2146 y Fl(vnum_resul)o(t3)o
Fw(:)g Fb(27b,)e Fw(27c,)g(32b.)0 2192 y Fl(vnum_resul)o(t4)o
Fw(:)i Fb(27d,)d Fw(27e.)0 2237 y Fl(vnum_resul)o(t5)o
Fw(:)j Fb(28a,)d Fw(28b,)j(32b.)0 2283 y Fl(vnum_resul)o(t6)o
Fw(:)g Fb(28c,)e Fw(28d,)h(32b.)0 2329 y Fl(vnum_resul)o(t7)o
Fw(:)h Fb(29a,)d Fw(29b,)j(32b.)0 2374 y Fl(vnum_resul)o(t8)o
Fw(:)g Fb(29c,)e Fw(30a,)h(32b.)0 2420 y Fl(vnum_resul)o(t9)o
Fw(:)h Fb(30b,)e Fw(30c,)g(32b.)0 2466 y Fl(vnum_test1)o
Fw(:)i Fb(26b,)d Fw(26c,)i(32b.)0 2511 y Fl(vnum_test1)o(0)p
Fw(:)g Fb(30d,)f Fw(30e,)h(32b.)0 2557 y Fl(vnum_test1)o(1)p
Fw(:)g Fb(31a,)f Fw(31b,)h(32b.)0 2603 y Fl(vnum_test1)o(2)p
Fw(:)g Fb(31c,)f Fw(32ab.)0 2648 y Fl(vnum_test2)o Fw(:)i
Fb(26d,)d Fw(27a,)i(32b.)0 2694 y Fl(vnum_test3)o Fw(:)h
Fb(27b,)d Fw(27c,)i(32b.)0 2740 y Fl(vnum_test4)o Fw(:)h
Fb(27d,)d Fw(27e,)i(32b.)954 2874 y Ft(48)p eop
%%Page: 49 54
49 53 bop 0 91 a Fl(vnum_test5)o Fw(:)14 b Fb(28a,)d
Fw(28b,)i(32b.)0 137 y Fl(vnum_test6)o Fw(:)h Fb(28c,)d
Fw(28d,)i(32b.)0 183 y Fl(vnum_test7)o Fw(:)h Fb(29a,)d
Fw(29b,)i(32b.)0 228 y Fl(vnum_test8)o Fw(:)h Fb(29c,)d
Fw(30a,)i(32b.)0 274 y Fl(vnum_test9)o Fw(:)h Fb(30b,)d
Fw(30c,)i(32b.)954 2874 y Ft(49)p eop
%%Page: 50 55
50 54 bop 0 257 a Fu(App)s(endix)34 b(B)0 423 y(Results)0
598 y Ft(T)m(ry)15 b(to)f(rep)q(ort)i(dispassionately)m(.)21
b(Just)16 b(giv)o(e)e(the)i(facts,)f(with)f(some)h(in)o(terpretation)g
(when)g(helpful;)g(but)g(don't)f(accuse)0 648 y(of)f(laziness)i(or)e
(stupidit)o(y)m(.)18 b(Similarl)o(y)m(,)10 b(don't)k(brag)f(on)h(an)o
(y)o(one.)62 697 y(Need)h(v)o(ersion)f(n)o(um)o(b)q(er)f(of)h(compiler)
62 747 y(can)g(w)o(e)g(get)h(Cra)o(y)e(Researc)o(h,)i(KSR,)e(P)o
(aragon)g(\(P)o(ortland)h(Group\),)f(other)i(sup)q(ers?)62
797 y(design)f(a)g(form)e(for)i(rep)q(orting)g(results)h
(electronically)0 934 y Fp(B.1)69 b(Apple)0 1025 y Ft(MPW)0
1162 y Fp(B.2)g(Borland)0 1278 y(B.3)g(Con)n(v)n(ex)0
1394 y(B.4)g(Cra)n(y)24 b(Computer)0 1510 y(B.5)69 b(Cra)n(y)24
b(Researc)n(h)0 1626 y(B.6)69 b(DEC)0 1725 y Fo(B.6.1)55
b(Alpha)0 1802 y Ft(Rob)0 1918 y Fo(B.6.2)g(DECstation)0
1994 y Ft(MIPS,)14 b(Rob)0 2132 y Fp(B.7)69 b(Gn)n(u)24
b(CC)0 2223 y Ft(need)15 b(rep)q(ort)g(b)o(y)e(mac)o(hine)g(\(since)i
(SP)m(AR)o(C)e(v)o(ersion)h(seems)g(fairly)f(inferior\))0
2360 y Fp(B.8)69 b(Hewlett-P)n(ac)n(k)l(ard)0 2451 y
Ft(Stev)o(e)954 2874 y(50)p eop
%%Page: 51 56
51 55 bop 0 91 a Fp(B.9)69 b(IBM)0 191 y Fo(B.9.1)55
b(RS/6000)0 292 y Fp(B.10)69 b(Microsoft)0 408 y(B.11)g(Silicon)21
b(Graphics)0 499 y Ft(Rob)0 636 y Fp(B.12)69 b(Sun)0
735 y Fo(B.12.1)55 b(Solaris)0 837 y Fp(B.13)69 b(T)-6
b(era)0 928 y Ft(Brian)0 1065 y Fp(B.14)69 b(T)-6 b(exas)24
b(Instrumen)n(ts)0 1156 y Ft(Reid)954 2874 y(51)p eop
%%Page: 52 57
52 56 bop 0 257 a Fu(Bibliograph)m(y)21 432 y Ft([1])19
b(Alfred)h(V.)f(Aho,)i(Ra)o(vi)d(Sethi,)j(and)e(Je\013rey)j(D.)d
(Ullman.)32 b Fa(Compilers:)d(Principles,)21 b(T)m(e)n(chniques,)g(and)
g(T)m(o)n(ols)p Ft(.)85 482 y(Addison-W)m(esley)m(,)13
b(1986.)21 565 y([2])19 b(F)m(rances)14 b(E.)e(Allen)g(and)h(John)f(Co)
q(c)o(k)o(e.)k(A)d(catalogue)f(of)g(optimizing)e(transformations.)k(In)
f(Rustin,)f(editor,)g Fa(Design)85 614 y(and)k(Optimization)e(of)h
(Compilers)p Ft(,)d(pages)j(1{30.)d(Pren)o(tice-Hall,)i(1972.)21
697 y([3])19 b(F)m(rances)12 b(E.)e(Allen,)g(John)h(Co)q(c)o(k)o(e,)g
(and)f(Ken)h(Kennedy)m(.)i(Reduction)e(of)f(op)q(erator)g(strength.)k
(In)c(Stev)o(en)i(S.)e(Muc)o(hnic)o(k)85 747 y(and)k(Neil)g(D.)f
(Jones,)h(editors,)g Fa(Pr)n(o)n(gr)n(am)g(Flow)g(A)o(nalysis:)19
b(The)n(ory)c(and)g(Applic)n(ations)p Ft(.)e(Pren)o(tice-Hall,)h(1981.)
21 830 y([4])19 b(Bo)o(w)o(en)h(Alp)q(ern,)g(Mark)f(N.)g(W)m(egman,)f
(and)g(F.)h(Kenneth)i(Zadec)o(k.)34 b(Detecting)20 b(equalit)o(y)e(of)g
(v)n(ariables)g(in)h(pro-)85 880 y(grams.)g(In)c Fa(Confer)n(enc)n(e)g
(R)n(e)n(c)n(or)n(d)g(of)h(the)g(Fifte)n(enth)f(A)o(nnual)h(A)o(CM)f
(Symp)n(osium)h(on)g(Principles)f(of)h(Pr)n(o)n(gr)n(amming)85
930 y(L)n(anguages)p Ft(,)f(pages)f(1{11,)f(San)g(Diego,)g(California,)
e(Jan)o(uary)j(1988.)21 1013 y([5])19 b(Marc)f(A.)g(Auslander)g(and)g
(Martin)f(E.)g(Hopkins.)29 b(An)18 b(o)o(v)o(erview)g(of)f(the)h
Fw(PL)p Ft(.8)f(compiler.)28 b Fa(SIGPLAN)19 b(Notic)n(es)p
Ft(,)85 1063 y(17\(6\):22{31,)11 b(June)i(1982.)j Fa(Pr)n(o)n(c)n(e)n
(e)n(dings)e(of)f(the)h(A)o(CM)g(SIGPLAN)g('82)g(Symp)n(osium)h(on)g
(Compiler)d(Construction)p Ft(.)21 1146 y([6])19 b(Rob)q(ert)14
b(L.)e(Bernstein.)19 b(Pro)q(ducing)13 b(go)q(o)q(d)g(co)q(de)h(for)e
(the)i(case)g(statemen)o(t.)j Fa(Softwar)n(e)c({)i(Pr)n(actic)n(e)e
(and)i(Exp)n(erienc)n(e)p Ft(,)85 1196 y(15\(10\):1024{1024,)10
b(Octob)q(er)16 b(1985.)21 1279 y([7])j(Rob)q(ert)11
b(L.)e(Bernstein.)k(Multiplication)8 b(b)o(y)h(in)o(teger)i(constan)o
(ts.)h Fa(Softwar)n(e)f({)g(Pr)n(actic)n(e)g(and)g(Exp)n(erienc)n(e)p
Ft(,)g(16\(7\):641{)85 1328 y(652,)i(July)h(1986.)21
1411 y([8])19 b(Gregory)h(J.)f(Chaitin,)h(Marc)g(A.)f(Auslander,)i
(Ashok)f(K.)f(Chandra,)i(John)e(Co)q(c)o(k)o(e,)i(Martin)f(E.)f
(Hopkins,)h(and)85 1461 y(P)o(eter)c(W.)d(Markstein.)18
b(Register)c(allo)q(cation)f(via)g(coloring.)k Fa(Computer)d(L)n
(anguages)p Ft(,)h(6:47{57,)c(Jan)o(uary)j(1981.)21 1544
y([9])19 b(F)m(red)d(C.)f(Cho)o(w.)22 b Fa(A)16 b(Portable)g
(Machine-Indep)n(endent)i(Glob)n(al)e(Optimizer)f({)i(Design)f(and)h
(Me)n(asur)n(ements)p Ft(.)23 b(PhD)85 1594 y(thesis,)15
b(Stanford)e(Univ)o(ersit)o(y)m(,)g(Decem)o(b)q(er)h(1983.)0
1677 y([10])19 b(John)d(Co)q(c)o(k)o(e)g(and)g(Ken)h(Kennedy)m(.)24
b(An)16 b(algorithm)d(for)j(reduction)g(of)g(op)q(erator)g(strength.)25
b Fa(Communic)n(ations)17 b(of)85 1727 y(the)e(A)o(CM)p
Ft(,)e(20\(11\),)g(No)o(v)o(em)o(b)q(er)g(1977.)0 1810
y([11])19 b(John)d(Co)q(c)o(k)o(e)g(and)g(Jacob)g(T.)f(Sc)o(h)o(w)o
(artz.)24 b(Programming)12 b(languages)k(and)f(their)h(compilers:)21
b(Preliminary)14 b(notes.)85 1860 y(T)m(ec)o(hnical)g(rep)q(ort,)g
(Couran)o(t)g(Institute)h(of)e(Mathematical)f(Sciences,)j(New)g(Y)m
(ork)e(Univ)o(ersit)o(y)m(,)g(1970.)0 1943 y([12])19
b(Keith)14 b(D.)e(Co)q(op)q(er,)i(Mary)f(W.)f(Hall,)g(and)h(Linda)g(T)m
(orczon.)k(An)c(exp)q(erimen)o(t)g(with)g(inline)g(substitution.)k
Fa(Softwar)n(e)85 1993 y({)e(Pr)n(actic)n(e)g(and)g(Exp)n(erienc)n(e)p
Ft(,)f(21\(6\):581{601,)d(June)k(1991.)0 2076 y([13])k(Ron)14
b(Cytron,)g(Jeanne)h(F)m(erran)o(te,)g(Barry)f(K.)g(Rosen,)g(Mark)h(N.)
e(W)m(egman,)f(and)i(F.)g(Kenneth)h(Zadec)o(k.)20 b(E\016cien)o(tly)85
2125 y(computing)d(static)j(single)e(assignmen)o(t)g(form)f(and)h(the)i
(con)o(trol)e(dep)q(endence)k(graph.)32 b Fa(A)o(CM)19
b(T)m(r)n(ansactions)g(on)85 2175 y(Pr)n(o)n(gr)n(amming)c(L)n
(anguages)h(and)f(Systems)p Ft(,)f(13\(4\):451{490,)d(Octob)q(er)k
(1991.)0 2258 y([14])k(Ron)12 b(Cytron,)h(Andy)g(Lo)o(wry)m(,)e(and)i
(F.)f(Kenneth)j(Zadec)o(k.)h(Co)q(de)e(motion)c(of)i(con)o(trol)h
(structures)i(in)d(high-lev)o(el)g(lan-)85 2308 y(guages.)j(In)c
Fa(Confer)n(enc)n(e)i(R)n(e)n(c)n(or)n(d)f(of)h(the)g(Thirte)n(enth)f
(A)o(nnual)h(A)o(CM)f(Symp)n(osium)i(on)f(Principles)f(of)h(Pr)n(o)n
(gr)n(amming)85 2358 y(L)n(anguages)p Ft(,)i(pages)f(70{85,)e(St.)i(P)o
(etersburg)i(Beac)o(h,)e(Florida,)e(Jan)o(uary)i(1986.)0
2441 y([15])19 b(Ken)j(Kennedy)m(.)38 b(Global)19 b(dead)i(computation)
d(elimination.)35 b(SETL)21 b(Newsletter)h(111,)f(Couran)o(t)f
(Institute)i(of)85 2491 y(Mathematical)12 b(Sciences,)k(New)e(Y)m(ork)f
(Univ)o(ersit)o(y)m(,)g(August)i(1973.)0 2574 y([16])k(Ken)c(Kennedy)m
(.)k(Use-de\014nition)14 b(c)o(hains)g(with)f(applications.)k
Fa(Computer)e(L)n(anguages)p Ft(,)g(3:163{179,)c(1978.)0
2657 y([17])19 b(Ken)f(Kennedy)m(.)26 b(A)17 b(surv)o(ey)g(of)f(data)g
(\015o)o(w)g(analysis)g(tec)o(hniques.)27 b(In)16 b(Stev)o(en)i(S.)e
(Muc)o(hnic)o(k)g(and)h(Neil)f(D.)f(Jones,)85 2707 y(editors,)f
Fa(Pr)n(o)n(gr)n(am)g(Flow)h(A)o(nalysis:)j(The)n(ory)d(and)h(Applic)n
(ations)p Ft(.)d(Pren)o(tice-Hall,)g(1981.)954 2874 y(52)p
eop
%%Page: 53 58
53 57 bop 0 91 a Ft([18])19 b(Etienne)14 b(Morel)e(and)g(Claude)g(Ren)o
(v)o(oise.)k(Global)10 b(optimization)g(b)o(y)i(suppression)i(of)e
(partial)f(redundancies.)17 b Fa(Com-)85 141 y(munic)n(ations)f(of)f
(the)f(A)o(CM)p Ft(,)g(22\(2\):96{103,)d(F)m(ebruary)j(1979.)0
224 y([19])19 b(Mic)o(hael)d(L.)g(P)o(o)o(w)o(ell.)25
b(A)17 b(p)q(ortable)f(optimizing)e(compiler)h(for)h(Mo)q(dula-2.)25
b Fa(SIGPLAN)18 b(Notic)n(es)p Ft(,)e(19\(6\):310{318,)85
274 y(June)f(1984.)i Fa(Pr)n(o)n(c)n(e)n(e)n(dings)e(of)g(the)g(A)o(CM)
f(SIGPLAN)h('84)g(Symp)n(osium)h(on)f(Compiler)f(Construction)p
Ft(.)0 357 y([20])19 b(Rafael)11 b(H.)g(Saa)o(v)o(edra)g(and)g(Alan)g
(J.)h(Smith.)g(P)o(erformance)f(c)o(haracterization)h(of)f(optimizing)e
(compilers.)k(T)m(ec)o(hnical)85 407 y(Rep)q(ort)i(525,)d(Departmen)o
(t)h(of)h(Computer)f(Science,)i(Univ)o(ersit)o(y)f(of)f(Southern)i
(California,)c(August)j(1992.)0 490 y([21])19 b(Mark)12
b(N.)g(W)m(egman)d(and)j(F.)f(Kenneth)j(Zadec)o(k.)h(Constan)o(t)d
(propagation)f(with)g(conditional)g(branc)o(hes.)16 b(In)c
Fa(Confer-)85 540 y(enc)n(e)17 b(R)n(e)n(c)n(or)n(d)g(of)f(the)h
(Twelfth)e(A)o(nnual)i(A)o(CM)f(Symp)n(osium)h(on)h(Principles)d(of)i
(Pr)n(o)n(gr)n(amming)f(L)n(anguages)p Ft(,)h(pages)85
589 y(291{299,)12 b(New)i(Orleans,)g(Louisiana,)f(Jan)o(uary)g(1985.)0
672 y([22])19 b(Mark)f(N.)g(W)m(egman)d(and)j(F.)g(Kenneth)h(Zadec)o
(k.)31 b(Constan)o(t)18 b(propagation)f(with)g(conditional)g(branc)o
(hes.)31 b Fa(A)o(CM)85 722 y(T)m(r)n(ansactions)15 b(on)g(Pr)n(o)n(gr)
n(amming)g(L)n(anguages)h(and)f(Systems)p Ft(,)f(13\(2\):181{210,)d
(April)i(1991.)0 805 y([23])19 b(F)m(rank)14 b(L.)f(W)m(olf.)j
Fa(Elements)f(of)g(Pr)n(ob)n(ability)f(and)h(Statistics)p
Ft(.)j(McGra)o(w-Hill,)12 b(second)j(edition,)d(1974.)0
888 y([24])19 b(Mic)o(hael)14 b(W)m(olfe.)k(Bey)o(ond)d(induction)f(v)n
(ariables.)19 b Fa(SIGPLAN)d(Notic)n(es)p Ft(,)d(27\(7\):162{174,)f
(July)i(1992.)k Fa(Pr)n(o)n(c)n(e)n(e)n(dings)85 938
y(of)d(the)g(A)o(CM)g(SIGPLAN)g('92)g(Confer)n(enc)n(e)g(on)g(Pr)n(o)n
(gr)n(amming)f(L)n(anguage)i(Design)g(and)f(Implementation)p
Ft(.)0 1021 y([25])k(Mic)o(hael)12 b(W)m(olfe)f(and)h(T)m(om)e(Mac)o(k)
o(e.)15 b(Where)e(are)g(the)f(optimizing)e(compilers?)20
b Fa(SIGPLAN)13 b(Notic)n(es)p Ft(,)f(20\(11\):64{68,)85
1071 y(No)o(v)o(em)o(b)q(er)h(1985.)954 2874 y(53)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF