| %!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 |