@CAT,P 1012-001-002.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1012-001-002,,,127762053241,000 )@@G@@**PF**@@@@ZD@@@@@@@@@@@[@]Q@@@]FE /^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@[AN )@@G@@SALVAGE @@@@@@@@A@@@ @"M[<*^@@@#D@@@@W@BM4 JD@@@@@@@@@@@@AO )@@G@@@@@@@@%DH@@@@D-[@@@@@@@@____<6K@@@@@/,0@@@@D+[@@@@@@@[____<6K@@@@@C[H@@#AP )@@G@@@D<[@@@@@@@@____<$K@@@@@[[]@]W@D=[@@@@@@@@____<6K@@@@@G;0@@[@D>[@@@@@@@@AQ )@@G@@____N2K@@@@@8N0@DC@D&[@@@@@@@[@@@@@[K@@@@@/H)@D$@DB[@@@@@@@[@@@@@[K@@@@@AR )@@G@@C[#@@ @D$[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@?[[]@[;@D*[@@@@@@@@AS )@@G@@____<6K@@@@@[]D@[]@@P]@@@@@@@@@@@@@[K@@@@@C9)@@[@D([@@@@@@@@____<6K@@@@@AT )@@G@@C[M@[.@D%[@@@@@@@@___";HK@@@@@%[N@@ @D:[@@@@@@@@@@@@@[K@@@@@ @@@@M@D?[@@AU )@@G@@@@@@@@____<6K@@@@@R#M@[.@D,[@@@@@@@@@@@@@[K@@@@@CD]@[.@D\[@@@@@@@@___"'9AV )@@G@@K@@@@@G9@@@[@D0[@@@@@@@@___";HK@@@@@%DH@@@@D1[@@@@@@@@____<6K@@@@@/,0@@@AW )@@G@@@D2[@@@@@@@[____<6K@@@@@C[H@@#@D3[@@@@@@@@____<6K@@@@@[[]@[.@D4[@@@@@@@@AX )@@G@@____<6K@@@@@/[)@D5@D![@@@@@@@[@@@@@[K@@@@@R#N@@ @D5[@@@@@@@@____<6K@@@@@AY )@@G@@CD#@@ @D6[@@@@@@@@___";HK@@@@@G9@@@[@D7[@@@@@@@@____G_K@@@@@%DH@@@@D8[@@AZ )@@G@@@@@@@@@@@@@@@@@@@@/,0@@@@D9[@@@@@@@[____<6K@@@@@R#+@]X@D'[@@@@@@@@@@@@@[BA )@@G@@K@@@@@CD]@]X@D;[@@@@@@@@____<+K@@@@@G9@@@[@D/[@@@@@@@@____G^K@@@@@%DI@@@BB )@@G@@@D.[@@@@@@@@@@@@@[K@@@@@/,0@@@@D"[@@@@@@@[____<6K@@@@@C[H@@#@D_[@@@@@@@@BC )@@G@@___"'%K@@@@@[[I@@#@E@[@@@@@@@@____NGK@@@@@R#M@['@E[[@@@@@@@@@@@@@[M@@@@@BD )@@G@@CD]@['@E][@@@@@@@@@@@@@[K@@@@@G9@@@[@E#[@@@@@@@@@@@@@[K@@@@@%DH@@@@E^[@@BE )@@G@@@@@@@@___";HK@@@@@/,0@@@@E [@@@@@@@[____<6K@@@@@C[!@@B@EA[@@@@@@@@@@@@@@BF )@@G@@@@@@@@G.)@@[@EB[@@@@@@@@___"'9K@@@@@R#M@['@EC[@@@@@@@@___";HK@@@@@CD]@['BG )@@G@@@ED[@@@@@@@@___"'%K@@@@@G9@@@[@EE[@@@@@@@@____<$K@@@@@%DH@@@@EF[@@@@@@@@BH )@@G@@@@@@@[M@@@@@/,0@@@@EG[@@@@@@@[____<6K@@@@@[[!@@B@EH[@@@@@@@@@@@@@@@@@@@@BI )@@G@@@@@@@B@]\@@@@@@@@@___"'%K@@@@@/,0@@@@EI[@@@@@@@[___"'%K@@@@@@@@@@#@EJ[@@BJ )@@G@@@@@@@@____<6K@@@@@@@#@EK@@>^@@@@@@@[@@@@@[M@@@@@D[PC1A@@TA@@@@@@@@____<6BK )@@G@@K@@@@@@@@@@@@@@@@@@@@@@@@@ @@?@@^@@T@@&^@@@@@@@@___";HK@@@@@@].@]B@@$^@@BL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@E@@*^@@@@@@@@___";HK@@@@@/,0@@@@EK[@@@@@@@[___"'9BM )@@G@@K@@@@@@@@@@#@EL[@@@@@@@@____<+K@@@@@C[+@[8@EM[@@@@@@@@___";HK@@@@@H.)@@[BN )@@G@@@EN[@@@@@@@@____<6K@@@@@C_0@@[@EO[@@@@@@@@____<6K@@@@@H.)@@[@EP[@@@@@@@@BO )@@G@@____G_K@@@@@N#0@@M@EQ[@@@@@@@@@@@@@[K@@@@@*@@@@M@ER[@@@@@@@@____G_K@@@@@BP )@@G@@[#2@])@ET[@@@@@@@@____<6K@@@@@N90@@@@EU[@@@@@@@@@@@@@[K@@@@@N9)@@[@EV[@@BQ )@@G@@@@@@@@____G_K@@@@@/,0@@@@EX[@@@@@@@[___"PFK@@@@@[@]@['@EY[@@@@@@@@____MWBR )@@G@@K@@@@@N'@@@-@EW[@@@@@@@@@@@@@[K@@@@@GGJ]C@@@Q]@@@@@@@@@@@@@[K@@@@@F[SF[SBS )@@G@@@]1@@@@@@@@@____G^K@@@@@F[SF[S@]2@@@@@@@@@____<6K@@@@@F[S^@)@]3@@@@@@@@@BT )@@G@@@@@@@@@@@@@@R#M@['@EZ[@@@@@@@@@@@@@[M@@@@@CD]@['@E)[@@@@@@@@____<6K@@@@@BU )@@G@@G9@@@[@E-[@@@@@@@@___"'%K@@@@@%DH@@@@E+[@@@@@@@@____G_K@@@@@/,0@@@@E<[@@BV )@@G@@@@@@@[____<6K@@@@@9!]@]1@E=[@@@@@@@@___"'9K@@@@@9(H@@^@E>[@@@@@@@@@@@@@[BW )@@G@@K@@@@@C[]@]3@E&[@@@@@@@@@@@@@@@@@@@@[[H@@A@E$[@@@@@@@@@@@@@[K@@@@@R#M@['BX )@@G@@@E*[@@@@@@@@____<6K@@@@@CD]@['@E([@@@@@@@@@@@@@@@@@@@@G9@@@[@E%[@@@@@@@@BY )@@G@@____<6K@@@@@%DH@@@@E:[@@@@@@@@@@@@@@@@@@@@/,0@@@@E?[@@@@@@@[____<6K@@@@@BZ )@@G@@ @H@@B@E![@@@@@@@@@@@@@@@@@@@@^#3@@ @E,[@@@@@@@@____<6K@@@@@[#3@@A@E\[@@CA )@@G@@@@@@@@____<6K@@@@@C8@@@B@E0[@@@@@@@@____<$K@@@@@/,0@@@@E1[@@@@@@@[___";HCB )@@G@@K@@@@@/,)@C3@E2[@@@@@@@[@@@@@[K@@@@@N#3@@ @E3[@@@@@@@@@@@@@[K@@@@@C#3@@ACC )@@G@@@E4[@@@@@@@@@@@@@[K@@@@@R#M@['@E5[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CD )@@G@@@@ @@?CD]@['@E6[@@@@@@@@____<6K@@@@@G9@@@[@E7[@@@@@@@@@@@@@[K@@@@@%DH@@@CE )@@G@@@E8[@@@@@@@@____<6K@@@@@/,0@@@@E9[@@@@@@@[____<6K@@@@@C[]@[;@E'[@@@@@@@@CF )@@G@@@@@@@[K@@@@@[[H@@]@E;[@@@@@@@@____<6K@@@@@[ DABB@@R]@@@@@@@@@@@@@[K@@@@@CG )@@G@@^#3@@ @E/[@@@@@@@@___"'9K@@@@@[#3@@A@E.[@@@@@@@@___";HK@@@@@C8@@@B@E"[@@CH )@@G@@@@@@@@____<6K@@@@@/,0@@@@E_[@@@@@@@[___";HK@@@@@/,)@C3@F@[@@@@@@@[@@@@@[CI )@@G@@K@@@@@N#3@@ @F[[@@@@@@@@____<6K@@@@@C#3@@A@F][@@@@@@@@@@@@@[K@@@@@R#M@['CJ )@@G@@@F#[@@@@@@@@____<6K@@@@@CD]@['@F^[@@@@@@@@___";HK@@@@@G9@@@[@F [@@@@@@@@CK )@@G@@____G_K@@@@@%DH@@@@FA[@@@@@@@@@@@@@@@@@@@@/,0@@@@FB[@@@@@@@[____<6K@@@@@CL )@@G@@C[]@[;@FC[@@@@@@@@@@@@@[K@@@@@[[H@@[@FD[@@@@@@@@____<+K@@@@@R#M@]X@FE[@@CM )@@G@@@@@@@@____G^K@@@@@CD]@]X@FF[@@@@@@@@@@@@@[K@@@@@G9@@@[@FG[@@@@@@@@____<6CN )@@G@@K@@@@@%DH@@@@FH[@@@@@@@@___"'%K@@@@@/,0@@@@FI[@@@@@@@[____<6K@@@@@R#+@['CO )@@G@@@FJ[@@@@@@@@@@@@@[M@@@@@CD]@['@FK[@@@@@@@@@@@@@[K@@@@@G9@@@[@FL[@@@@@@@@CP )@@G@@@@@@@[K@@@@@%DI@@@@FM[@@@@@@@@___";HK@@@@@/,0@@@@FN[@@@@@@@[____<6K@@@@@CQ )@@G@@C[H@@#@FO[@@@@@@@@@@@@@@@@@@@@[[I@@#@FP[@@@@@@@@___"'9K@@@@@R#M@]X@FQ[@@CR )@@G@@@@@@@@___";HK@@@@@CD]@]X@FR[@@@@@@@@___"'%K@@@@@G9@@@[@FS[@@@@@@@@____<$CS )@@G@@K@@@@@%DH@@@@FT[@@@@@@@@@@@@@[M@@@@@/,0@@@@FU[@@@@@@@[____<6K@@@@@C[]@['CT )@@G@@@FV[@@@@@@@@@@@@@@@@@@@@[[H@@#@FW[@@@@@@@@___"'%K@@@@@G;0@@[@FX[@@@@@@@@CU )@@G@@___"'%K@@@@@8N0@ET@FY[@@@@@@@[@@@@@[K@@@@@/H)@FZ@ES[@@@@@@@[@@@@@[K@@@@@CV )@@G@@@@@@@C@]0@@@@@@@@@____<6K@@@@@@@@@@@@@@@@@@@@@@@@@ @@?/,0@@@@FZ[@@@@@@@[CW )@@G@@___"'%K@@@@@@@@@@#@F)[@@@@@@@@@@@@@@@@@@@@@@]@F-@@(^@@@@@@@[@@@@@[M@@@@@CX )@@G@@D[PC1A@@UA@@@@@@@@___"'9K@@@@@D([D0)@@VA@@@@@@@@____<+K@@@@@@@B@@U@@%^@@CY )@@G@@@@@@@@___";HK@@@@@@#F@]P@@:^@@@@@@@@____<6K@@@@@@@B@@@@@?^@@@@@@@@____<6CZ )@@G@@K@@@@@9?M@]4@F-[@@@@@@@@____G_K@@@@@OUTPUT@]4@@@@@@@@@@@@@@[K@@@@@ DA )@@G@@@]5@@@@@@@@@____G_K@@@@@C8[@@K@F+[@@@@@@@@____<6K@@@@@C80@@@@F<[@@@@@@@[DB )@@G@@____A=M@@@@@R])@@]@F=[@@@@@@@@____G_K@@@@@/,0@@@@F>[@@@@@@@[___";YK@@@@@DC )@@G@@9?M@]6@F&[@@@@@@@@____MWK@@@@@INPUT @]6@@@@@@@@@@@@@@[K@@@@@ @]7@@@DD )@@G@@@@@@@@@@@@@[K@@@@@C8[@@.@F$[@@@@@@@@____G^K@@@@@C80@@@@F*[@@@@@@@[____BVDE )@@G@@M@@@@@R])@@]@F([@@@@@@@@@@@@@@@@@@@@/,0@@@@F%[@@@@@@@[___";YK@@@@@BBGD]EDF )@@G@@@@S]@@@@@@@@____<6K@@@@@C8@@@D@F:[@@@@@@@@___"'%K@@@@@/,0@@@@F?[@@@@@@@[DG )@@G@@___";HK@@@@@/,)@^&@F![@@@@@@@[@@@@@[K@@@@@C8[@@K@F,[@@@@@@@@___"'9K@@@@@DH )@@G@@/,0@@@@F\[@@@@@@@[____ ^K@@@@@C.@@@[@F0[@@@@@@@@@@@@@@@@@@@@[[]@]V@F1[@@DI )@@G@@@@@@@@@@@@@[K@@@@@C8@@@B@F2[@@@@@@@@____<6K@@@@@/,0@@@@F3[@@@@@@@[___";HDJ )@@G@@K@@@@@C8]@[/@F4[@@@@@@@@____<6K@@@@@[@H@@ @F5[@@@@@@@@@@@@@@@@@@@@/,)@B,DK )@@G@@@F6[@@@@@@@[@@@@@[K@@@@@R#M@[;@F7[@@@@@@@@@@@@@@@@@@@@CD]@[;@F8[@@@@@@@@DL )@@G@@____<6K@@@@@G9@@@[@F9[@@@@@@@@____<6K@@@@@%DH@@@@F'[@@@@@@@@____<$K@@@@@DM )@@G@@/,0@@@@F;[@@@@@@@[____<6K@@@@@C[]@[.@F/[@@@@@@@@@@@@@[K@@@@@[[H@@#@F.[@@DN )@@G@@@@@@@@@@@@@[K@@@@@C8@@@C@F"[@@@@@@@@@@@@@[K@@@@@/,0@@@@F_[@@@@@@@[___";HDO )@@G@@K@@@@@@@@@@@@@@@@@@@@@@@@@ @@?/,)@EK@G@[@@@@@@@[@@@@@[K@@@@@#]] B#@@T]@@DP )@@G@@@@@@@@@@@@@[K@@@@@C8@@@B@G[[@@@@@@@@____<6K@@@@@/,0@@@@G][@@@@@@@[___";HDQ )@@G@@K@@@@@C8]@]]@G#[@@@@@@@@@@@@@[K@@@@@[@H@@ @G^[@@@@@@@@____<6K@@@@@/,)@ QDR )@@G@@@G [@@@@@@@[@@@@@[K@@@@@C8@@@B@GA[@@@@@@@@___"'9K@@@@@/,0@@@@GB[@@@@@@@[DS )@@G@@___";HK@@@@@C8]@[.@GC[@@@@@@@@____<6K@@@@@[@H@@ @GD[@@@@@@@@___";HK@@@@@DT )@@G@@/,)@ $@GE[@@@@@@@[@@@@@[K@@@@@C8@@@B@GF[@@@@@@@@____<6K@@@@@/,0@@@@GG[@@DU )@@G@@@@@@@[___";HK@@@@@C8]@[/@GH[@@@@@@@@____<6K@@@@@[@H@@ @GI[@@@@@@@@___";HDV )@@G@@K@@@@@/,)@@2@GJ[@@@@@@@[@@@@@[K@@@@@C9)@]V@GK[@@@@@@@@@@@@@@@@@@@@"P+@[8DW )@@G@@@GL[@@@@@@@@____<6K@@@@@C'@@]V@GM[@@@@@@@@@@@@@[K@@@@@"Q]@[9@GN[@@@@@@@@DX )@@G@@____<+K@@@@@"IK@@N@GO[@@@@@@@@____G^K@@@@@[]M@["@GP[@@@@@@@@@@@@@[K@@@@@DY )@@G@@CDQC8,@]8@@@@@@@@@____<6K@@@@@^@<^[#@]9@@@@@@@@@___"'%K@@@@@D9HE[[@]'@@@DZ )@@G@@@@@@@@____<6K@@@@@ELDETJ@];@@@@@@@@@@@@@@[M@@@@@D1N^@.@]/@@@@@@@@@@@@@@[EA )@@G@@K@@@@@^@)^@)@].@@@@@@@@@@@@@@[K@@@@@C9K@@P@GQ[@@@@@@@@___";HK@@@@@N8)@@PEB )@@G@@@GR[@@@@@@@@____<6K@@@@@C9]@]8@GS[@@@@@@@@@@@@@@@@@@@@C8[@@K@GT[@@@@@@@@EC )@@G@@___"'9K@@@@@/,0@@@@GU[@@@@@@@[___"F2K@@@@@C9K@@G@GV[@@@@@@@@___"'%K@@@@@ED )@@G@@C[]@["@GW[@@@@@@@@____<$K@@@@@C8[@@K@GX[@@@@@@@@@@@@@[M@@@@@/,0@@@@GY[@@EE )@@G@@@@@@@[___"75K@@@@@C8[@@K@GZ[@@@@@@@@@@@@@@@@@@@@/,0@@@@G)[@@@@@@@[____^[@@@@@@@[___"EEK@@@@@C8@@@AEN )@@G@@@G&[@@@@@@@[@@@@@@M@@@@@[@@@@@@G$[@@@@@@@[___"EDK@@@@@C@]@]"@G*[@@@@@@@@EO )@@G@@@@@@@[K@@@@@[@@@@@@G([@@@@@@@[___"ECK@@@@@/,0@@@@G%[@@@@@@@[___"G3K@@@@@EP )@@G@@/K@@F-@G:[@@@@@@@[@@@@@[K@@@@@@@@G[>@]"@@@@@@@@@@@@@@@@@@@@@/,0@@@@F%[@@EQ )@@G@@@@@@@[___";YK@@@@@BBGD]E@@S]@@@@@@@@____<6K@@@@@C8@@@D@F:[@@@@@@@@___"'%ER )@@G@@K@@@@@/,0@@@@F?[@@@@@@@[___";HK@@@@@/,)@^&@F![@@@@@@@[@@@@@[K@@@@@C8[@@KES )@@G@@@F,[@@@@@@@@___"'9K@@@@@/,0@@@@F\[@@@@@@@[____ ^K@@@@@C.@@@[@F0[@@@@@@@@ET )@@G@@@@@@@@@@@@@@[[]@]V@F1[@@@@@@@@@@@@@[K@@@@@C8@@@B@F2[@@@@@@@@____<6K@@@@@EU )@@G@@/,0@@@@F3[@@@@@@@[___";HK@@@@@C8]@[/@F4[@@@@@@@@____<6K@@@@@[@H@@ @F5[@@EV )@@G@@@@@@@@@@@@@@@@@@@@/,)@B,@F6[@@@@@@@[@@@@@[K@@@@@R#M@[;@F7[@@@@@@@@@@@@@@EW )@@G@@@@@@@@CD]@[;@F8[@@@@@@@@____<6K@@@@@G9@@@[@F9[@@@@@@@@____<6K@@@@@%DH@@@EX )@@G@@@F'[@@@@@@@@____<$K@@@@@/,0@@@@F;[@@@@@@@[____<6K@@@@@C[]@[.@F/[@@@@@@@@EY )@@G@@@@@@@[K@@@@@[[H@@#@F.[@@@@@@@@@@@@@[K@@@@@C8@@@C@F"[@@@@@@@@@@@@@[K@@@@@EZ )@@G@@/,0@@@@F_[@@@@@@@[___";HK@@@@@@@@@@@@@@@@@@@@@@@_____"/,)@EK@G@[@@@@@@@[FA )@@G@@@@@@@[K@@@@@#]] B#@@T]@@@@@@@@@@@@@[K@@@@@C8@@@B@G[[@@@@@@@@____<6K@@@@@FB )@@G@@/,0@@@@G][@@@@@@@[___";HK@@@@@C8]@]]@G#[@@@@@@@@@@@@@[K@@@@@[@H@@ @G^[@@FC )@@G@@@@@@@@____<6K@@@@@/,)@ Q@G [@@@@@@@[@@@@@[K@@@@@C8@@@B@GA[@@@@@@@@___"'9FD )@@G@@K@@@@@/,0@@@@GB[@@@@@@@[___";HK@@@@@C8]@[.@GC[@@@@@@@@____<6K@@@@@[@H@@ FE )@@G@@@GD[@@@@@@@@___";HK@@@@@/,)@ $@GE[@@@@@@@[@@@@@[K@@@@@C8@@@B@GF[@@@@@@@@FF )@@G@@____<6K@@@@@/,0@@@@GG[@@@@@@@[___";HK@@@@@C8]@[/@GH[@@@@@@@@____<6K@@@@@FG )@@G@@[@H@@ @GI[@@@@@@@@___";HK@@@@@/,)@@2@GJ[@@@@@@@[@@@@@[K@@@@@C9)@]V@GK[@@FH )@@G@@@@@@@@@@@@@@@@@@@@"P+@[8@GL[@@@@@@@@____<6K@@@@@C'@@]V@GM[@@@@@@@@@@@@@[FI )@@G@@K@@@@@"Q]@[9@GN[@@@@@@@@____<+K@@@@@"IK@@N@GO[@@@@@@@@____G^K@@@@@[]M@["FJ )@@G@@@GP[@@@@@@@@@@@@@[K@@@@@CDQC8,@]8@@@@@@@@@____<6K@@@@@^@<^[#@]9@@@@@@@@@FK )@@G@@___"'%K@@@@@D9HE[[@]'@@@@@@@@@____<6K@@@@@ELDETJ@];@@@@@@@@@@@@@@[M@@@@@FL )@@G@@D1N^@.@]/@@@@@@@@@@@@@@[K@@@@@^@)^@)@].@@@@@@@@@@@@@@[K@@@@@C9K@@P@GQ[@@FM )@@G@@@@@@@@___";HK@@@@@N8)@@P@GR[@@@@@@@@____<6K@@@@@C9]@]8@GS[@@@@@@@@@@@@@@FN )@@G@@@@@@@@C8[@@K@GT[@@@@@@@@___"'9K@@@@@/,0@@@@GU[@@@@@@@[___"F2K@@@@@C9K@@GFO )@@G@@@GV[@@@@@@@@___"'%K@@@@@C[]@["@GW[@@@@@@@@____<$K@@@@@C8[@@K@GX[@@@@@@@@FP )@@G@@@@@@@[M@@@@@/,0@@@@GY[@@@@@@@[___"75K@@@@@C8[@@K@GZ[@@@@@@@@@@@@@@@@@@@@FQ )@@G@@/,0@@@@G)[@@@@@@@[____^,,) @[@@@@IQ )@@G@@ @]@@@@ (MAD): @C@@@@ FLD.(,,) @[@@@@ @[@@@@ @F@@@@ IS THE STARTING BIT NUMBER IS )@@G@@IN A BIT STRING OF LENGTH @F@@@@ TO BE REFERENCED. BIT )@@G@@ITS ARE NUMBERED FROM LEFT @E@@@@ TO RIGHT, BEGINNING WITH BIT IU )@@G@@'0'. BIT '35' IS THE @C@@@@ RIGHTMOST. THERE ARE 36 BITS PER WIV )@@G@@ORD. @[@@@@ @F@@@@ IS THE COMPUTER WORD FROM WHICH THIS BITIW )@@G@@ STRING IS TO BE @C@@@@ TAKEN, OR INTO WHICH IT IS TO BE PUT. IX )@@G@@@[@@@@ @[@@@@ @F@@@@ THE FLD PSEUDOFUNCTION ALWAYS ASSUMIY )@@G@@ES THAT IT IS DEALING @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RAIZ )@@G@@LPH (DECEMBER 1971 VERSION) 3- 15@[@@@@ @[@@@@ @[@@@@JA )@@G@@ @F@@@@ WITH A RIGHT-JUSTIFIED, UNSIGNED QUANTITY. ON INSERT (LEFTJB )@@G@@ SIDE @F@@@@ OF AN EQUALS SIGN), THE REMAINDER OF THE WORD IS NOT DISTURJC )@@G@@BED. @[@@@@ @]@@@@ THUS @[@@@@ @C@@@@ FLD(3,6,B) = 0 JD )@@G@@ SETS BITS 3-8 OF B TO 0.@F@@@@ Q = FLD(0,18,R) SETS Q TO THJE )@@G@@E CONTENTS OF R'S LEFT HALF. @[@@@@ @F@@@@ THE 3 ARGUMENTS OF THE JF )@@G@@FLD MAY EACH BE ANY EXPRESSION; CONSTANTS @F@@@@ ARE USED IN THE EXAMPLEJG )@@G@@S ONLY FOR PURPOSES OF CLARITY. @F@@@@ AND MUST BE INJH )@@G@@TEGER, MAY BE ANY SINGLEWORD MODE. @F@@@@ WHEN THE FLD FUNCTION IJI )@@G@@S USED ON THE LEFT SIDE OF AN EQUALS SIGN,@F@@@@ MUST BE INDEPENDJJ )@@G@@ENTLY LEGAL ON THE LEFT SIDE OF AN EQUALS @[@@@@ SIGN.@[@@@@*****^@G@@@@JK )@@G@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) 3- 16JL )@@G@@@[@@@@ @[@@@@ @[@@@@ @^@@@@ EXAMPLES:@^@@@@JM )@@G@@ =========@[@@@@ @[@@@@ @E@@@@ SUPPOSE THAT THE JN )@@G@@VARIABLE 'J' CONTAINS (IN OCTAL) THE VALUE@[@@@@ @^@@@@ 21030JO )@@G@@6613371 @[@@@@ @F@@@@ WHICH IN BINARY IS (WITH VERTICAL NUMBERSJP )@@G@@ INDICATING BIT POSI- @]@@@@ TIONS) @[@@@@ @C@@@@ 01000JQ )@@G@@1000011000110110001011011111001 @[@@@@ @C@@@@ AND SUPPOSE THE VJR )@@G@@ARIABLE 'K' CONTAINS IN OCTAL @[@@@@ @^@@@@ 202600000000 JS )@@G@@@[@@@@ @^@@@@ WHICH IN BINARY IS @[@@@@ @C@@@@ JT )@@G@@ 1 1 2 2 3 3 @C@@@@ 0 5 0 5 0 JU )@@G@@ 5 0 5 @C@@@@ 010000010110000000000000000000000000 JV )@@G@@@[@@@@ @F@@@@ THEN EXECUTING THE FOLLOWING STATEMENTS WILL HAVE THEJW )@@G@@ INDICATED @]@@@@ EFFECT: @[@@@@ @^@@@@ R = FLD(18,6,J) JX )@@G@@@[@@@@ @E@@@@ WILL SET R TO 000000000061 OCJY )@@G@@TAL @[@@@@ @^@@@@ RR = FLD(25,2,J) @[@@@@ @D@@@@ JZ )@@G@@ WILL SET RR TO 000000000003 @[@@@@ @^@@@@ KA )@@G@@ FLD(18,3,K) = 7 @[@@@@ @D@@@@ WILL SET K TO KB )@@G@@ 202600700000 @[@@@@ @^@@@@ FLD(6,12,K) = 0 @[@@@@ KC )@@G@@@D@@@@ WILL SET K TO 200000000000 @[@@@@ KD )@@G@@@A@@@@ FLD(24,7,K) = FLD(29,6,J) @[@@@@ @D@@@@ KE )@@G@@ WILL SET K TO 202600003600 @[@@@@ @[@@@@ @E@@@@KF )@@G@@ ALL OF THE VALUES MENTIONED ABOVE ARE IN OCTAL. ALL OF THE@F@@@@ EXAMPKG )@@G@@LES ARE IN FORTRAN; IN MAD REPLACE FLD() BY FLD.() AND THE @ @@@@ ACTIOKH )@@G@@N WILL BE THE SAME. @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RAKI )@@G@@LPH (DECEMBER 1971 VERSION) 3- 17@[@@@@ @[@@@@ @[@@@@KJ )@@G@@ @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971KK )@@G@@ VERSION) 3- 18@[@@@@ @[@@@@ @[@@@@ @A@@@@ 3. 2KL )@@G@@. 4. 5. GENERIC FUNCTIONS @[@@@@ @F@@@@ THE COMPILER KEEPKM )@@G@@S A TABLE OF MATHEMATICAL FUNCTIONS WHOSE @F@@@@ NAME AND MODE IT KNOWS,KN )@@G@@ SUCH THAT A REFERENCE TO THE GENERIC NAME@F@@@@ OF THE FUNCTION WILL CAKO )@@G@@USE THE COMPILER TO SUBSTITUTE THE CORRECT@D@@@@ SPECIFIC NAME, DEPENDINKP )@@G@@G UPON MODE. THUS, A CALL TO @[@@@@ @#@@@@ SQRT(P) @[@@@@KQ )@@G@@ @A@@@@ WILL BECOME IN THE OBJECT PROGRAM @[@@@@ @#@@@@ KR )@@G@@ DSQRT(P) @[@@@@ @B@@@@ IF P IS DOUBLE PRECISION, BUT WILL BECOMEKS )@@G@@@[@@@@ @#@@@@ CSQRT(P) @[@@@@ @ @@@@ IF P IS COMPLEX, KT )@@G@@AND EVEN @[@@@@ @^@@@@ SQRT(FLOAT(P)) @[@@@@ @#@@@@KU )@@G@@ IF P IS INTEGER. @[@@@@ @F@@@@ ANY GENERIC FUNCTION CAN BE RKV )@@G@@EMOVED FROM THE TABLE BY DEC- @F@@@@ LARING IT TO BE 'EXTERNAL' OR 'ABNOKW )@@G@@RMAL', OR BY REFERENCING IT IN@F@@@@ A MODE DECLARATION; THE USER MAY THKX )@@G@@IS WAY USE A GENERIC FUNCTION @F@@@@ NAME FOR OTHER PURPOSES. THE GENERKY )@@G@@IC NAME OF A FUNCTION GROUP IS@D@@@@ ALMOST ALWAYS THE NAME OF THE REAL-KZ )@@G@@VALUED FUNCTION. @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DLA )@@G@@ECEMBER 1971 VERSION) 3- 19@[@@@@ @[@@@@ @[@@@@ LB )@@G@@@B@@@@ 3. 2. 4. 6. TABLE OF GENERIC FUNCTIONS@[@@@@ @A@@@@ GENERLC )@@G@@IC ARGUMENT SPECIFIC @E@@@@ NAME MODE NAME LD )@@G@@ FUNCTION @F@@@@ ======= ======== ======== ===LE )@@G@@=================== @E@@@@ ACOS(X) INTEGER ACOS(X) ARCLF )@@G@@COSINE OF ARGUMENT@A@@@@ REAL ACOS(X) @A@@@@ LG )@@G@@ D.P. DACOS(X) @[@@@@ @E@@@@ ASIN(X) INTEGER LH )@@G@@ASIN(X) ARCSIN OF ARGUMENT @A@@@@ REAL ASIN(XLI )@@G@@) @A@@@@ D.P. DACOS(X) @[@@@@ @F@@@@ ATAN(LJ )@@G@@X) INTEGER ATAN(X) ARCTANGENT OF ARGUMENT @A@@@@ LK )@@G@@ REAL ATAN(X) @A@@@@ D.P. DATAN(X) LL )@@G@@@E@@@@ ATAN2(X,Y) REAL ATAN2(X,Y) ARCTANGENT OF X/Y @A@@@@LM )@@G@@ D.P. DATAN2(X,Y) @[@@@@ @E@@@@ CBRT(X) INTLN )@@G@@EGER CBRT(X) CUBE ROOT OF ARGUMENT@A@@@@ REAL LO )@@G@@CBRT(X) @A@@@@ D.P. DCBRT(X) @A@@@@ LP )@@G@@ COMPLEX CCBRT(X) @[@@@@ @E@@@@ COS(X) INTEGER COS(X)LQ )@@G@@ COSINE OF ARGUMENT @ @@@@ REAL COS(X)@A@@@@LR )@@G@@ D.P. DCOS(X) @A@@@@ COMPLEX CCOS(XLS )@@G@@) @[@@@@ @E@@@@ COSH(X) INTEGER COSH(X) HYPERBOLILT )@@G@@C COSINE(X) @A@@@@ REAL COSH(X) @A@@@@ LU )@@G@@ D.P. DCOSH(X) @A@@@@ COMPLEX CCOSH(X) @[@@@@LV )@@G@@ @F@@@@ EXP(X) INTEGER EXP(X) EXPONENTIATION: E TOLW )@@G@@ THE @C@@@@ REAL EXP(X) X POWER. @A@@@@ LX )@@G@@ D.P. DEXP(X) @A@@@@ COMPLEX CEXP(X) LY )@@G@@@[@@@@ @F@@@@ LOG(X) INTEGER LOG(X) NATURAL (BASE ELZ )@@G@@) LOGARITHM @A@@@@ REAL ALOG(X) @A@@@@ MA )@@G@@ D.P. DLOG(X) @A@@@@ COMPLEX CLOG(X) @[@@@@MB )@@G@@ @F@@@@ LOG10(X) INTEGER LOG10(X) COMMON (BASE 10) LOGAMC )@@G@@RITHM @A@@@@ REAL ALOG10(X) @A@@@@ D.PMD )@@G@@. DLOG10(X) @[@@@@ @E@@@@ SIN(X) INTEGER SIN(X) ME )@@G@@ SINE OF ARGUMENT @ @@@@ REAL SIN(X)@[@@@@*****^MF )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) MG )@@G@@ 3- 20@[@@@@ @[@@@@ @[@@@@ @A@@@@ D.P. MH )@@G@@DSIN(X) @A@@@@ COMPLEX CSIN(X) @[@@@@ @E@@@@MI )@@G@@ SINH(X) INTEGER SINH(X) HYPERBOLIC SINE(X) @A@@@@ MJ )@@G@@ REAL SINH(X) @A@@@@ D.P. DSINH(X) MK )@@G@@@A@@@@ COMPLEX CSINH(X) @[@@@@ @D@@@@ SQRT ML )@@G@@ INTEGER SQRT SQUARE ROOT @A@@@@ REAL MM )@@G@@SQRT(X) @A@@@@ D.P. DSQRT(X) @A@@@@ MN )@@G@@ COMPLEX CSQRT(X) @[@@@@ @D@@@@ TAN(X) INTEGER TAN(X)MO )@@G@@ TANGENT OF X @ @@@@ REAL TAN(X)@A@@@@ MP )@@G@@ D.P. DTAN(X) @A@@@@ COMPLEX CTAN(X) MQ )@@G@@@[@@@@ @F@@@@ TANH(X) INTEGER TANH(X) HYPERBOLIC TANGMR )@@G@@ENT OF X @A@@@@ REAL TANH(X) @A@@@@ MS )@@G@@ D.P. DTANH(X) @A@@@@ COMPLEX CTANH(X) @[@@@@MT )@@G@@ @[@@@@ @[@@@@ @G@@@@ EXCEPT WHERE THE ARGUMENT IS INTEGEMU )@@G@@R, THE RESULT MODE OF A MATHEMA- @F@@@@ TICAL FUNCTION IS THE SAME ASMV )@@G@@ THE MODE OF THE ARGUMENT. WHEN AN @E@@@@ INTEGER IS USED AS AN ARGUMENMW )@@G@@T, THE RESULT IS ALWAYS REAL. @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WMX )@@G@@ITH RALPH (DECEMBER 1971 VERSION) 3- 21@[@@@@ @[@@@@ MY )@@G@@@[@@@@ @[@@@@ @[@@@@ @^@@@@ 3. 3. OPERATORS @[@@@@MZ )@@G@@ @[@@@@ @F@@@@ AN OPERATOR OPERATES ON 1 OR 2 OPERANDS TNA )@@G@@O PRODUCE A SPECI-@E@@@@ FIC RESULT OR ACTION. FOR EXAMPLE, THE '+' OPENB )@@G@@RATOR ADDS 2@F@@@@ OPERANDS; THE '=' OPERATOR SETS ONE OPERAND EQUAL TO NC )@@G@@ANOTHER. AN@F@@@@ OPERATOR REQUIRING 2 OPERANDS IS CALLED A BINARY OPERND )@@G@@ATOR, WHILE @E@@@@ ONE REQUIRING ONLY ONE OPERAND IS CALLED A UNARY OPERNE )@@G@@ATOR. @[@@@@ @^@@@@ EXAMPLES:@[@@@@ @B@@@@ NF )@@G@@ * IS A BINARY OPERATOR: A*B@C@@@@ .ABS. IS A UNARY OPERNG )@@G@@ATOR: .ABS.B @[@@@@ @F@@@@ OPERATORS ARE BROADLY CATEGORNH )@@G@@IZED INTO 5 GROUPS: COMPUTA- @E@@@@ TIONAL, CONVERSION, MANIPULATIVE, CNI )@@G@@OMPARATIVE, AND LOGICAL.@ @@@@ SOME DEFY CATEGORIZATION. @[@@@@*****^NJ )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) NK )@@G@@ 3- 22@[@@@@ @[@@@@ @[@@@@ @[@@@@ @A@@@@ 3. 3. 1. NL )@@G@@ COMPUTATIONAL OPERATORS@[@@@@ @F@@@@ COMPUTATIONAL OPERATORSNM )@@G@@ ARE USED TO PERFORM STANDARD ALGE- @G@@@@ BRAIC COMPUTATIONS, AND ARE INN )@@G@@NTENDED FOR USE IN ARITHMETIC EXPRES- @F@@@@ SIONS. THE CURRENTLY ANO )@@G@@VAILABLE COMPUTATIONAL OPERATORS ARE: @[@@@@ @D@@@@ SYMBONP )@@G@@L ACTION DESCRIPTION @D@@@@ ====== ====== NQ )@@G@@ =========== @[@@@@ @F@@@@ + ADDITION NR )@@G@@ A+B YIELDS SUM OF A AND B @E@@@@ - SUBTRACTINS )@@G@@ON A-B GIVES A LESS B @G@@@@ NEGATION NT )@@G@@ -B (EQUIVALENT TO .NEG.B) IS @F@@@@ NU )@@G@@ THE ALGEBRAIC NEGATION OF B@G@@@@ * MULTIPLICNV )@@G@@ATION A*B GIVES PRODUCT OF A AND B @F@@@@ / DIVNW )@@G@@ISION A/B GIVES A DIVIDED BY B @F@@@@ NX )@@G@@ (WHICH IS TRUNCATED IF BOTH@D@@@@ NY )@@G@@ ARE INTEGERS) @F@@@@ // COVERED QUOTIENNZ )@@G@@T A//B IS A/B ROUNDED UP TO @F@@@@ OA )@@G@@ THE NEXT INTEGER INSTEAD OF@C@@@@ OB )@@G@@ TRUNCATED@ @@@@ ** EXPONENTIATION @F@@@@ .P. OC )@@G@@ EXPONENTIATION A**B = A.P.B GIVES A TO @C@@@@ OD )@@G@@ POWER B @G@@@@ .ABS. ABSOLUTE VALUE OE )@@G@@ .ABS. A IS ABSOLUTE VALUE OF @F@@@@ .MOD. MODULO OF )@@G@@ A.MOD.B GIVES A MODULO B @F@@@@ .INT. TRUNCATIOOG )@@G@@N .INT.B IS B TRUNCATED TO @D@@@@ OH )@@G@@ INTEGER PART @G@@@@ .CONJ. COMPLEX CONJUGATE OI )@@G@@ .CONJ.A IS COMPLEX CONJUGATE @C@@@@ OJ )@@G@@ OF A @F@@@@ .MIN. MINIMUM A.MIN.B IOK )@@G@@S MINIMUM OF A AND@B@@@@ B @F@@@@OL )@@G@@ .MAX. MAXIMUM A.MAX.B IS MAXIMUM OF A AND@B@@@@OM )@@G@@ B @F@@@@ .SIGN. SIGN TRANON )@@G@@SFER A.SIGN.B IS MAGNITUDE OF A @E@@@@ OO )@@G@@ WITH THE SIGN OF B. @[@@@@ @[@@@@ @F@@@@ OP )@@G@@ ANY COMPUTATIONAL OPERATOR EXCEPT // AND .CONJ. MAY BE USED@F@@@@ WITH OQ )@@G@@ANY COMPUTATIONAL MODES IN ANY COMBINATION. // IS ONLY @G@@@@ DEFINOR )@@G@@ED FOR INTEGERS. .CONJ. IS ONLY DEFINED FOR COMPLEX OPERANDS @E@@@@OS )@@G@@ A NUMBER RAISED TO A NON-INTEGRAL POWER MUST BE POSITIVE. @[@@@@*****^OT )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) OU )@@G@@ 3- 23@[@@@@ @[@@@@ @[@@@@ @[@@@@ @A@@@@ 3. 3. 2. OV )@@G@@ CONVERSION OPERATORS @[@@@@ @E@@@@ CONVERSION OPERATORS FOOW )@@G@@RCE MODE CONVERSIONS OF THEIR @F@@@@ OPERANDS. ALL CONVERSION OPERATORSOX )@@G@@ EXCEPT .CMPLX. ARE UNARY @C@@@@ OPERATORS. AVAILABLE CONVERSION OPOY )@@G@@ERATORS ARE:@[@@@@ @[@@@@ @A@@@@ SYMBOL DESCRIOZ )@@G@@PTION @A@@@@ ====== =========== @[@@@@ @B@@@@ PA )@@G@@ .FIX. CONVERT TO INTEGER@D@@@@ .FLOAT. CONVERPB )@@G@@T TO FLOATING POINT @D@@@@ .DBLE. CONVERT TO DOUBLE-PC )@@G@@PRECISION @B@@@@ .CMPLX. CONVERT TO COMPLEX@E@@@@ PD )@@G@@ .REAL. EXTRACT REAL PART OF COMPLEX NUMBER @F@@@@ .IMAGPE )@@G@@. EXTRACT IMAGINARY PART OF COMPLEX NUMBER @E@@@@ .BIT.PF )@@G@@ CONVERT TO MODELESS (BIT-STRING) @[@@@@ @[@@@@ PG )@@G@@@[@@@@ @A@@@@ 3. 3. 3. MANIPULATIVE OPERATORS @[@@@@ @F@@@@PH )@@G@@ MANIPULATIVE OPERATORS TREAT COMPUTER WORDS AS BIT PATTERNS@G@@@@PI )@@G@@ RATHER THAN AS NUMBERS. DATA INPUTS TO MANIPULATIVE OPERATORS MAY PJ )@@G@@@F@@@@ BE OF ANY MODE, SHIFT COUNTS (IF APPLICABLE) ARE IN BITS AND MUSTPK )@@G@@@F@@@@ BE INTEGRAL. THE OUTPUT OF A MANIPULATIVE OPERATOR IS ALWAYS PL )@@G@@@F@@@@ MODELESS. A MODELESS OPERAND MAY BE COMBINED WITH AN OPERAND OF PM )@@G@@@F@@@@ ANY SINGLEWORD MODE WITHOUT CONVERSION. ANY COMPUTATIONS ON PN )@@G@@@E@@@@ PURELY MODELESS OPERANDS WILL BE PERFORMED IN INTEGER MODE.@B@@@@PO )@@G@@ AVAILABLE MANIPULATIVE OPERATORS ARE @[@@@@ @[@@@@ @A@@@@PP )@@G@@ SYMBOL DESCRIPTION @A@@@@ ====== ======PQ )@@G@@===== @[@@@@ @[@@@@ @B@@@@ .A. BITWISE 'ANDPR )@@G@@' @A@@@@ .V. BITWISE 'OR'@F@@@@ .N. PS )@@G@@ BITWISE COMPLEMENTATION (INVERT EACH BIT) @C@@@@ .EV. PT )@@G@@ BITWISE EXCLUSIVE OR @B@@@@ .LS. BITWISE LEFTPU )@@G@@ SHIFT@C@@@@ .RS. BITWISE RIGHT SHIFT @D@@@@ PV )@@G@@ .LSC. BITWISE LEFT SHIFT CIRCULAR @D@@@@ .RSC. PW )@@G@@ BITWISE RIGHT SHIFT CIRCULAR @[@@@@ @[@@@@ @[@@@@*****^PX )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) PY )@@G@@ 3- 24@[@@@@ @[@@@@ @[@@@@ @[@@@@ @A@@@@ 3. 3. 4. PZ )@@G@@ COMPARATIVE OPERATORS @[@@@@ @F@@@@ COMPARATIVE OPERATORS AQA )@@G@@RE USED TO COMPARE TWO OPERANDS AND @G@@@@ PRODUCE A LOGICAL 'TRUE' OR 'QB )@@G@@FALSE' AS OUTPUT FROM THE COMPARISON. @[@@@@ @G@@@@ THE FOLLOWIQC )@@G@@NG COMPARATIVE OPERATORS ARE DEFINED FOR INTEGER, REAL, @A@@@@ AND DQD )@@G@@OUBLE-PRECISION OPERANDS: @[@@@@ @E@@@@ SYMBOL QE )@@G@@A.OPERATOR.B TRUE IF AND ONLY IF @E@@@@ ====== ======QF )@@G@@========================== @[@@@@ @#@@@@ .GT. ) @C@@@@QG )@@G@@ .G. )-- A IS GREATER THAN B @#@@@@ > ) QH )@@G@@@[@@@@ @#@@@@ .LT. ) @B@@@@ .L. )-- A IS LQI )@@G@@ESS THAN B @#@@@@ < ) @[@@@@ @#@@@@ <= ) QJ )@@G@@@D@@@@ .LE. )-- A IS LESS THAN OR EQUAL TO B @#@@@@ QK )@@G@@ =< ) @[@@@@ @#@@@@ >= ) @E@@@@ .GE. )--QL )@@G@@ A IS GREATER THAN OR EQUAL TO B @#@@@@ => ) @[@@@@QM )@@G@@ @F@@@@ THE FOLLOWING COMPARATIVE OPERATORS ARE DEFINED FOR ALL MOQN )@@G@@DES: @[@@@@ @A@@@@ .EQ. A EQUAL TO B@A@@@@ QO )@@G@@ .E. A EQUAL TO B@B@@@@ .NE. A NOT EQUAL QP )@@G@@TO B @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971QQ )@@G@@ VERSION) 3- 25@[@@@@ @[@@@@ @[@@@@ @[@@@@ QR )@@G@@@ @@@@ 3. 3. 5. LOGICAL OPERATORS@[@@@@ @F@@@@ LOGICAL OPEQS )@@G@@RATORS ARE BOOLEAN OPERATORS WHICH OPERATE ON @F@@@@ BOOLEAN OPERANDS QT )@@G@@TO PRODUCE A BOOLEAN RESULT. AVAILABLE RELA- @^@@@@ TIONAL OPERATORS QU )@@G@@ARE: @[@@@@ @E@@@@ SYMBOL A.OPERATOR.B TRUE IF ANDQV )@@G@@ ONLY IF @E@@@@ ====== ==============================QW )@@G@@== @[@@@@ @C@@@@ .AND. BOTH A TRUE AND B TRUE QX )@@G@@@E@@@@ .OR. EITHER A TRUE OR B TRUE OR BOTH @D@@@@QY )@@G@@ .NOT. B FALSE (UNARY OPERATOR) @D@@@@ .EXORQZ )@@G@@. A TRUE OR B TRUE BUT NOT BOTH @D@@@@ .THEN. RA )@@G@@TRUE UNLESS A TRUE AND B FALSE@F@@@@ .EQV. A AND B ARE RB )@@G@@BOTH EITHER TRUE OR FALSE @[@@@@ @A@@@@ 3. 3. 6. MISCELLANEORC )@@G@@US OPERATORS@[@@@@ @F@@@@ THE FOLLOWING TWO MISCELLANEOUS OPERD )@@G@@RATORS WERE INSTALLED TO@G@@@@ ALLOW THE USER TO TAKE ADVANTAGE OF THE HRE )@@G@@IGH-SPEED REPEATED SEARCH @F@@@@ INSTRUCTIONS IN THE 1108 HARDWARE. RF )@@G@@ BOTH OF THESE OPERATORS COM- @^@@@@ PILE INLINE SEARCHES. @[@@@@ RG )@@G@@@[@@@@ @F@@@@ .FIND. RETURN INDEX OF ITEM IN STACK.RH )@@G@@ ASSUMES @F@@@@ A(0) IS THE SIZE OF THE ARRAY RI )@@G@@A IN WORDS, @F@@@@ AND THAT A(1)...A(A(0)) CONTAIRJ )@@G@@N DATA. THE@A@@@@ CONSTRUCTION@[@@@@ @A@@@@RK )@@G@@ A(14) = X @A@@@@ I=A.FRL )@@G@@IND.X @[@@@@ @F@@@@ RETURNS I=14. AN ATTEMPRM )@@G@@T TO FIND AN ITEM @F@@@@ NOT IN THE LIST RETURNS RN )@@G@@A VALUE OF 0. @[@@@@ @[@@@@ @F@@@@ .LOCATE. RO )@@G@@FIND ITEM IN SORTED LIST. A(0) CONTAINS @F@@@@ RP )@@G@@ARRAY SIZE AS ABOVE. FOR .LOCATE., THE @F@@@@ RQ )@@G@@ADDITIONAL RESTRICTION ON DATA ITEMS IS @E@@@@ RR )@@G@@ADDED THAT IF I>J THEN A(I)>A(J). @F@@@@ A.LOCARS )@@G@@TE.B WILL RETURN THE INDEX IN THE @G@@@@ ARRAY RT )@@G@@WHERE B IS LOCATED OR WHERE IT SHOULD @C@@@@ RU )@@G@@BE IF IT IS NOT THERE. @[@@@@ @[@@@@ @F@@@@ THE NEXT OPERATORRV )@@G@@ IS NOT REALLY IN ANY CATEGORY; ITS PRIMARY USE @F@@@@ IS IN ACCOMPANYINRW )@@G@@G VARIOUS FUNCTIONS PECULIAR TO EXEC 8 OR TO AN @[@@@@ 1108.@[@@@@*****^RX )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) RY )@@G@@ 3- 26@[@@@@ @[@@@@ @[@@@@ @F@@@@ .LOC. RZ )@@G@@RETURN THE CORE LOCATION AT WHICH THE @F@@@@ SA )@@G@@OPERAND IS STORED (UNARY OPERATOR). FOR @A@@@@ SB )@@G@@EXAMPLE, @[@@@@ @A@@@@ Y = .LOC. X @[@@@@SC )@@G@@ @G@@@@ WILL SET Y TO AN INTEGER NUMBER WHOSSD )@@G@@E VALUE @F@@@@ IS THE CORE ADDRESS AT WHICH XSE )@@G@@ IS STORED. @[@@@@ @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RASF )@@G@@LPH (DECEMBER 1971 VERSION) 3- 27@[@@@@ @[@@@@ @[@@@@SG )@@G@@ @[@@@@ @E@@@@ 3. 3. 7. TABLE OF OPERATORS, PRECEDENCES, ANSH )@@G@@D TYPES @[@@@@ @C@@@@ OPERATOR PRECEDENCE TYPSI )@@G@@E @C@@@@ ======== ========== ==== @C@@@@ .EQVSJ )@@G@@. 2 LOGICAL @C@@@@ .THEN. 3 SK )@@G@@ LOGICAL @C@@@@ .EXOR. 4 LOGSL )@@G@@ICAL @C@@@@ .OR. 4 LOGICAL @C@@@@ .ANDSM )@@G@@. 5 LOGICAL @C@@@@ .NOT. 6 SN )@@G@@ LOGICAL @D@@@@ .E. 7 COMSO )@@G@@PARATIVE @D@@@@ .EQ. 7 COMPARATIVE SP )@@G@@@D@@@@ .G. 7 COMPARATIVE @D@@@@ .GE.SQ )@@G@@ 7 COMPARATIVE @D@@@@ .GT. 7 SR )@@G@@ COMPARATIVE @D@@@@ .L. 7 SS )@@G@@ COMPARATIVE @D@@@@ .LE. 7 COMST )@@G@@PARATIVE @D@@@@ .LT. 7 COMPARATIVE SU )@@G@@@D@@@@ .NE. 7 COMPARATIVE @D@@@@ + SV )@@G@@ 8 COMPUTATIONAL @D@@@@ - 8 SW )@@G@@ COMPUTATIONAL @D@@@@ * 9 SX )@@G@@ COMPUTATIONAL @D@@@@ / 9 COMSY )@@G@@PUTATIONAL @D@@@@ // 9 COMPUTATIONAL SZ )@@G@@@D@@@@ .MOD. 9 COMPUTATIONAL @D@@@@ .NEGTA )@@G@@. 10 COMPUTATIONAL @D@@@@ ** 11 TB )@@G@@ COMPUTATIONAL @D@@@@ .P. 11 TC )@@G@@ COMPUTATIONAL @D@@@@ .DIM. 12 COMTD )@@G@@PUTATIONAL @D@@@@ .EV. 12 MANIPULATIVE TE )@@G@@@D@@@@ .FIND. 12 MISCELLANEOUS @D@@@@ .LOCTF )@@G@@ATE. 12 MISCELLANEOUS @D@@@@ .MAX. 12 TG )@@G@@ COMPUTATIONAL @D@@@@ .MIN. 12 TH )@@G@@ COMPUTATIONAL @D@@@@ .V. 12 MANTI )@@G@@IPULATIVE @D@@@@ .A. 13 MANIPULATIVE TJ )@@G@@@D@@@@ .ABS. 14 COMPUTATIONAL @D@@@@ .CONTK )@@G@@J. 14 COMPUTATIONAL @D@@@@ .INT. 14 TL )@@G@@ COMPUTATIONAL @D@@@@ .LS. 14 TM )@@G@@ MANIPULATIVE @D@@@@ .LSC. 14 MANTN )@@G@@IPULATIVE @D@@@@ .N. 14 MANIPULATIVE TO )@@G@@@D@@@@ .NABS. 14 COMPUTATIONAL @D@@@@ .RS.TP )@@G@@ 14 MANIPULATIVE @D@@@@ .RSC. 14 TQ )@@G@@ MANIPULATIVE @D@@@@ .SIGN. 14 TR )@@G@@ COMPUTATIONAL @D@@@@ .BOOL. 15 CONTS )@@G@@VERSION @D@@@@ .CMPLX. 15 CONVERSION TT )@@G@@@D@@@@ .DOUBLE. 15 CONVERSION @[@@@@*****^TU )@@G@@@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) TV )@@G@@ 3- 28@[@@@@ @[@@@@ @[@@@@ @D@@@@ .FIX. 15 TW )@@G@@ CONVERSION @D@@@@ .FLOAT. 15 TX )@@G@@ CONVERSION @D@@@@ .IMAG. 15 CONVERSIOTY )@@G@@N @D@@@@ .REAL. 15 CONVERSION @D@@@@TZ )@@G@@ .SINGLE. 15 CONVERSION @D@@@@ .LOC. UA )@@G@@ 16 MISCELLANEOUS @[@@@@*****^@G@@@@A GUIDE TO PUB )@@G@@ROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) 3- 29@[@@@@ UC )@@G@@@[@@@@ @[@@@@ @[@@@@ @[@@@@ @^@@@@ 3. 4. EXPRESSIUD )@@G@@ONS @[@@@@ @[@@@@ @F@@@@ EXPRESSIONS CAN BE GROUPED INUE )@@G@@TO THREE CATEGORIES: SIMPLE @F@@@@ EXPRESSIONS, ALTERNATIVE EXPRESSIONUF )@@G@@S, AND ITERATIVE EXPRESSIONS. @F@@@@ UNDER 'SIMPLE EXPRESSIONS' FALL ALLUG )@@G@@ LEGAL COMBINATIONS OF OPERA- @G@@@@ TORS AND OPERANDS AS DESCRIBED IN TUH )@@G@@HE PRECEDING TWO SECTIONS. THE @F@@@@ ALTERNATIVE EXPRESSION AND THUI )@@G@@E ITERATIVE EXPRESSION ARE SPECIAL @F@@@@ COMMA-PUNCTUATED COMPOUND FORUJ )@@G@@MS. THERE ARE NO INSTANCES IN RALPH@F@@@@ WHERE ONE TYPE OF EXPRESSION UK )@@G@@IS CONTEXTUALLY LEGAL AND ANOTHER IS@[@@@@ NOT. @[@@@@ @A@@@@ 3. 4UL )@@G@@. 1. SIMPLE EXPRESSIONS @[@@@@ @F@@@@ A SIMPLE EXPRESSIUM )@@G@@ON IS A COMBINATION OF OPERATOR(S) AND @]@@@@ OPERANDS. @[@@@@ UN )@@G@@@D@@@@ EXAMPLES: (ALL OF THE FOLLOWING ARE @C@@@@ UO )@@G@@ SIMPLE EXPRESSIONS) @[@@@@ @E@@@@ A+B UP )@@G@@ B*C+D A+B.P.C P+(Q+R*(S.LS.T)) SQRT.(A-B)@[@@@@ @F@@@@ UQ )@@G@@ A SIMPLE EXPRESSION IS BROKEN DOWN BY THE COMPILER INTO A @F@@@@ SEQUEUR )@@G@@NCE OF OPERAND-OPERATOR-OPERAND TRIPLES. FOR EXAMPLE, THE @]@@@@ STATEUS )@@G@@MENT @[@@@@ @A@@@@ A = B + C * D + ( E / F + G )@[@@@@ UT )@@G@@@F@@@@ WILL BE BROKEN DOWN INTO THE FOLLOWING 'SUBSTATEMENTS' UU )@@G@@@[@@@@ @[@@@@ @ @@@@ TEMP1 = E / F @A@@@@ UV )@@G@@ TEMP2 = TEMP1 + G @ @@@@ TEMP3 = C * D @A@@@@UW )@@G@@ TEMP4 = B + TEMP3 @A@@@@ TEMP5 = TEMP4 +UX )@@G@@ TEMP2@^@@@@ A = TEMP5@[@@@@ @[@@@@ @[@@@@ UY )@@G@@@F@@@@ THE ORDER OF THE SUBEXPRESSION BREAKDOWN BY THE COMPILER UZ )@@G@@@G@@@@ DEPENDS UPON PARENTHESIS USE AND OPERATOR PRECEDENCE. 'TEMP1' ANVA )@@G@@D @F@@@@ SO ON ARE SPECIAL TEMPORARY-STORAGE SPOTS GENERATED BY THE VB )@@G@@COMPI-@[@@@@ LER. @[@@@@ @[@@@@ @B@@@@ 3. 4. 2. THE ALTERNAVC )@@G@@TIVE EXPRESSION @[@@@@ @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WVD )@@G@@ITH RALPH (DECEMBER 1971 VERSION) 3- 30@[@@@@ @[@@@@ VE )@@G@@@[@@@@ @F@@@@ THE ALTERNATIVE EXPRESSION IS A COMBINED BOOLEAVF )@@G@@N/ARITHMETIC@F@@@@ EXPRESSION WHICH CAN SELECT ONE OF TWO VALUES DEPENDIVG )@@G@@NG UPON A @A@@@@ BOOLEAN CONDITION. IT HAS THE FORM@[@@@@ @D@@@@VH )@@G@@ [,,] @[@@@@ @F@@@@VI )@@G@@ WHERE THE VALUE-I CAN BE ANY EXPRESSIONS. THE ENTIRE EXPRESSION @F@@@@VJ )@@G@@ IS EQUAL TO IF IS TRUE, AND IS @D@@@@VK )@@G@@ EQUAL TO IF IS FALSE. @[@@@@ @^@@@@VL )@@G@@ EXAMPLES:@^@@@@ =========@[@@@@ @ @@@@VM )@@G@@ X = [A.G.B,A(I),A(I-1)]@C@@@@ WILL SET X=AVN )@@G@@(I) IF A>B @D@@@@ X=A(I-1) OTHERWISE VO )@@G@@@[@@@@ @B@@@@ TRANSFER TO [A.GT.J,AGAIN,BEFORE] @C@@@@ VP )@@G@@ WILL TRANSFER TO AGAIN IF A>J @D@@@@ VQ )@@G@@ BEFORE OTHERWISE. @[@@@@ @[@@@@ @F@@@@ AN ALVR )@@G@@TERNATIVE EXPRESSION MAY BE USED IN ANY CONTEXT WHERE @F@@@@ AN ARITHMETVS )@@G@@IC EXPRESSION IS LEGAL, EXCEPT IN THE 'PARAMETER' @]@@@@ STATEMENT. VT )@@G@@@[@@@@ @B@@@@ 3. 4. 3. THE ITERATIVE EXPRESSION @[@@@@ VU )@@G@@@F@@@@ THE ITERATIVE EXPRESSION IS A MEANS OF INCLUDING AN ITERA- VV )@@G@@@F@@@@ TION OR ITERATION-DRIVEN CALCULATION IN ANY ARITHMETIC CONTEXT. VW )@@G@@@E@@@@ THE GENERAL FORM OF AN ITERATIVE ARITHMETIC EXPRESSION IS: @[@@@@VX )@@G@@ @E@@@@ (=,,,,...) VY )@@G@@@[@@@@ @[@@@@ @F@@@@ IS A THREE-FIELVZ )@@G@@D ITEM DEFINED EXACTLY @F@@@@ THE SAME AS THE ITERATED I/O LISTS IN SECWA )@@G@@TION A.B. AN ITERATIVE @B@@@@ EXPRESSION IS INTERPRETED AS FOLLOWS: WB )@@G@@@[@@@@ @F@@@@ THE UPON WHICH THE ITERATIVE EXPRESSWC )@@G@@ION IS BASED@F@@@@ IS GIVEN ITS INITIAL VALUE, . FOR EACH TIME THWD )@@G@@E ITERATION @F@@@@ IS PERFORMED, THE ENTIRE STRING OF EXPRESSIONS AND STWE )@@G@@ATEMENTS IS @ @@@@ SCANNED, FROM LEFT TO RIGHT. @[@@@@ @F@@@@ WF )@@G@@ IF AN EXPRESSION IS INCLUDED IN THE IN THE LIST, THE@B@@@@ VARIAWG )@@G@@BLE IS SET EQUAL TO THE EXPRESSION. @[@@@@ @F@@@@ IF A SIMPLEWH )@@G@@ ARITHMETIC STATEMENT IS INCLUDED IN THE ,@F@@@@ IT IS PROCESSED, WI )@@G@@THE VARIABLE IS NOT CHANGED, AND THE NEXT @]@@@@ TAKEN. @[@@@@WJ )@@G@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) WK )@@G@@ 3- 31@[@@@@ @[@@@@ @[@@@@ @[@@@@ @F@@@@ WL )@@G@@ THE VALUE OF AN ITERATIVE EXPRESSION IS DEFINED TO BE THE @D@@@@ VALUEWM )@@G@@ OF WHEN THE ITERATION TERMINATES. @[@@@@ @F@@@@ WN )@@G@@ IF DESIRED, THE INITIAL VALUE ASSIGNED TO THE ITERATION @F@@@@ VARIAWO )@@G@@BLE MAY BE OMITTED: THE FOLLOWING CONSTRUCTION IS LEGAL-- @[@@@@ WP )@@G@@@D@@@@ (,,,,...) @[@@@@ WQ )@@G@@@F@@@@ THE BEHAVIOR OF THIS FORM IS EXACTLY THE SAME AS THAT OF THE ONE WR )@@G@@@F@@@@ DISCUSSED ABOVE SAVE THAT THERE IS NO INITIAL VALUE ASSIGNED TO WS )@@G@@@#@@@@ THE . @[@@@@ @^@@@@ EXAMPLES:@^@@@@WT )@@G@@ =========@[@@@@ @B@@@@ MEAN=(SUM=0,I=1,1,I.G.NWU )@@G@@,SUM+X(I))/N@[@@@@ @E@@@@ STDEV=SQRT.((SUM=0,I=1,1,I.G.N,SUM+WV )@@G@@(X(I)-MEAN)**2)/N)@[@@@@ @E@@@@ A=(X(J)=23,I=-3,4,I.G.PP,X(I)WW )@@G@@=X(I-1)*I,X(J)+SIN(I)) @[@@@@ @D@@@@ ANSWER = (ANSWER,I=1,1,WX )@@G@@I.G.N,ANSWER+OB(I,J)) @[@@@@ @[@@@@ @F@@@@ AN ITERATIVWY )@@G@@E EXPRESSION IS LEGAL IN ANY CONTEXT WHERE AN @F@@@@ EXPRESSION IS LEGWZ )@@G@@AL. IF AN ITERATIVE EXPRESSION IS USED IN A @F@@@@ FORTRAN I/O LIST,XA )@@G@@ IT MUST BE ENCLOSED IN AN EXTRA SET OF PAREN- @F@@@@ THESES TO ENABLE XB )@@G@@THE COMPILER TO DISTINGUSH IT FROM AN ITERATIVE @[@@@@ LIST.@[@@@@ XC )@@G@@@B@@@@ 3. 4. 4. OPERATOR-MODE COMBINATIONS @[@@@@ @F@@@@ XD )@@G@@ THE OPERANDS OF ALL OPERATORS MUST BE OF APPROPRIATE MODE. @F@@@@ AN ERXE )@@G@@ROR MESSAGE WILL BE GENERATED, AND THE COMPUTATION IGNORED, @F@@@@ IF ANXF )@@G@@ OPERATOR IS USED WITH OPERANDS OF ILLEGAL MODE. FOR THE @F@@@@ 'COMPXG )@@G@@UTATIONAL' OPERATORS, IF THE LEFT AND RIGHT OPERAND MODES @F@@@@ DIFFEXH )@@G@@R, THE OPERAND WHOSE MODE NUMBER IS LOWER WILL BE CONVERTED @F@@@@ TO THXI )@@G@@E HIGHER MODE (SEE SECTION 3.1 FOR A TABLE OF MODE NUMBERS).@F@@@@ THOSEXJ )@@G@@ MODES WHOSE NUMBER IS 4 OR LESS ARE DENOTED 'COMPUTATIONAL'@]@@@@ MODESXK )@@G@@. @[@@@@ @ @@@@ 3. 4. 5. MODE CONVERSION @[@@@@ @F@@@@XL )@@G@@ AT THE TIME THAT RALPH IS BREAKING AN EXPRESSION DOWN INTO @F@@@@XM )@@G@@ TRIPLES, MODES ARE IGNORED. IN A LATER PASS OF THE COMPILER, @F@@@@XN )@@G@@ MODES ARE TAKEN INTO CONSIDERATION AND CODE PRODUCED. IF DEFINED@F@@@@XO )@@G@@ FOR THE OPERATOR AT HAND (COMPUTATIONAL OPERATORS), A TRIPLE IS @F@@@@XP )@@G@@ EVALUATED IN THE HIGHER OF ITS TWO MODES, AND ITS OUTPUT IS ALSO @A@@@@XQ )@@G@@ DEFINED TO BE OF THIS HIGHER MODE. @[@@@@*****^@G@@@@A GUIDE TO PROGRAMXR )@@G@@MING WITH RALPH (DECEMBER 1971 VERSION) 3- 32@[@@@@ @[@@@@XS )@@G@@ @[@@@@ @[@@@@ @F@@@@ FOR EXAMPLE, THE TRIPLE 1+2.0XT )@@G@@ WILL BE EVALUATED IN FLOATING@F@@@@ POINT AND PRODUCE A FLOATING-POINT XU )@@G@@3.0 FOR A RESULT. THE TRIPLE @C@@@@ 1+2, HOWEVER, WILL BE EVALUATED IN XV )@@G@@INTEGER. @[@@@@ @F@@@@ ALTHOUGH THE COMPILER WILL READILY XW )@@G@@CONVERT MODES AS NEEDED,@F@@@@ THE OBJECT CODE PRODUCED IS LESS EFFICIENXX )@@G@@T WHEN LARGE NUMBERS OF @F@@@@ MODE CONVERSIONS ARE BEING MADE. IT IS GXY )@@G@@OOD PROGRAMMING PRACTICE@F@@@@ TO AVOID MIXED-MODE EXPRESSIONS WHERE POSXZ )@@G@@SIBLE. MODE CONVERSIONS@E@@@@ ON CONSTANTS ARE MADE BY THE OPTIMIZER, AYA )@@G@@ND WILL NOT AFFECT@F@@@@ GENERATED OBJECT CODE, SO ONE NEED NOT WORRY ABYB )@@G@@OUT MODES OF CON- @A@@@@ STANTS IN COMPUTATIONAL USAGE. @[@@@@ YC )@@G@@@F@@@@ IT IS IMPORTANT TO NOTE THAT THE PRESENCE OF A HIGHER-MODE YD )@@G@@@F@@@@ OPERAND IN AN EXPRESSION DOES NOT FORCE ANY COMPUTATIONS TO TAKE YE )@@G@@@G@@@@ PLACE IN THAT MODE UNTIL THE OPERAND IS ACTUALLY REFERENCED. SOMYF )@@G@@E @G@@@@ COMPILERS IMMEDIATELY UPGRADE ALL ELEMENTS OF AN EXPRESSIONYG )@@G@@ TO THE @G@@@@ HIGHEST MODE. IN ORDER TO MINIMIZE EXECUTION TIME, RYH )@@G@@ALPH DOES NOT @F@@@@ UPGRADE THE MODE OF A CALCULATION UNTIL IT IS FYI )@@G@@ORCED TO DO SO. @[@@@@ @A@@@@ 3. 4. 6. OPERATOR PRECEDENCE YJ )@@G@@@[@@@@ @[@@@@ @G@@@@ EACH OPERATOR IS ASSIGNED A PRECEDEYK )@@G@@NCE VALUE; IN THE ABSENCE @F@@@@ OF PARENTHESES, OPERATORS WITH HIGHYL )@@G@@ER PRECEDENCE ARE EVALUATED @F@@@@ FIRST. IN GENERAL, AN EXPRESSION IYM )@@G@@NSIDE PARENTHESES IS EVALUATED@F@@@@ BEFORE ANY EXPRESSION OUTSIDE PARENYN )@@G@@THESES. WITHIN A PARENTHESIS @G@@@@ GROUP, NORMAL PRECEDENCE RULES APPLYO )@@G@@Y. DISTINCT PARENTHESIS GROUPS @F@@@@ ARE EVALUATED IN RIGHT-TO-LEFYP )@@G@@T ORDER NORMALLY. FOR A COMPLETE @G@@@@ DISCUSSION OF THE SCANNING PRYQ )@@G@@OCESS FOR ARITHMETIC EXPRESSIONS, SEE @F@@@@ THE SECTION OF 'PROGRAMYR )@@G@@MING SYSTEMS AND LANGUAGES' (SAUL ROSEN, @E@@@@ ED: MCGRAW-HILL & CO. YS )@@G@@C. 1967) ENTITLED 'BOUNDED-CONTEXT @#@@@@ TRANSLATION'. @[@@@@ YT )@@G@@@[@@@@ @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBEYU )@@G@@R 1971 VERSION) 4- 1@[@@@@ @[@@@@ @[@@@@ @ @@@@YV )@@G@@ 4. ASSIGNMENT STATEMENTS @[@@@@ @[@@@@ @[@@@@ @F@@@@YW )@@G@@ ASSIGNMENT STATEMENTS PERFORM CALCULATIONS. THERE ARE TWO @G@@@@YX )@@G@@ TYPES OF ASSIGNMENT STATEMENTS: SIMPLE AND ITERATIVE. THE SIMPLE YY )@@G@@@F@@@@ ASSIGNMENT STATEMENT IS THE ONE MOST COMMONLY USED; THE ITERATIVEYZ )@@G@@@F@@@@ ASSIGNMENT STATEMENT IS A LUXURY GLEANED FROM ALGOL 60 AND COU- ZA )@@G@@@F@@@@ SINS, AND IS SIMPLY A COMPACT WAY OF DOING A LOT OF THINGS AT ZB )@@G@@@[@@@@ ONCE.@[@@@@ @[@@@@ @B@@@@ 4. 1. SIMPLE ASSIGNMENT STZC )@@G@@ATEMENTS @[@@@@ @[@@@@ @[@@@@ @[@@@@ @E@@@@ ZD )@@G@@ A SIMPLE ASSIGNMENT STATEMENT IS OF THE FORM @[@@@@ @[@@@@ZE )@@G@@ @A@@@@ = @[@@@@ @E@@@@ ZF )@@G@@ (AN ALTERNATE MULTIPLE FORM IS ALLOWED): @[@@@@ @E@@@@ZG )@@G@@ = = ... = @[@@@@ ZH )@@G@@@[@@@@ @F@@@@ THE EXAMPLE OF THE FIRST CASE SETS THE VARIABLEZI )@@G@@ ON THE LEFT@F@@@@ SIDE OF THE EQUALS SIGN TO THE VALUE COMPUTED IN THE ZJ )@@G@@EXPRESSION @F@@@@ WHICH IS ON THE RIGHT SIDE OF THE EQUALS SIGN. THE SZK )@@G@@ECOND FORM @F@@@@ SETS ALL OF THE VARIABLES-I TO THE VALUE COMPUTED FORZL )@@G@@ THE EXPRES-@E@@@@ SION, IN ORDER FROM RIGHT TO LEFT. THUS, THE STATEMEZM )@@G@@NT @[@@@@ @ @@@@ A(N) = N = A(K) = K = 7@[@@@@ @E@@@@ZN )@@G@@ WILL SET K=7, THEN A(7)=7, THEN N=7, THEN A(7)=7. @[@@@@ ZO )@@G@@@^@@@@ EXAMPLES:@[@@@@ @]@@@@ X = Y@#@@@@ ZP )@@G@@ A(3,1) = 0 @A@@@@ X(4) = B = C = D(1,1) = 2+H @E@@@@ A(Y,IZQ )@@G@@+Y*SIN(9)) = 24.2//MIN(A,B,C)**MAX(D,E,F/G) @[@@@@ @[@@@@ ZR )@@G@@@B@@@@ 4. 2. ITERATIVE ASSIGNMENT STATEMENTS @[@@@@ @[@@@@ ZS )@@G@@@[@@@@ @E@@@@ AN ITERATIVE ASSIGNMENT STATEMENT IS OF THE FORZT )@@G@@M @[@@@@*****^@G@@@@A GUIDE TO PROGRAMMING WITH RALPH (DECEMBER 1971ZU )@@G@@ VERSION) 4- 2@[@@@@ @[@@@@ @[@@@@ @[@@@@ ZV )@@G@@@B@@@@ (,)@[@@@@ @F@@@@ ZW )@@G@@ WHERE IS EITHER A STRING OF SIMPLE @G@@@@ ASSIGZX )@@G@@NMENT STATEMENTS SEPARATED BY COMMAS, OR A COMPLETE ITERATIVE @F@@@@ZY )@@G@@ ASSIGNMENT STATEMENT. THIS LAST CONSTRUCTION PERMITS NESTING OF @^@@@@ZZ )@@G@@ ITERATION CONTROL. @[@@@@ @F@@@@ THE AA )@@G@@ IS OF EXACTLY THE SAME FORM AS THE @F@@@@ ITERATION CONTROL DISCUSSED IAB )@@G@@N SECTION A.B FOR THE 'ITERATED I/O @G@@@@ LIST'. EFFECTIVELY, THE ITERAC )@@G@@ATIVE ASSIGNMENT STATEMENT SETS UP AN @F@@@@ IMPLIED LOOP STRUCTURE,AD )@@G@@ WITH AN EVENTUAL STRING OF SIMPLE ASSIGN-@C@@@@ MENT STATEMENTS FORMINGAE )@@G@@ THE BODY OF THE LOOP. @[@@@@ @^@@@@ EXAMPLES:@[@@@@AF )@@G@@ @D@@@@ (I=1,1,I.G.N,A(I)=B(I)=C(I)=0,A(J-I)=B(JI+1))) @[@@@@AG )@@G@@ @E@@@@ (J=1,1,J.G.4,(K=1,1,K.G.4,X(J,K)=A(K,L)*B(L,J))) AH )@@G@@@[@@@@ @[@@@@ @F@@@@ NOTE: IF X IS A VALID ITERATIVE ASAI )@@G@@SIGNMENT STATEMENT, THEN@F@@@@ (ITERATION CONTROL,(X)) IS ALSO A VALID IAJ )@@G@@TERATIVE ASSIGNMENT @F@@@@ STATEMENT. HOWEVER, (ITERATION CONTROL, AK )@@G@@(X),OTHER STATEMENT) IS @C@@@@ *NOT* A VALID ITERATIVE ASSIGNMENT STATEAL )@@G@@MENT!!@[@@@@ @[@@@@ @B@@@@ 4. 3. THE OPERAND REVERSAL STATEAM )@@G@@MENT @[@@@@ @[@@@@ @G@@@@ OFTEN IT IS NICE TO BE ABLE TAN )@@G@@O SWITCH TWO VARIABLES; SORTING @G@@@@ AND COLLATING GIVE RISE TO THAO )@@G@@IS SORT OF NEED. THE REVERSAL STATE- @[@@@@ MENT @[@@@@ @B@@@@AP )@@G@@ == @[@@@@ @G@@@@ WILL SWAP TAQ )@@G@@HE TWO OPERANDS. EACH MAY BE ANY ITEM WHICH @F@@@@ IS INAR )@@G@@ ITSELF LEGAL ON THE LEFT HALF OF AN EQUALS SIGN. BOTH LEFT@C@@@@ AND RAS )@@G@@IGHT OPERANDS MUST BE OF THE SAME MODE. @[@@@@ @[@@@@ @[@@@@AT )@@G@@ @D@@@@ 4. 4. MODE CONVERSION IN ASSIGNMENT STATEMENTS @[@@@@AU )@@G@@ @[@@@@ @[@@@@ @E@@@@ WHEN A SIMPLE ASSIGNMENT STATAV )@@G@@EMENT IS PROCESSED, THE @G@@@@ RIGHT-HAND SIDE IS EVALUATED COMPLETELY AAW )@@G@@CCORDING TO THE RULES FOR @G@@@@ EVALUATION OF EXPRESSIONS AS SET FOAX )@@G@@RTH IN SECTION 3.4. AFTER THIS @G@@@@ EXPRESSION HAS BEEN EVALUATEDAY )@@G@@, WITH MODE CONVERSIONS AS NECESSARY, @[@@@@*****^@G@@@@A GUIDE TO PAZ )@@G@@ROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) 4- 4@[@@@@ BA )@@G@@@[@@@@ @[@@@@ @F@@@@ THE RIGHT-HAND EXPRESSION IS THEN CONVERTBB )@@G@@ED TO THE MODE OF THE @ @@@@ LEFT OPERAND AND STORED. @[@@@@ BC )@@G@@@ @@@@ THUS, THE STATEMENT @[@@@@ @#@@@@ X = 3 / 5 BD )@@G@@@[@@@@ @B@@@@ WILL BE EQUIVALENT TO THE STATEMENT@[@@@@ BE )@@G@@@#@@@@ X = 0. @[@@@@ @G@@@@ BECAUSE THE DIVISION WIBF )@@G@@LL BE EVALUATED IN INTEGER ARITHMETIC @C@@@@ AND WILL YIELD ZERO BY BG )@@G@@TRUNCATION. HOWEVER, @[@@@@ @#@@@@ X = 3. / 5 @[@@@@ BH )@@G@@@B@@@@ WILL BE EQUIVALENT TO THE STATEMENT@[@@@@ @#@@@@ BI )@@G@@ X = 0.6 @[@@@@ @G@@@@ BECAUSE THE PRESENCE OF THE FLOATINBJ )@@G@@G POINT OPERAND (3.) WILL @F@@@@ FORCE THE ENTIRE DIVISION TO BE CARBK )@@G@@RIED OUT IN FLOATING POINT. @[@@@@ @[@@@@*****^@G@@@@A GUIDE TO PBL )@@G@@ROGRAMMING WITH RALPH (DECEMBER 1971 VERSION) 5- 1@[@@@@ BM )@@G@@@[@@@@ @[@@@@ @ @@@@ 5. CONTROL STATEMENTS @[@@@@ BN )@@G@@@[@@@@ @[@@@@ @G@@@@ CONTROL STATEMENTS GOVERN PROGRAM FBO )@@G@@LOW, I.E. THE TRANSFER OF @G@@@@ CONTROL FROM ONE SECTION OF THE PROBP )@@G@@GRAM TO ANOTHER, THE REPETITION @A@@@@ OF SECTIONS OF THE PROGRAM, EBQ )@@G@@TC. @[@@@@ @[@@@@ @ @@@@ 5. 1. TRANSFER OF CONTROL @[@@@@BR )@@G@@ @[@@@@ @F@@@@ RALPH-COMPILED STATEMENTS ARE NORMALLY EXBS )@@G@@ECUTED SEQUENTIAL-@F@@@@ LY. ANY DEVIATION FROM THIS PATTERN MUST BE ACBT )@@G@@COMPLISHED THROUGH@F@@@@ THE USE OF A 'TRANSFER OF CONTROL' STATEMENT. BU )@@G@@PROGRAM EXECUTION @F@@@@ IS RESUMED AT THE NEW STATEMENT, THUS THE NEXT BV )@@G@@EXECUTABLE STATE- @F@@@@ MENT AFTER A TRANSFER OF CONTROL STATEMENT MUSTBW )@@G@@ HAVE A STATEMENT @F@@@@ LABEL, ELSE THERE WILL BE NO POSSIBLE WAY FOR TBX )@@G@@HE PROGRAM EVER TO@^@@@@ REACH THAT STATEMENT. @[@@@@ @A@@@@ 5. 1BY )@@G@@. 1. UNCONDITIONAL TRANSFER @[@@@@ @G@@@@ AN UNCONDITIONAL BZ )@@G@@TRANSFER STATEMENT CAUSES PROGRAM EXECUTION @F@@@@ TO BE TRANSFERREDCA )@@G@@ TO ANOTHER PART OF THE PROGRAM. THE GENERAL @E@@@@ FORM OF THE ABSOLCB )@@G@@UTE (UNCONDITIONAL) TRANSFER STATEMENT IS:@[@@@@ @B@@@@ (FORTCC )@@G@@RAN): GO TO