ࡱ>  (x/ / 0DArialr Newmanttz 0DComic Sans MSnttz 0B DWingdings MSnttz 00DTimes New Romanttz 0@DSymbolew Romanttz 0PDCourier Newmanttz 01@ .  @n?" dd@  @@`` 80 7 jR -r[3|&+-G(!4--PPw4vQ7r "f     8-/!.R?_)   4(3 mJ v-   )p 60>!.+/ N] 7"f5 04vD6mC@0d:(W   +xK7 $ %"!L1O 6C#"L <6@Ek7}(`:\3Q4'$#("**'!/!,,][j~D;dAEef8[mzD    Krhh.W ' \ =,W=Y 0AA fff@8wrTʚ;3 ;ʚ;g4dddd8 0fppp@ <4dddd@w 0t|z <4BdBd@x 0t80___PPT10 ZZ?  %O  =XFloating Point ,COE 308 Computer Architecture Prof. Muhamed Mudawar Computer Engineering Department King Fahd University of Petroleum and MineralsB4Z 0Zd/Z ,OPresentation OutlineFloating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions FThe World is Not Just IntegersProgramming languages support numbers with fraction Called floating-point numbers Examples: 3.14159265& () 2.71828& (e) 0.000000001 or 1.0 10 9 (seconds in a nanosecond) 86,400,000,000,000 or 8.64 1013 (nanoseconds in a day) last number is a large integer that cannot fit in a 32-bit integer We use a scientific notation to represent Very small numbers (e.g. 1.0 10 9) Very large numbers (e.g. 8.64 1013) Scientific notation: d . f1f2f3f4 & 10 e1e2e3f4 #( # #* # #4 a a C !$    4kE'Floating-Point NumbersExamples of floating-point numbers in base 10 & 5.341103 , 0.05341105 ,  2.01310 1 ,  201.310 3 Examples of floating-point numbers in base 2 & 1.00101223 , 0.0100101225 ,  1.1011012 3 ,  1101.1012 6 Exponents are kept in decimal for clarity The binary number (1101.101)2 = 23+22+20+2 1+2 3 = 13.625 Floating-point numbers should be normalized Exactly one non-zero digit should appear before the point In a decimal number, this digit can be from 1 to 9 In a binary number, this digit should be 1 Normalized FP Numbers: 5.341103 and  1.1011012 3 NOT Normalized: 0.05341105 and  1101.1012 60 #7 #/ # #, #: #^ #c #0/ A!       ,   (                  d Floating-Point Representation A floating-point number is represented by the triple S is the Sign bit (0 is positive and 1 is negative) Representation is called sign and magnitude E is the Exponent field (signed) Very large numbers have large positive exponents Very small close-to-zero numbers have negative exponents More bits in exponent field increases range of values F is the Fraction field (fraction after binary point) More bits in fraction field improves the precision of FP numbers Value of a floating-point number = (-1)S val(F) 2val(E)54,!6A= 5 "       ) )    Next . . .Floating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions( F! IEEE 754 Floating-Point Standard!!Found in virtually every computer invented since 1980 Simplified porting of floating-point numbers Unified the development of floating-point algorithms Increased the accuracy of floating-point numbers Single Precision Floating Point Numbers (32 bits) 1-bit sign + 8-bit exponent + 23-bit fraction Double Precision Floating Point Numbers (64 bits) 1-bit sign + 11-bit exponent + 52-bit fraction62/2 P/6"."/ !Normalized Floating Point NumbersvFor a normalized floating point number (S, E, F) Significand is equal to (1.F)2 = (1.f1f2f3f4& )2 IEEE 754 assumes hidden 1. (not stored) for normalized numbers Significand is 1 bit longer than fraction Value of a Normalized Floating Point Number is ( 1)S (1.F)2 2val(E) ( 1)S (1.f1f2f3f4 & )2 2val(E) ( 1)S (1 + f12-1 + f22-2 + f32-3 + f42-4 & )2 2val(E) ( 1)S is 1 when S is 0 (positive), and  1 when S is 1 (negative)20 Fi0 <dB d(      ( 6               Biased Exponent RepresentationzHow to represent a signed exponent? Choices are & Sign + magnitude representation for the exponent Two s complement representation Biased representation IEEE 754 uses biased representation for the exponent Value of exponent = val(E) = E  Bias (Bias is a constant) Recall that exponent field is 8 bits for single precision E can be in the range 0 to 255 E = 0 and E = 255 are reserved for special use (discussed later) E = 1 to 254 are used for normalized floating point numbers Bias = 127 (half of 254), val(E) = E  127 val(E=1) =  126, val(E=127) = 0, val(E=254) = 1272 #g #5 #; #: # #2g                                                             b    0Biased Exponent  Cont dFor double precision, exponent field is 11 bits E can be in the range 0 to 2047 E = 0 and E = 2047 are reserved for special use E = 1 to 2046 are used for normalized floating point numbers Bias = 1023 (half of 2046), val(E) = E  1023 val(E=1) =  1022, val(E=1023) = 0, val(E=2046) = 1023 Value of a Normalized Floating Point Number is ( 1)S (1.F)2 2E  Bias ( 1)S (1.f1f2f3f4 & )2 2E  Bias ( 1)S (1 + f12-1 + f22-2 + f32-3 + f42-4 & )2 2E  Bias 0/ Fh     5                 P  "Examples of Single Precision FloatWhat is the decimal value of this Single Precision float? Solution: Sign = 1 is negative Exponent = (01111100)2 = 124, E  bias = 124  127 =  3 Significand = (1.0100 & 0)2 = 1 + 2-2 = 1.25 (1. is implicit) Value in decimal =  1.25 2 3 =  0.15625 What is the decimal value of? Solution: Value in decimal = +(1.01001100 & 0)2 2130 127 = (1.01001100 & 0)2 23 = (1010.01100 & 0)2 = 10.375E   36 "           "Examples of Double Precision FloatvWhat is the decimal value of this Double Precision float ? Solution: Value of exponent = (10000000101)2  Bias = 1029  1023 = 6 Value of double float = (1.00101010 & 0)2 26 (1. is implicit) = (1001010.10 & 0)2 = 74.5 What is the decimal value of ? Do it yourself! (answer should be  1.5 2 7 =  0.01171875) G #~ # #] #"      !               Converting FP Decimal to BinaryConvert  0.8125 to binary in single and double precision Solution: Fraction bits can be obtained using multiplication by 2 0.8125 2 = 1.625 0.625 2 = 1.25 0.25 2 = 0.5 0.5 2 = 1.0 Stop when fractional part is 0 Fraction = (0.1101)2 = (1.101)2 2  1 (Normalized) Exponent =  1 + Bias = 126 (single precision) and 1022 (double)C 8 ` t 9 8  "      Largest Normalized FloatWhat is the Largest normalized float? Solution for Single Precision: Exponent  bias = 254  127 = 127 (largest exponent for SP) Significand = (1.111 & 1)2 = almost 2 Value in decimal H" 2 2127 H" 2128 H" 3.4028 & 1038 Solution for Double Precision: Value in decimal H" 2 21023 H" 21024 H" 1.79769 & 10308 Overflow: exponent is too large to fit in the exponent fieldF # #! #9 #= #          dSmallest Normalized FloatWhat is the smallest (in absolute value) normalized float? Solution for Single Precision: Exponent  bias = 1  127 =  126 (smallest exponent for SP) Significand = (1.000 & 0)2 = 1 Value in decimal = 1 2 126 = 1.17549 & 10 38 Solution for Double Precision: Value in decimal = 1 2 1022 = 2.22507 & 10 308 Underflow: exponent is too small to fit in exponent field[ # #! #3 #: # '       Zero, Infinity, and NaNZero Exponent field E = 0 and fraction F = 0 +0 and  0 are possible according to sign bit S Infinity Infinity is a special value represented with maximum E and F = 0 For single precision with 8-bit exponent: maximum E = 255 For double precision with 11-bit exponent: maximum E = 2047 Infinity can result from overflow or division by zero +" and  " are possible according to sign bit S NaN (Not a Number) NaN is a special value represented with maximum E and F `" 0 Result from exceptional situations, such as 0/0 or sqrt(negative) Operation on a NaN results is NaN: Op(X, NaN) = NaN X  A v e   - - d   7`% `  d $$$$($$$$$$$$$$$$($(,,h,,,, ,,l  Denormalized Numbers  IEEE standard uses denormalized numbers to & Fill the gap between 0 and the smallest normalized float Provide gradual underflow to zero Denormalized: exponent field E is 0 and fraction F `" 0 Implicit 1. before the fraction now becomes 0. (not normalized) Value of denormalized number ( S, 0, F ) Single precision: ( 1) S (0.F)2 2 126 Double precision: ( 1) S (0.F)2 2 1022-[7@), <- -A $      !                                                        > i t mFloating-Point ComparisonIEEE 754 floating point numbers are ordered Because exponent uses a biased representation & Exponent value and its binary representation have same ordering Placing exponent before the fraction field orders the magnitude Larger exponent larger magnitude For equal exponents, Larger fraction larger magnitude 0 < (0.F)2 2Emin < (1.F)2 2E Bias < " (Emin = 1  Bias) Because sign bit is most significant quick test of signed < Integer comparator can compare magnitudes,`# 0 #@`# @`# `# ?`# *`# ,02+7 (     $  ,  $  $  %*bvSummary of IEEE 754 Encoding Next . . .Floating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions( F8(WFloating Point Addition ExampleConsider adding: (1.111)2 2 1 + (1.011)2 2 3 For simplicity, we assume 4 bits of precision (or 3 bits of fraction) Cannot add significands & Why? Because exponents are not equal How to make exponents equal? Shift the significand of the lesser exponent right until its exponent matches the larger number (1.011)2 2 3 = (0.1011)2 2 2 = (0.01011)2 2 1 Difference between the two exponents =  1  ( 3) = 2 So, shift right by 2 bits Now, add the significands:1 F     3 . 5 O    ,3  .    '  2Addition Example  cont d2So, (1.111)2 2 1 + (1.011)2 2 3 = (10.00111)2 2 1 However, result (10.00111)2 2 1 is NOT normalized Normalize result: (10.00111)2 2 1 = (1.000111)2 20 In this example, we have a carry So, shift right by 1 bit and increment the exponent Round the significand to fit in appropriate number of bits We assumed 4 bits of precision or 3 bits of fraction Round to nearest: (1.000111)2 H" (1.001)2 Renormalize if rounding generates a carry Detect overflow / underflow If exponent becomes too large (overflow) or too small (underflow)0 #U #; #5 #) #* # #B #        0%5       "Floating Point Subtraction ExamplenConsider: (1.000)2 2 3  (1.000)2 22 We assume again: 4 bits of precision (or 3 bits of fraction) Shift significand of the lesser exponent right Difference between the two exponents = 2  ( 3) = 5 Shift right by 5 bits: (1.000)2 2 3 = (0.00001000)2 22 Convert subtraction into addition to 2's complement) = / o 4    ,)'    8Subtraction Example  cont d:So, (1.000)2 2 3  (1.000)2 22 =  0.111112 22 Normalize result:  0.111112 22 =  1.11112 21 For subtraction, we can have leading zeros Count number z of leading zeros (in this case z = 1) Shift left and decrement exponent by z Round the significand to fit in appropriate number of bits We assumed 4 bits of precision or 3 bits of fraction Round to nearest: (1.1111)2 H" (10.000)2 Renormalize: rounding generated a carry  1.11112 21 H"  10.0002 21 =  1.0002 22 Result would have been accurate if more fraction bits are usedi # #; #5 #P #/ #? #         %%5     ? %Floating Point Addition / Subtraction "Floating Point Adder Block Diagram  Next . . .Floating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions( F`9%Floating Point Multiplication ExamplejConsider multiplying: 1.0102 2 1 by  1.1102 2 2 As before, we assume 4 bits of precision (or 3 bits of fraction) Unlike addition, we add the exponents of the operands Result exponent value = ( 1) + ( 2) =  3 Using the biased representation: EZ = EX + EY  Bias EX = ( 1) + 127 = 126 (Bias = 127 for SP) EY = ( 2) + 127 = 125 EZ = 126 + 125  127 = 124 (value =  3) Now, multiply the significands: (1.010)2 (1.110)2 = (10.001100)24A6)5i $   ,)!      >Multiplication Example  cont dSince sign SX `" SY, sign of product SZ = 1 (negative) So, 1.0102 2 1  1.1102 2 2 =  10. 0011002 2 3 However, result:  10. 0011002 2 3 is NOT normalized Normalize: 10. 0011002 2 3 = 1.00011002 2 2 Shift right by 1 bit and increment the exponent At most 1 bit can be shifted right & Why? Round the significand to nearest: 1.00011002 H" 1.0012 (3-bit fraction) Result H"  1. 0012 2 2 (normalized) Detect overflow / underflow No overflow / underflow because exponent is within range #Z #" #M # #9 #           0 $  !Floating Point Multiplication  Next . . .Floating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions( F~! Extra Bits to Maintain PrecisionFloating-point numbers are approximations for & Real numbers that they cannot represent Infinite variety of real numbers exist between 1.0 and 2.0 However, exactly 223 fractions can be represented in SP, and Exactly 252 fractions can be represented in DP (double precision) Extra bits are generated in intermediate results when & Shifting and adding/subtracting a p-bit significand Multiplying two p-bit significands (product can be 2p bits) But when packing result fraction, extra bits are discarded We only need few extra bits in an intermediate result Minimizing hardware but without compromising precision\0(;8pq70(;  '  -8"!#"   6 7 Guard BitGuard bit: guards against loss of a significant bit Only one guard bit is needed to maintain accuracy of result Shifted left (if needed) during normalization as last fraction bit Example on the need of a guard bit: t4* + m#Round and Sticky BitspTwo extra bits are needed for rounding Just after normalizing a result significand Round bit: appears just after the normalized significand Sticky bit: appears after the round bit (OR of all additional bits) Reduce the hardware and still achieve accurate arithmetic As if result significand was computed exactly and rounded Consider the same example of previous slide:' # #-`# '   / <9-Four Rounding Modes`Normalized result has the form: 1. f1 f2 & fl r s The round bit r and sticky bit s appear after the last fraction bit fl IEEE 754 standard specifies four modes of rounding Round to Nearest Even: default rounding mode Increment result if: r s =  11 or (r s =  10 and fl =  1 ) Otherwise, truncate result significand to 1. f1 f2 & fl Round toward +": result is rounded up Increment result if sign is positive and r or s =  1 Round toward  ": result is rounded down Increment result if sign is negative and r or s =  1 Round toward 0: always truncate result2 #G #a #v #& #6 #( #6 #' #   $ 3   * d  `  `  d  d  d  d  d $`ddddd  $$(`(Example on Rounding6Round following result using IEEE 754 rounding modes:  1.11111111111111111111111 0 1 2-7 Round to Nearest Even: Truncate result since r =  0 Truncated Result:  1.11111111111111111111111 2-7 Round towards +": Round towards  ": Incremented result:  10.00000000000000000000000 2-7 Renormalize and increment exponent (because of carry) Final rounded result:  1.00000000000000000000000 2-6 Round towards 0:6 #& # #Q #$ # # #7eeeeem     (        eeemeeeeem%    (  $e$(e((e((e((m((,,(00Advantages of IEEE 754 StandardUsed predominantly by the industry Encoding of exponent and fraction simplifies comparison Integer comparator used to compare magnitude of FP numbers Includes special exceptional values: NaN and " Special rules are used such as: 0/0 is NaN, sqrt( 1) is NaN, 1/0 is ", and 1/" is 0 Computation may continue in the face of exceptional conditions Denormalized numbers to fill the gap Between smallest normalized number 1.0 2Emin and zero Denormalized numbers , values 0.F 2Emin , are closer to zero Gradual underflow to zero[;0 4?%#`8;% d  ` ```"`?`% #$$$$$ $2$$#)$$$$$$$$$ $2$$#$$$$$$$$$$t/X Q NFloating Point ComplexitiesOperations are somewhat more complicated In addition to overflow we can have underflow Accuracy can be a big problem Extra bits to maintain precision: guard, round, and sticky Four rounding modes Division by zero yields Infinity Zero divide by zero yields Not-a-Number Other complexities Implementing the standard can be tricky See text for description of 80x86 and Pentium bug! Not using the standard can be even worseu(3)8 "  (3) Next . . .Floating-Point Numbers IEEE 754 Floating-Point Standard Floating-Point Addition and Subtraction Floating-Point Multiplication Extra Bits and Rounding MIPS Floating-Point Instructions F!MIPS Floating Point CoprocessorCalled Coprocessor 1 or the Floating Point Unit (FPU) 32 separate floating point registers: $f0, $f1, & , $f31 FP registers are 32 bits for single precision numbers Even-odd register pair form a double precision register Use the even number for double precision registers $f0, $f2, $f4, & , $f30 are used for double precision Separate FP instructions for single/double precision Single precision: add.s, sub.s, mul.s, div.s (.s extension) Double precision: add.d, sub.d, mul.d, div.d (.d extension) FP instructions are more complex than the integer ones Take more cycles to execute #5 #5 #y #7 # # 557 #cFP Arithmetic InstructionsFP Load/Store InstructionsFP Data Movement InstructionsFP Convert Instructions"FP Compare and Branch InstructionsExample 1: Area of a Circler.data pi: .double 3.1415926535897924 msg: .asciiz "Circle Area = " .text main: ldc1 $f2, pi # $f2,3 = pi li $v0, 7 # read double (radius) syscall # $f0,1 = radius mul.d $f12, $f0, $f0 # $f12,13 = radius*radius mul.d $f12, $f2, $f12 # $f12,13 = area la $a0, msg li $v0, 4 # print string (msg) syscall li $v0, 3 # print double (area) syscall # print $f12,132s  crc': #+  Example 2: Matrix Multiplicationvoid mm (int n, double x[n][n], y[n][n], z[n][n]) { for (int i=0; i!=n; i=i+1) for (int j=0; j!=n; j=j+1) { double sum = 0.0; for (int k=0; k!=n; k=k+1) sum = sum + y[i][k] * z[k][j]; x[i][j] = sum; } } Matrices x, y, and z are nn double precision float Matrix size is passed in $a0 = n Array addresses are passed in $a1, $a2, and $a3 What is the MIPS assembly code for the procedure?f  0P 2g e ee e $$$$ $$(e(,,0e0448e8<<ee2   4!)JMatrix Multiplication Procedure  1/3Initialize Loop Variables mm: addu $t1, $0, $0 # $t1 = i = 0; for 1st loop L1: addu $t2, $0, $0 # $t2 = j = 0; for 2nd loop L2: addu $t3, $0, $0 # $t3 = k = 0; for 3rd loop sub.d $f0, $f0, $f0 # $f0 = sum = 0.0 Calculate address of y[i][k] and load it into $f2,$f3 Skip i rows (in) and add k elements L3: multu $t1, $a0 # i*size(row) = i*n mflo $t4 # $t4 = i*n addu $t4, $t4, $t3 # $t4 = i*n + k sll $t4, $t4, 3 # $t4 =(i*n + k)*8 addu $t4, $a2, $t4 # $t4 = address of y[i][k] ldc1 $f2, 0($t4) # $f2 = y[i][k]2  ['  *ck0ck0ck.c a aa $a$ ((,a,000000&4c44k44c4..,6( "$#JMatrix Multiplication Procedure  2/3 Similarly, calculate address and load value of z[k][j] Skip k rows (kn) and add j elements multu $t3, $a0 # k*size(row) = k*n mflo $t5 # $t5 = k*n addu $t5, $t5, $t2 # $t5 = k*n + j sll $t5, $t5, 3 # $t5 =(k*n + j)*8 addu $t5, $a3, $t5 # $t5 = address of z[k][j] ldc1 $f4, 0($t5) # $f4 = z[k][j] Now, multiply y[i][k] by z[k][j] and add it to $f0 mul.d $f6, $f2, $f4 # $f6 = y[i][k]*z[k][j] add.d $f0, $f0, $f6 # $f0 = sum addiu $t3, $t3, 1 # k = k + 1 bne $t3, $a0, L3 # loop back if (k != n)\%  3.p  /a a a a     $$c$$k$$c$((,a,004a488>\`Y{ff` R>&- {p_/̴>?" dd@$?vdd(@#?  n?" dd@   @@``PR    ?  ` p>>    (    6  `  T Click to edit Master title style! !  0  `x  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S^  0" `* Floating Point COE 308  Computer Architecture Muhamed Mudawar  slide *K 2Kc I H  0޽h ? 3380___PPT10.И@r Default Design  0 QI`(    6H  `  T Click to edit Master title style! !  04  `b  W#Click to edit Master subtitle style$ $H  0޽h ? 3380___PPT10.88/k&d 0  t(    0  N@>f"` cSf 900@ ?  NAf"`Scf 900@ @  NEf"`c:f 900@ A  N,If"`:cf 900@ B  NLf"`c f 900@ C  NtPf"` cf 900@ D  NTf"`cf 900@ E  NWf"`czf 900@ Y - F #  Zn ,$D   0 G  Z`[1?"`Y - Nimplicit* 0 2 gB H  T D1? -~B I  N D1? H  0޽h ? a(\0T0___PPT1040.0m8+D0' = @B D/' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ;E%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* ;ED' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* ;ED' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* EZ%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* EZD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* EZDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* Z%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* ZD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* ZDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*% %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*% D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*% Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* #%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* #D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* #D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* #V%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* #VD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* #VD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*F %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*F D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*F Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* V%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* VD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* V+H  0 nn) Ln(   ~  s *Hd `     s *He `V<$@  0  P6L GyM  # jN czf   GyJ   NDgff"`cf 900@   Nk"`cf 910@   Nj"`cmf 900@    Nv"`mcf 900@    Ny"`cSf 900@    NX}"`Tcf 900@    N"`c:f 900@    N"`:cf 900@   ND"`c f 900@   N"` cf 910@   N"`cf 900@   N0"`czf 910@   NԖf"`zcf 900@   Nxf"`c` f 900@   Nf"`` c f 910@   Nf"` cF f 900@   Ndf"`G c f 910@   Nf"` c- f 900@   Nf"`- c f 910@   NPf"` c f 900@   Nf"` c f 900@   Nf"` c f 900@   N<f"` cm f 900@   Nf"`m c f 900@   Nf"` cSf 900@   N(f"`Scf 900@    Nf"`c:f 900@ !  Npf"`:cf 900@ "  Nf"`c f 900@ #  Nf"` cf 900@ $  N\f"`cf 900@ %  Nf"`czf 900@N czf &  JyM '  Nf"`cf 900@ (  NHf"`cf 900@ )  Nf"`cmf 900@ *  Nf"`mcf 900@ +  N4f"`cSf 900@ ,  Nf"`Tcf 900@ -  N|f"`c:f 900@ .  N f"`:cf 900@ /  Nf"`c f 900@ 0  Nf"` cf 900@ 1  Npf"`cf 900@ 2  Nf"`czf 900@ 3  N f"`zcf 900@ 4  Nf"`c` f 900@ 5  Nf"`` c f 900@ 6  N$f"` cF f 900@ 7  Nf"`G c f 900@ 8  Nlf"` c- f 900@ 9  N"f"`- c f 900@ :  N%f"` c f 900@ ;  NX)f"` c f 900@ <  N,f"` c f 900@ =  N0f"` cm f 900@ >  ND4f"`m c f 900@ ?  N7f"` cSf 900@ @  N;f"`Scf 900@ A  N0?f"`c:f 900@ B  NBf"`:cf 900@ C  NxFf"`c f 900@ D  NJf"` cf 900@ E  NMf"`cf 900@ F  NdQf"`czf 900@6 GyM G #  k ,$D  0N czf H  GyJ I  NUff"`cf 910@ J  NX"`cf 900@ K  NP\"`cmf 910@ L  N_"`mcf 910@ M  Nc"`cSf 910@ N  Nf"`G c f 900@ {  NBf"` c- f 900@ |  NAf"`- c f 900@ }  NIf"` c f 900@ ~  NHf"` c f 900@   NQf"` c f 900@   N Of"` cm f 900@   NdXf"`m c f 900@   N\f"` cSf 900@   NZf"`Scf 900@   N$cf"`c:f 900@   Nff"`:cf 900@   N|jf"`c f 900@   N(nf"` cf 900@   Nqf"`cf 900@   Nuf"`czf 900@H  0޽h ? a(4,___PPT10 .0m8+KzD' = @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* =G%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* =GD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* =GD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* G%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* GD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* GDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*G %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*G D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*G Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* <D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* <+j  0 ZZ )pq +Z(   ~  s * `     s *D `x<$@  0  0$`Ml , C q "B Y,$D   0?    f/jJ?"` C )0.8125 = (0.1101)2 = + + 1/16 = 13/16N*0( 2    Z jJ?,  ( czf  # ' 'q* ,$@   0   N4ff"`cf 910@    N6"`cf 900@    N@<"`cmf 910@    N9"`mcf 910@    NB"`cSf 910@    N"`Tcf 910@   N"`c:f 910@   N`"`:cf 910@   Nx"`c f 900@   Nl(f"` cf 910@   Nf"`cf 900@   Ntf"`czf 910@   Nf"`zcf 900@   Nf"`c` f 900@   Nf"`` c f 900@   Nf"` cF f 900@   N(f"`G c f 900@   Nf"` c- f 900@   Npf"`- c f 900@   Nf"` c f 900@   Nf"` c f 900@   N\f"` c f 900@   Nf"` cm f 900@   Nf"`m c f 900@    NHf"` cSf 900@ !  Nf"`Scf 900@ "  Nf"`c:f 900@ #  NDf"`:cf 900@ $  Nf"`c f 900@ %  Nf"` cf 900@ &  N f"`cf 900@ '  NHf"`czf 900@6 GyM ( # c 'qi,$@  0N czf )  GyJ *  N`ff"`cf 910@ +  N"`cf 900@ ,  N"`cmf 910@ -  N"`mcf 910@ .  N"`cSf 910@ /  N""`Tcf 910@ 0  N  NXf"` c f 900@ ?  Nh\f"` c f 900@ @  N `f"` cm f 900@ A  Ncf"`m c f 900@ B  NTgf"` cSf 900@ C  Njf"`Scf 900@ D  Nnf"`c:f 900@ E  N@rf"`:cf 900@ F  Nuf"`c f 900@ G  Nyf"` cf 900@ H  N,}f"`cf 900@ I  NЀf"`czf 900@N czf J  JyM K  Ntf"`cf 900@ L  Nf"`cf 900@ M  Nf"`cmf 900@ N  N`f"`mcf 900@ O  Nf"`cSf 900@ P  Nf"`Tcf 900@ Q  NLf"`c:f 900@ R  Nf"`:cf 900@ S  Nf"`c f 900@ T  N8f"` cf 900@ U  Nܨf"`cf 900@ V  Nf"`czf 900@ W  N$f"`zcf 900@ X  Nȳf"`c` f 900@ Y  Nlf"`` c f 900@ Z  Nf"` cF f 900@ [  Nf"`G c f 900@ \  NXf"` c- f 900@ ]  Nf"`- c f 900@ ^  Nf"` c f 900@ _  NDf"` c f 900@ `  Nf"` c f 900@ a  Nf"` cm f 900@ b  N0f"`m c f 900@ c  Nf"` cSf 900@ d  Nxf"`Scf 900@ e  Nf"`c:f 900@ f  Nf"`:cf 900@ g  Ndf"`c f 900@ h  Nf"` cf 900@ i  Nf"`cf 900@ j  NPf"`czf 900@ k T1?"` ~c ,$  0 PSingle Precision$0( 2 l T1?"` ,$  0 PDouble Precision$0( 2J  =   m #  wY ,$D   02 n  Z 1?m =  2 o  Z 1? #  b p   fZ GG?HdI1? A H  0޽h ? n o p  a(CA;A___PPT10A. Fw+v33D@' r= @B D:@' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 9C%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* 9CD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* 9CD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* C{%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* C{D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* C{Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* {%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* {D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* {Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*q %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*q D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*q Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* O%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* OD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* OD' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*m %(D' =-6B#strips(downLeft)*<3<*m DA' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*k %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*k D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*k DA' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*l %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*l D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*l +p+0+k 0 ++0+l 0 + |  0 SS0)gg $S(   ~  s * `     s * `x<$@  0  ( czf  # @dC,$D  0   N ff"`cf 900@   N"`cf 910@   N|"`cmf 910@   N "`mcf 910@    N"`cSf 910@    Nh"`Tcf 910@    N !"`c:f 910@    N$"`:cf 910@    NT("`c f 900@   N+f"` cf 910@   N/f"`cf 910@   N@3f"`czf 910@   N6f"`zcf 910@   N:f"`c` f 910@   N,>f"`` c f 910@   NAf"` cF f 910@   NtEf"`G c f 910@   NIf"` c- f 910@   NLf"`- c f 910@   N`Pf"` c f 910@   NTf"` c f 910@   NWf"` c f 910@   NL[f"` cm f 910@   N^f"`m c f 910@   Nbf"` cSf 910@   N8ff"`Scf 910@   Nif"`c:f 910@    Nmf"`:cf 910@ !  N$qf"`c f 910@ "  Ntf"` cf 910@ #  Nlxf"`cf 910@ $  N|f"`czf 910@6 j % #  d ,$D  0N czf &  j '  Nff"`cf 900@ (  NX"`cf 910@ )  N"`cmf 910@ *  N"`mcf 910@ +  ND"`cSf 910@ ,  N"`Tcf 910@ -  N"`c:f 910@ .  N0"`:cf 910@ /  NԜ"`c f 910@ 0  Nx"` cf 910@ 1  N"`cf 910@ 2  N"`czf 900@ 3  Ndf"`zcf 910@ 4  Nf"`c` f 910@ 5  Nf"`` c f 910@ 6  NPf"` cF f 910@ 7  Nf"`G c f 910@ 8  Nf"` c- f 910@ 9  N<f"`- c f 910@ :  Nf"` c f 910@ ;  Nf"` c f 910@ <  N(f"` c f 910@ =  Nf"` cm f 910@ >  Npf"`m c f 910@ ?  Nf"` cSf 910@ @  Nf"`Scf 910@ A  N\f"`c:f 910@ B  Nf"`:cf 910@ C  Nf"`c f 910@ D  NHf"` cf 910@ E  Nf"`cf 910@ F  Nf"`czf 910@N czf G  j H  N4f"`cf 910@ I  Nf"`cf 910@ J  N|f"`cmf 910@ K  Nf"`mcf 910@ L  N f"`cSf 910@ M  Npf"`Tcf 910@ N  N f"`c:f 910@ O  Nf"`:cf 910@ P  Nf"`c f 910@ Q  Nf"` cf 910@ R  Nf"`cf 910@ S  Nf"`czf 910@ T  NL!f"`zcf 910@ U  N%f"`c` f 910@ V  N#f"`` c f 910@ W  N ,f"` cF f 910@ X  N/f"`G c f 910@ Y  N3f"` c- f 910@ Z  N6f"`- c f 910@ [  Nt:f"` c f 910@ \  N >f"` c f 910@ ]  NAf"` c f 910@ ^  NLFf"` cm f 910@ _  NIf"`m c f 910@ `  NMf"` cSf 910@ a  NOf"`Scf 910@ b  N4Tf"`c:f 910@ c  NtQf"`:cf 910@ d  N [f"`c f 910@ e  N_f"` cf 910@ f  Ncf"`cf 910@ g  Ngf"`czf 910@H  0޽h ? a( ((___PPT10'.0m8+)KD'' = @B D'' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* &E%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* &ED' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* &ED' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* F%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* FD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* FDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*% %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*% D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*% Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 8%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* 8D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* 8Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 8u%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* 8uD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* 8u+,|  0 SS@)gg DS(   ~  s *pt `      <pu"` `m<$@  0  ( czf  # @C,$D  0   Nwff"`cf 900@   N{"`cf 900@   N"`cmf 900@   N,"`mcf 900@   NЊ"`cSf 900@   Nt"`Tcf 900@   N"`c:f 900@   N("`:cf 900@   N̙"`c f 910@   Npf"` cf 900@   Nf"`cf 900@   Nf"`czf 900@   N\f"`zcf 900@   Nf"`c` f 900@   Nf"`` c f 900@   NHf"` cF f 900@   Nf"`G c f 900@   Nf"` c- f 900@   N4f"`- c f 900@   Nf"` c f 900@   N|f"` c f 900@   N f"` c f 900@   Nf"` cm f 900@   Nhf"`m c f 900@   N f"` cSf 900@   Nf"`Scf 900@   NTf"`c:f 900@   Nf"`:cf 900@ !  Nf"`c f 900@ "  N@f"` cf 900@ #  Nf"`cf 900@ $  Nf"`czf 900@6 j % #   ,$D  0N czf &  j '  N,ff"`cf 900@ (  N"`cf 900@ )  Nt"`cmf 900@ *  N"`mcf 900@ +  N"`cSf 900@ ,  N"`Tcf 900@ -  N\"`c:f 900@ .  N$ "`:cf 900@ /  N4"`c f 900@ 0  N"` cf 900@ 1  N|"`cf 900@ 2  N "`czf 910@ 3  Nf"`zcf 900@ 4  Nh!f"`c` f 900@ 5  N %f"`` c f 900@ 6  N(f"` cF f 900@ 7  NT,f"`G c f 900@ 8  N/f"` c- f 900@ 9  N3f"`- c f 900@ :  N@7f"` c f 900@ ;  N:f"` c f 900@ <  N>f"` c f 900@ =  N,Bf"` cm f 900@ >  NEf"`m c f 900@ ?  NtIf"` cSf 900@ @  NMf"`Scf 900@ A  NPf"`c:f 900@ B  NdUf"`:cf 900@ C  NSf"`c f 900@ D  N[f"` cf 900@ E  N_f"`cf 900@ F  Ntcf"`czf 900@N czf G  j H  Ngf"`cf 900@ I  Njf"`cf 900@ J  N`nf"`cmf 900@ K  Nrf"`mcf 900@ L  Nuf"`cSf 900@ M  NLyf"`Tcf 900@ N  N|f"`c:f 900@ O  Nf"`:cf 900@ P  N8f"`c f 900@ Q  N܇f"` cf 900@ R  Nf"`cf 900@ S  N$f"`czf 900@ T  NȒf"`zcf 900@ U  Nlf"`c` f 900@ V  Nf"`` c f 900@ W  Nf"` cF f 900@ X  NXf"`G c f 900@ Y  Nf"` c- f 900@ Z  Nf"`- c f 900@ [  NDf"` c f 900@ \  Nf"` c f 900@ ]  Nf"` c f 900@ ^  N0f"` cm f 900@ _  NԺf"`m c f 900@ `  Nxf"` cSf 900@ a  Nf"`Scf 900@ b  Nf"`c:f 900@ c  Ndf"`:cf 900@ d  Nf"`c f 900@ e  Nf"` cf 900@ f  NPf"`cf 900@ g  Nf"`czf 900@H  0޽h ? a( ((___PPT10'.0m8+)KD'' = @B D'' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ;Z%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* ;ZD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* ;ZD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* [%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* [D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* [Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*% %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*% D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*% Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* <D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* <Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <v%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* <vD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* <v+  0 P)$ <(  $ ~ $ s * `   ~ $ s * `m  H $ 0޽h ? a(___PPT10i. +D=' = @B +F  0 `),-( B(  ( ~ ( s *` `    ( s *$! `x<$@  0  4 p$` ( T o? ]? ,$D   0l   -(   ,$@  0, (  3 r%!1?S"`?  \Denorm 0( 2, (  3 rt*!1?S"`?  \Denorm 0( 2 c`  ( # | H,$D  0N `   (  `    (  # l1?S"`?i 3 B+""0( 2B N `    (  `    (  Z jJ?Md P   (  # l1?S"`?` c  SPositive Overflow&0(  N c` M (  c` M  (  # lD1?S"`?  B-""0( 2B N c` M  (  c` M  (  Z jJ?d   (  # l41?S"`?c` Mc  SNegative Overflow&0(  V | `   ( # |  ,$D  0N | `   (  | `   (  Z jJ?| c   (  # l1?S"`?| `  c  TNegative Underflow&0(   (  Z jJ? c   (  # l`1?S"`? ` c  TPositive Underflow&0(  L * Pj ( # F H (  # lff1?S"`? }  ~ Normalized ( ve) 0( 2 8 (  # lXff1?S"`? M nNormalized (+ve) 0( 2 & N * Pj (  * PjB (  Z DjJ?PN  Vj (   Vj~B (  N DjJ?  (  # lP0!1?S"`? Vj T 2 126 ,0( 2 N j !(  j~B "(  N DjJ?MM #(  # l4!1?S"`?j M2128 ,0( 2  $(  # l9!1?S"`? M j =0 0( 2~B %(  N DjJ?  N j &(  Jjj~B '(  N DjJ?MM ((  # l,1?S"`?j N-2128 ,0( 2 N ) j )(  ) j~B *(  N DjJ?| |   +(  # l?!1?S"`?) j V-2 126 ,0( 2 B ,(  T DjJ? *  H ( 0޽h ? a(&x&___PPT10X&.O)+*7XD,&' = @B D%' = @BA?%,( < +O%,( < +D' =%(DF' =%(D' =4@BBBB%()))D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( D' =%(DV' =%(D' =4@BBBB%())))?D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( D' =%(D.' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*-( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*-( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*-( D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( (%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( (D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( (D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( (T%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( (TD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( (TD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( T%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( TD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( TD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*( D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*( +   0   )0 / (  0 ~ 0 s *8Q! `%  ! 8  a M 0  p 0  BHS!jJ"`z m   VInteger Magnitude Comparator0(@`B 0  0D } `B 0  0D} `B 0  0D `B 0  0D `B  0  0D    0  T3"`*a G  [X < Y:0 2BBB  0  Tt_!"`*d J [X = Y:0 2BBB  0  TDd!"`*gM [X > Y:0 2BBB[  0  Ni!"`  Z   X = (EX , FX)0`2 BBBJJBBJBJ[ 0  Ns!"` T  Y = (EY , FY)0`2 BBBJJBBJBJ~ 0 s *{! `  ! H 0 0޽h ? ̙33___PPT10i.qCB.+D=' = @B +A  0 @@p)RV, j@(  , ~ , s *|! `  !   )` S,  #"*:) ` ! ,  T!1?` mNaNx$$`` ,  T!1?  Wnonzerox$$`` ,  T@!1?  S255x$$`` ,  TH!1?  kNaNx$$``d ,  TP! 1?"``  (0.F)2 2 126r  x$$``  ,  T! 1?"`  Wnonzerox$$``  ,  Th! 1?"`  Q0x$$``  ,  T! 1?"`  {Denormalized Number x$$``  ,  Th! 1?"`` & (1.F)2 2E  127   x$$``  ,  T! 1?"`  XAnything  x$$`` ,  TX! 1?"`  X1 to 254  x$$`` ,  T# 1?"`  _Normalized Numberx$$`` ,  T,  T$1?  Q0x$$`` ?,  T8$1?k   RZerox$$`` @,  T@$1?Y ?  YValuex$$`` A,  TJ$1? Y ?  a Fraction = 52x$$`` B,  T@S$1?Y ?  a Exponent = 11x$$`` C,  T\$1?kY ?  bDouble-Precisionx$$``~B D,  N 1 ?kY Y ~B E,  N 1 ?k~B F,  N 1 ?kY kxB G,  H 1 ?Y ? xB H,  H 1 ? Y ? xB I,  H 1 ?Y ? ~B J,  N 1 ?Y xB K,  H 1 ?k  xB L,  H 1 ?k% % xB M,  H 1 ?k  xB N,  H 1 ?k  xB O,  H 1 ?? xB P,  H 1 ? ? xB Q,  H 1 ?? ~B R,  N 1 ?k? ? H , 0޽h ? a(___PPT10i.p|˕+D=' = @B +  0 + <(   ~  s *9$ `  $ ~  s *x($* O  $ H  0޽h ? f3fy___PPT10Y+D=' = @B +?0  0 ) 4 G(  4 ~ 4 s *$ `  $  4  B$ "` `m<$D  0 $ l ) } t1  4  )7,$D   0 4  3 r$1?"`X K  ECarry$0 2D T   4 # N } t11 4  N!1?   1.111 0.01011 10.00111t0 2 0  0 cgc  4   `X$1?"`&* $ C+&0 2c~B  4 N DjJ?CB  4  Z D1?    4  Z jJ?) t,H 4 0޽h ? a( ((___PPT10'.P`+3BD'' = @B D'' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 4%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 4D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 4Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 4i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 4iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 4iDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 iDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*4 D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 4 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* 4 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* 4 +9  0   ) 8 H (  8 ~ 8 s *$ `  $  8  B$ "` `x<$D  0 $ l  C   8  C ,$D   0 8   `$1?"`m#   1.000 111 1 1.001 0 20 0 cgcgcg 8   f$1?"` K  C+&0 2cB 8 T DjJ?*   8  Z jJ? C B  8  Z D1?}? }   8   0e0e    BCsDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ss@S"  _ H 8 0޽h ? a(//___PPT10/.0x+[DX/' = @B D/' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 8l%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 8lD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 8lDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 l%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 lD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 lD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 4%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 4D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 4D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 4i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 4iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 4iD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 iD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* 8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* 8 Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8 %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*8 D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*8 +C  0 <4)&< $ (  < ~ < s *T$ `  $  < s *T$ `m<$D  0 $   < TX$1? G $,$@ 0 <+ 0.00001 22  1.00000 22 0 0.00001 22 1 1.00000 22 1 1.00001 220 20 0 20 0 g ckg ckg ckg ckg ckhl ^T ] , %< T ^] ,,$@ 0ZT    < # ^T #:  <   0e0e    BCDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@S" 6=   <  # l$1?"` n  DSign$0 2D  <  Z jJ?s ] ,B < N DjJ??  ? ,$@  0L < <$jJ Y- ,$D 0 NSince result is negative, convert result from 2's complement to sign-magnitudeBO-BFBFB < N DjJ?  ,$@  0l   $<  ,$D  0 <  C xD$1? "`  ^2 s Complement&0( 2D2  < B  C\ENGH,BJGQjJ `TP,!\`TP,!\G,!\G  Pl  Y, &<  Y,,$D 0* <  Z$jJ?"`&2Y,  0.11111 22R0( g ckB <  Z DjJ?   "<  # l $1?"`  ^2 s Complement&0( 2DH < 0޽h ? <  a(p/h/___PPT10H/.P`+SD.' '= @B D.' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*< f%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*< fD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*< fDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*< %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*< D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*< Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*< %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*< D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*< Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*< 8%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*< 8D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*< 8DY' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%< %(D' =-o6Bdissolve*<3<*%< D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* < %(D' =-o6Bdissolve*<3<* < D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* < %(D' =-o6Bdissolve*<3<* < D ' =%(D< ' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*< %(D' =-o6Bdissolve*<3<*< D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* < -%(D' =-o6Bdissolve*<3<* < -D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* < -<%(D' =-o6Bdissolve*<3<* < -<D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*$< %(D' =-o6Bdissolve*<3<*$< D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*< %(D' =-o6Bdissolve*<3<*< D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* < <K%(D' =-o6Bdissolve*<3<* < <KD' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*< %(D' =-o6Bdissolve*<3<*< D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*&< %(D' =-o6Bdissolve*<3<*&< +8+0+< 0 +8  0   ) @  (  @ ~ @ s *' `  '  @ s * ' `x<$D  0 ' l z CJ   @ z YJ ,$D   0 @   `\ '1?"`A C-   1.111 1 1 10.000 0 20 0 cBgcgc @   fH'1?"`0 %*  C+&0 2cB @ T DjJ? G G  @  Z jJ?z CJ B  @  Z D1? }   @   0e0e    BCsDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ss@S" n~  H @ 0޽h ? a(..___PPT10..0x+[D.' = @B Dc.' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ 5i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ 5iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ 5iD ' =%(D ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ i%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ iD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ iD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ +%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ +D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ +D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ +`%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ +`D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ +`D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ `%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ `D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ `D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* @ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* @ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* @ D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*@ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*@ +H0  0 ) [D :(  D ~ D s *\(' `  ' pF Cs0 >D  ?= ,B ?D  T D1?& & t @D   `*'1?"`csj 1. Compare the exponents of the two numbers. Shift the smaller number to the right until its exponent would match the larger exponent.0 2, AD   `09'1?"`s >2. Add / Subtract the significands according to the sign bits.?0 2?f BD   `@:'1?"`s  x3. Normalize the sum, either shifting right and incrementing the exponent or shifting left and decrementing the exponenty0 2yW CD   `,D'1?"` rz  i4. Round the significand to the appropriate number of bits, and renormalize if rounding generates a carryj0 2jT 3FJ DD # C " ED  Z G0*1?3FJ FD   `W'jJ?"`IQ- OStart 0( 2B GD  T D1?& & cB HD  T D1?& j& T 3FJ ID #  0" JD  Z G0*1?3FJ KD   ` b'jJ?"`IQ- NDone 0( 2T  jC LD #  rT   MD #  jpB ND  T 1?  OD   `0l'jJ?"`+ h  ^Overflow or underflow?0 B PD  T D1? p " QD  Z G0*1?VC RD   `v'jJ?"`m/ W Exception$ 0( 2 B SD  T D1?nWn TD  # l'1?"`:Q Ayes"0( 2  UD  # lw'1?"` q  @no"0( 2 B VD  T D1?& &  B WD  T D1?% z %  XD T'1?"`CE,$D  0 TShift significand right by d = | EX  EY |+08 n   T YD T'1?"`C,$D  0 Add significands when signs of X and Y are identical, Subtract when different X  Y becomes X + ( Y)g08 n (  ZD T'1?"` C ,$D  0 }Normalization shifts right by 1 if there is a carry, or shifts left by the number of leading zeros in the case of subtraction"~08 n ~U [D T|'1?"`y C,$D  0 QRounding either truncates fraction, or adds a 1 to least significant fraction bit"R08 n RH D 0޽h ? U>=UU(F>___PPT10.c+ID' '= @B D' = @BA?%,( < +O%,( < +D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*XD %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*XD D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*XD D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*YD %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*YD D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*YD D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*ZD %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*ZD D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*ZD D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*[D %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*[D D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*[D ++0+XD 0 ++0+YD 0 ++0+ZD 0 ++0+[D 0 +P  0 OO)FH LO(  H ~ H s *' `  ' N8 $ p0 H $p H  3 r,'1?"`A   Cc&0( 2  H  3 r'1?"`'   Cz&0( 2  HH  3 r'f1?"`tgA 0 NEZ00( 2 B IH B  ` D?  B JH   ` D?4B KH T D?g LH  3 r'f1?"`$  NEX00( 2  MH  3 r'f1?"` bF, NFX00( 2  QH  3 r'1?S"`?y ]_  NShift Right / Left 0( 2 RH  3 rp'1?S"`?  E Inc / Dec 0( 2 B SH  Z DjJ?  B TH  Z DjJ? UH  3 r'f1?"`*  NEY00( 2  VH  3 r'1?S"`?a @Swap 0( 2 WH  3 r|'f1?"`bp, NFY00( 2 B XH  Z DԔ?,B YH  Z DԔ?," ZH  S 0e0e    B}CDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||}}@"` FWI" [H  S 0e0e    B}CDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||}}@"`  IB \H  Z DԔ?2B ]H  Z DԔ? ^H  3 r'1?S"`?t2' G Shift Right 0( 2  _H   0e0e    BCDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@c"$` 0tT   `H # ]/. aH   0e0e    BC=DE F* 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s= v:y=s=@`S"  9 bH  # lH'1?S"`?  oExponent Subtractor0  B cH  Z DԔ?TTT  v  dH #  Y . eH   0e0e    B CvDE F* 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||v:] }vv@`S"  v D fH  # l'1?S"`?jD U  zSignificand Adder/Subtractor 0(   gH  3 r'31?"` b , =1 0( 2 hH  3 r|'31?"`b, =1 0( 2 iH  3 r '1?"`e Fsign&0( 2 B jH  Z DԔ?Y y  kH  3 r)1?S"`?S  LSign Computation 0( B lH  Z DjJ? " mH  S 0e0e    B CDE F Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @"` y B nH Z DjJ?& &  oH  3 r8)1?"`  d = | EX  EY |0( 2        m pH  3 r0)1?"`r ]  max ( EX , EY )0( 2        qH  3 r\)1?"` 7 Padd / subtract&0( 2  rH  3 r<)1?S"`? ^  JRounding Logic 0( 2 sH  3 r8)1?"` V   Fsign&0( 2 B tH T D? uH  3 r#)f1?"`   NSY00( 2 B vH T D?= = B wH T D?s s  xH  3 r')1?"`A   Iadd/sub&0( 2 B yH  Z DjJ?Z Z f zH  3 r+)f1?"`f^0 NFZ00( 2 B {H  Z DԔ?`  B |H  Z DԔ? fB }H B  ` D? f ~H  3 rt0)f1?"`1g0 NSZ00( 2  H   0e0e    B CDE F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @c"$` 0B H B  ` D? c c   H   0e0e    BCDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@S"  }  H  3 r5)1?"` ]  Cc&0( 2  H  3 r9)f1?"`S  NSX00( 2 B H   f D?0S  H   0e0e    BCDE F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@S"   H  3 r|>)1?"` }  Cz&0( 2 B H T D?  N H  3 r,C)1?S"`? z   ~DDetect carry, or Count leading 0 s#0 # H  3 rF)1?"` c  Cc&0( 2 " OH   ` G0*1?Hw  PH  3 r(K)1?S"`?HX  D0 1 0( 2  H H 0޽h ? U>=UU(___PPT10i.c+D=' '= @B +  0 + <(   ~  s *Q) `  ) ~  s *R)* O  ) H  0޽h ? f3fy___PPT10Y+D=' '= @B +A8  0 c [ )L @ (  L ~ L s *@X) `  )  L s *@Y) `x<$@  0 )  l ~ L b,$D   0z L  T])1?c ` 8 1.010 1.110 0000 1010 1010 1010 10001100 0 2 0  0 0  0 cg#c L   f@g)1?"`s m  C&0 2c L  Z jJ?<~B  L T DjJ?  B  L T DjJ?  l L  <GA2H  Xl  8` p L 8 ` p,$D   0@   PB L  8Ppr  L   ` jJ?0 @` L  3 rk)1?"` IPB N3-bit fraction$0 nN   PB L  8pr L  Z jJ?0 @` L  # lp)1?"` IPB N3-bit fraction$0 n@ 0 8` p L 0 8` pr L   ` jJ? 8  L  3 r$u)1?"`0 w` p N6-bit fraction$0 nH L 0޽h ? a(*~*___PPT10^*.P`+H^qD2*' = @B D)' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L u%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L uD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L uD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L D ' =%(D ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L 3%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L 3D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L 3D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L 3I%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L 3ID' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L 3ID' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L Ir%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L IrD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L IrD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L r%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L rD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L rD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*L D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*L +}4  0   * P # (  P ~ P s *) `  )  P s *) `x<$D  0 ) l V    P i V9 ,$D   0 P   `)1?"`=   1.000 1100 1 1.001 0 20 0 cgcgcg P   fD)1?"`q   C+&0 2cB P T DjJ?   P  Z jJ?V  B  P  Z D1? Y #   P   0e0e    BCsDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ss@S" # Yz H P 0޽h ? a(*~*___PPT10^*.0x+[D2*' = @B D)' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P l%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P lD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P lD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P -%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P -D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P -D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P -O%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P -OD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P -OD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P Ov%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P OvD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P OvD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P v%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P vD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P vD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* P %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* P D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* P D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*P %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*P D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*P +I1  0 *=UU(F>___PPT10.c+1kFD' )= @B D' = @BA?%,( < +O%,( < +D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*9T %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*9T D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*9T D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*:T %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*:T D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*:T D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*;T %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*;T D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*;T D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*B ppt_x<*B ppt_y<*, `  ,  X  <?,"` `Q , H X 0޽h ? ̙33___PPT10i.qCB.+D=' '= @B +M  0 0*\ (  \ ~ \ s *,G, `  ,  \ s *,H, `x<$D  0 , $ \ B4\,"`{,,$@  0 p 1.00000000101100010001101 25  1.00000000000000010011010 2-2 (subtraction) 1.00000000101100010001101 25  0.00000010000000000000001 0011010 25 (shift right 7 bits) 1.00000000101100010001101 25 1 1.11111101111111111111110 1 100110 25 (2's complement) 0 0.11111110101100010001011 1 100110 25 (add significands) + 1.11111101011000100010111 100010 24 (normalized)>Q0!0 2?0!0 2<0u0 2ckoggckc@ D@kckogg&coc @    @  H gckogcgck@D@kgcgck@D@ k  g  c   g  c  k $@$ $D$$@$ B \ N DjJ?\ { \ ,$@  0z M    \  @ j ,$D  0l2 \  <jJ   B \ B Z DjJ?M B \ N DjJ?E { E ,$@  0B \ N DjJ? { ,$@   0B \ N DjJ?O{O,$@  0z   M  \  >  ,$D   0 \  N^,"` M  t4Guard bit  do not discard$0(2l2 \  <jJ   B \ T DjJ? 0 H \ 0޽h ? a(~<v<___PPT10V<.0}:+9q*D*<' = @B D;' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ !%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ !D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ !D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ !Q%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ !QD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ !QD ' =%(D ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ Qr%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ QrD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ QrD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ r%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ rD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ rD ' =%(D ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =-6B#strips(downLeft)*<3<*\ D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ L%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ LD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ LD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ L%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*\ LD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*\ LD' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =-6B#strips(downLeft)*<3<*\ +D  0 @*+` (  ` ~ ` s *y, `  ,  ` s *D, `m<$D  0 , 0$` ` B8,"`E K,$@  0 C 1.00000000101100010001101 25 1 1.11111101111111111111110 1 1 00110 25 (2's complement) 0 0.11111110101100010001011 1 1 1 25 (sum) + 1.11111101011000100010111 1 1 24 (normalized)D+00x2=0xj00x2)ckogc gck@D@kgc gck @  D  @ kgc gck@ D@ B ` s *DjJB . B ,$@  0B ` s *DjJ .  ,$@   0z J   `   p ,$D   0fB ` B 6DjJJ J 2 `  H,jJ  M  8$0 z c  `   4 ,$D   0 `  0x,c 3  G Round bit" 0 2 l2  `  <jJP  !`  c 0e0e    BtCsDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||stst@S"   %z  ` "`   &,$D   0 #`  0,` H Sticky bit" 0 2 l2 $`  <jJ b %` B c 0e0e    BtCsDE F jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||stst@S" %z  I Z  &`  I 4  ,$D  0 '`  <`,"` I Z0  K OR-reduce& 0(2 " (`   ` G0*jJ??  z  _M  )`   #M ,$D  0l2 *`  <jJ _M B +`  T DjJ? } H ` 0޽h ? ̙336...___PPT10..qCB.+QQD-' = @B D-' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` Dq%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` DqD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` DqD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` +%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` +D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` +D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` +h%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` +hD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` +hD' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*&` %(D' =-6B#strips(downLeft)*<3<*&` D ' =%(D ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` h%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` hD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` hD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*)` %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*)` D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*)` D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*` %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*` D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*` D' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*` %(D' =-6B#strips(downLeft)*<3<*` D' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*` %(D' =-6B#strips(downLeft)*<3<*` D' =%(D' =%(DC' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*"` %(D' =-6B#strips(downLeft)*<3<*"` +  0 P*d <(  d ~ d s *$. `  . ~ d s *. `x . H d 0޽h ? ̙33___PPT10i.qCB.+D=' ,= @B +MG  0 D<`* h (  h  h  f .gֳgֳa ?'B<$D  0 . ~ h s *x . `  . % L M c h # y m}2 h  Z jJ?Vc, h  0l.M - G Round Bit" 0 2  h  T<.1?- b Sticky Bit< 0  ee2 h  Z jJ?=c,  h   0e0e    BWCVDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||VWVW@S" :J  h B  0e0e    BWCVDE F 1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||VWVW@S" J<  h  `,1?p ,$  0 xTruncate result since negative>0 FB F  h  `.1?  ,$  0 HIncrement since negative and s =  1 v% v# FFB FFF  h  `|&.1? p,$   0 MTruncate always"0 FH h 0޽h ? a(77___PPT107.̲+]D6' ,= @B Dp6' = @BA?%,( < +O%,( < +Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h \s%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h \sD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h \sDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h s%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h sD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h sDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* h Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* h Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h Dn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h T%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h TD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h TDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h T%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h TD' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h TDn' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<*h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*h D{' =%(D#' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* h %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>B ppt_x<* h D' =+4 8?dCB1+#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<* h ++0+ h 0 ++0+ h 0 ++0+ h 0 +  0 p*l <(  l ~ l s *@. `  . ~ l s *@. `x . H l 0޽h ? ̙33___PPT10i.qCB.+D=' ,= @B + 4 0L0  5 *p x(  p " p  fQ.xaxaG  ? `x . ~ p s *R. `  . H p 0޽h ? U>=UU(___PPT10i.L`)h+D=' ,= @B +  0 + <(   ~  s *Z. `  . ~  s *[.* O  . H  0޽h ? f3fy___PPT10Y+D=' ,= @B +  0 *x d(  x  x s * y. `x . 4 $`~ x s *|y. `  . H x 0޽h ? 33___PPT10i.(+D=' ,= @B ++  0 B:*| Ґ(  | ~ | s *H}. `  .  =YI |  #"NBrrrrrrrrrrrrrr=YI .  |   `YpGpG 1?"`K Y  e4&n |$$``  |   `.pGpG 1?"`K   gfd5&n |$$``  |   `.pGpG 1?"`MK   gfs5&n |$$``  |   `.pGpG 1?"`K M  e0&n |$$`` |   `.pGpG 1?"` K   Y0n|$$`` |   `l.pGpG 1?"` K   \0x11n|$$``P |   ` .pGpG 1?"`K  (fd) = sqrt (fs)n>x$$``K |   ``.pGpG 1?"`=K    sqrt.s fd, fsn6|$$``  |   `.pGpG 1?"` Y  e4&n |$$``  |   `.pGpG 1?"`   gfd5&n |$$``  |   ` .pGpG 1?"`M   gfs5&n |$$``  |   `H.pGpG 1?"` M  e0&n |$$`` |   `X.pGpG 1?"`   Y1n|$$`` |   `0pGpG 1?"`   \0x11n|$$``P |   `d0pGpG 1?"`  (fd) = sqrt (fs)n>x$$``K |   `0pGpG 1?"`=    sqrt.d fd, fsn6|$$``  |   `0pGpG 1?"` Yt e7&n |$$`` |   `x0pGpG 1?"` t qfd50n |$$``  |   `&0pGpG 1?"`M t gfs5&n |$$`` |   `|20pGpG 1?"` Mt Y0n|$$`` |   `C0pGpG 1?"` t Y0n|$$``  |   `M0pGpG 1?"`  t \0x11n|$$``n  |   ``0pGpG 1?"` t (fd) =  (fs)Bng,x$$``J  |   `c0pGpG 1?"`= t  neg.s fd, fs n 6|$$``   |   `m0pGpG 1?"`tYI e7&n |$$``   |   `$p0pGpG 1?"`tI gfd5&n |$$``  |   `z0pGpG 1?"`MtI gfs5&n |$$`` |   `t0pGpG 1?"`tMI Y0n|$$`` |   `0pGpG 1?"` tI Y1n|$$`` |   `؟0pGpG 1?"` t I \0x11n|$$``n |   ``0pGpG 1?"`t I (fd) =  (fs)Bng,x$$``J |   `X0pGpG 1?"`=tI  neg.d fd, fs n 6|$$``  |   `0pGpG 1?"` Y  e5&n |$$``  |   `L0pGpG 1?"`   gfd5&n |$$``  |   `L0pGpG 1?"`M   gfs5&n |$$`` |   `0pGpG 1?"` M  Y0n|$$`` |   `0pGpG 1?"`   Y0n|$$`` |   `h0pGpG 1?"`   \0x11n|$$``= |   `1pGpG 1?"`  (fd) = abs (fs)n, x$$``J |   ` 1pGpG 1?"`=    abs.s fd, fs n 6|$$``  |   `1pGpG 1?"` Y  e5&n |$$``  |   `$1pGpG 1?"`   gfd5&n |$$``  |   `P%1pGpG 1?"`M   gfs5&n |$$`` |   `'1pGpG 1?"` M  Y0n|$$``  |   `81pGpG 1?"`   Y1n|$$`` !|   `A1pGpG 1?"`   \0x11n|$$``= "|   `J1pGpG 1?"`  (fd) = abs (fs)n, x$$``J #|   `M1pGpG 1?"`=    abs.d fd, fs n 6|$$``  $|   ``1pGpG 1?"`Yv  e3&n |$$``  %|   `j1pGpG 1?"`v  gfd5&n |$$``  &|   `|   `p3pGpG 1?"`M gfs5&n |$$``  ?|   `,{3pGpG 1?"`M gft5&n |$$`` @|   `<}3pGpG 1?"`  Y1n|$$`` A|   `3pGpG 1?"`   \0x11n|$$``f B|   `3pGpG 1?"`  (fd) = (fs) (ft)Bn g, x$$``N C|   ` 3pGpG 1?"`= mul.d fd, fs, ftn6|$$``  D|   `3pGpG 1?"`MY" e1&n |$$``  E|   `3pGpG 1?"`M" gfd5&n |$$``  F|   `,3pGpG 1?"`MM" gfs5&n |$$``  G|   `p3pGpG 1?"`MM" gft5&n |$$`` H|   `3pGpG 1?"` M" Y0n|$$`` I|   `H3pGpG 1?"` M " \0x11n|$$``x J|   `,3pGpG 1?"`M " $(fd) = (fs)  (ft)Bn g, x$$``N K|   `D4pGpG 1?"`=M" sub.s fd, fs, ftn6|$$``  L|   `3pGpG 1?"`"Y e1&n |$$``  M|   `d4pGpG 1?"`" gfd5&n |$$``  N|   `4pGpG 1?"`M" gfs5&n |$$``  O|   `<"4pGpG 1?"`"M gft5&n |$$`` P|   `,4pGpG 1?"` " Y1n|$$`` Q|   `54pGpG 1?"` "  \0x11n|$$``x R|   `(I4pGpG 1?"`"  $(fd) = (fs)  (ft)Bn g, x$$``N S|   `L4pGpG 1?"`=" sub.d fd, fs, ftn6|$$``  T|   `V4pGpG 1?"`xYM e0&n |$$``  U|   `Y4pGpG 1?"`xM gfd5&n |$$`` V|   `tc4pGpG 1?"`MxM qfs50n |$$``  W|   ``m4pGpG 1?"`xMM gft5&n |$$`` X|   `p4pGpG 1?"` xM Y1n|$$`` Y|   `4pGpG 1?"` x M \0x11n|$$``f Z|   `4pGpG 1?"`x M (fd) = (fs) + (ft)Bn g, x$$``N [|   `4pGpG 1?"`=xM add.d fd, fs, ftn6|$$``  \|   `4pGpG 1?"`Yx e0&n |$$``  ]|   `Ĭ4pGpG 1?"`x gfd5&n |$$``  ^|   `4pGpG 1?"`Mx gfs5&n |$$``  _|   `X4pGpG 1?"`Mx gft5&n |$$`` `|   `h4pGpG 1?"` x Y0n|$$`` a|   `4pGpG 1?"`  x \0x11n|$$``f b|   `D4pGpG 1?"` x (fd) = (fs) + (ft)Bn g, x$$``N c|   `L4pGpG 1?"`=x add.s fd, fs, ftn6|$$`` d|   `5##1? Y ZFormatnx$$`` e|   ` 5##1?  [Meaningnx$$`` f|   `t5##1?= ] Instruction n x$$``xB g|  H 1 ?=YxB h|  H 1 ?=IYIrB i|  B 1 ?rB j|  B 1 ?  rB k|  B 1 ?IrB l|  B 1 ?  IxB m|  H 1 ?==IxB n|  H 1 ?=YxB o|  H 1 ?YYIrB p|  B 1 ?  IrB q|  B 1 ?IrB r|  B 1 ?MMIrB s|  B 1 ?IrB t|  B 1 ?IrB u|  B 1 ?=xYxrB v|  B 1 ?=MYMrB w|  B 1 ?=YrB x|  B 1 ?="Y"rB y|  B 1 ?=YrB z|  B 1 ?=YrB {|  B 1 ?=K YK rB ||  B 1 ?=v Yv rB }|  B 1 ?= Y rB ~|  B 1 ?= Y rB |  B 1 ?=tYtZB |  s *1 ?= Y ZB |  s *1 ?= Y H | 0޽h ? a(___PPT10i.+D=' 3= @B ++  0 ***/V 1*(     Tu5ֳֳ ?"`'Yo XSeparate floating point load/store instructions lwc1: load word coprocessor 1 ldc1: load double coprocessor 1 swc1: store word coprocessor 1 sdc1: store double coprocessor 1 Better names can be used for the above instructions l.s = lwc1 (load FP single), l.d = ldc1 (load FP double) s.s = swc1 (store FP single), s.d = sdc1 (store FP double)0 #~ # #4 Zt #04    P |$`~  s *~5 `  5 $   V  #"&rrrrr  5    `4pGpG 1?"`],   u im16 = 40.  |$$``    `5pGpG 1?"` , ]  Y$f2|$$``    `ܢ5pGpG 1?"`,   Y$t0|$$``    `5pGpG 1?"` ,   Z0x3d|$$``   # l5pGpG 1?"`,  iMem[($t0)+40] = ($f2)x$$``    f5pGpG 1?"`,   isdc1 $f2, 40($t0)|$$``    `t5pGpG 1?"`] h  u im16 = 40.  |$$``    `5pGpG 1?"`  ]h  Y$f2|$$``    `5pGpG 1?"` h  Y$t0|$$``    `5pGpG 1?"` h  Z0x35|$$``   # lh5pGpG 1?"` h  i($f2) = Mem[($t0)+40]x$$``    f6pGpG 1?"` h  ildc1 $f2, 40($t0)|$$``'    `6pGpG 1?"`]   im16 = 40:   |$$``     `6pGpG 1?"` ]  e$f2$ |$$``     `6pGpG 1?"`   e$t0$ |$$``    `6pGpG 1?"`   Z0x31|$$``   # l-6pGpG 1?"`  i($f2) = Mem[($t0)+40]x$$``    f(86pGpG 1?"`  ilwc1 $f2, 40($t0)|$$``    `HA6pGpG 1?"`]h ,  u im16 = 40.  |$$``    `tC6pGpG 1?"` h ],  Y$f2|$$``    `U6pGpG 1?"`h ,  Y$t0|$$``    `_6pGpG 1?"` h ,  Z0x39|$$``   # lPp6pGpG 1?"`h ,  iMem[($t0)+40] = ($f2)x$$``    f0r6pGpG 1?"`h ,  iswc1 $f2, 40($t0)|$$``    `6##1?  XFormatx$$``    `6##1?  YMeaningx$$``    `6##1? [ Instruction  x$$``xB   H 1 ?xB !  H 1 ?  rB "  B 1 ?rB #  B 1 ?  rB $  B 1 ? rB %  B 1 ?  xB &  H 1 ? xB '  H 1 ?xB (  H 1 ? rB )  B 1 ? rB *  B 1 ?   rB +  B 1 ?]] rB ,  B 1 ?, , rB -  B 1 ?  rB .  B 1 ?h h   / TО6jJ?I 5General purpose register is used as the base register660 ( H  0޽h ? a(___PPT10i.+D=' 5= @B +3  0 33*8< 2(     Tܴ6ֳֳ ?"`'N  F0Moving data between general purpose and FP registers mfc1: move from coprocessor 1 (to general purpose register) mtc1: move to coprocessor 1 (from general purpose register) Moving data between FP registers mov.s: move single precision float mov.d: move double precision float = even/odd pair of registers5 <x <! <c <557!:,;$| $`~  s *ܹ6 `  6 /   <  #"&rrrrr  6   # lx6 1?"` d  c0$ |$$``   # l6 1?"`w d  c0$ |$$``   # l<6 1?"` wd  e$f2$ |$$``   # l(6 1?"`? d  e$t0$ |$$``    # l6 1?"` ?d  W0|$$``    # lD7 1?"` d  Z0x11|$$``   # l 7 1?"` d  a ($t0) = ($f2)x$$``     `7 1?"` d  e mfc1 $t0, $f2|$$``   # lX7 1?"`d ?  c0$ |$$``   # l7 1?"`wd ?  c0$ |$$``   # l"7 1?"`d w?  e$f2$ |$$``   # l,7 1?"`?d ?  e$t0$ |$$``    # l ?7 1?"` d ??  W4|$$``    # lH7 1?"` d ?  Z0x11|$$``   # lY7 1?"`d ?  a ($f2) = ($t0)x$$``     `\7 1?"`d ?  e mtc1 $t0, $f2|$$``   # lte7 1?"`?  c6$ |$$``   # lo7 1?"`w?  e$f4$ |$$``   # lq7 1?"`? w e$f2$ |$$``    # l{7 1?"`??  W0|$$``    # l7 1?"` ? ? W0|$$``    # l7 1?"` ?  Z0x11|$$``   # l\7 1?"`?  a ($f4) = ($f2)x$$``&    `7 1?"`?  mov.s $f4, $f2 |$$``   # l7 1?"` c6$ |$$``   # l̵7 1?"`w e$f4$ |$$``   # l7 1?"`w e$f2$ |$$``    # l7 1?"`? W0|$$``  !  # lP7 1?"` ? W1|$$``  "  # l$7 1?"`   Z0x11|$$`` #  # l7 1?"`  a ($f4) = ($f2)x$$``& $   `D8 1?"` mov.d $f4, $f2 |$$`` %   `l 8##1?   XFormatx$$`` &   `$8##1?  YMeaningx$$`` '   `8##1?   [ Instruction  x$$``xB (  H 1 ?  xB )  H 1 ?rB *  B 1 ?  rB +  B 1 ? rB ,  B 1 ? rB -  B 1 ? xB .  H 1 ? xB /  H 1 ?  xB 0  H 1 ? rB 1  B 1 ? rB 2  B 1 ?? ?rB 3  B 1 ? rB 4  B 1 ?rB 5  B 1 ?? ? rB 6  B 1 ?d d rB 7  B 1 ?w wrB 8  B 1 ? H  0޽h ? a(___PPT10i.+D=' 5= @B +F  0 EE*JX KE(   ~  s *8 `  8 VA = 4' X  #"."rrrrrrr LC' 8     `P8pGpG 1?"` 4c f0x24$ |$$``     `:8pGpG 1?"`y c efd5$ |$$``     `|J8pGpG 1?"` yc efs5$ |$$``    `pT8pGpG 1?"`Z c W0|$$``    `]8pGpG 1?"` Zc W0|$$``    `Dg8pGpG 1?"` c Z0x11|$$``   # lo8@PFPF 1?"` c hto integer from singlex$$``P    fq8pGpG 1?"`= c cvt.w.s fd, fs6|$$``     `8pGpG 1?"`c4' f0x24$ |$$``     `8pGpG 1?"`yc' efd5$ |$$``     `8pGpG 1?"`cy' efs5$ |$$``    `,8pGpG 1?"`Zc' W0|$$``    `ج8pGpG 1?"` cZ' W1|$$``    `T8pGpG 1?"` c ' Z0x11|$$``   # ll8@PFPF 1?"`c ' hto integer from doublex$$``P    f8pGpG 1?"`=c' cvt.w.d fd, fs6|$$``     `8pGpG 1?"` 4S  f0x20$ |$$``     `8pGpG 1?"`y S  efd5$ |$$``     `P8pGpG 1?"` yS  efs5$ |$$``    `D8pGpG 1?"`Z S  W0|$$``    `:pGpG 1?"` ZS  W0|$$``    `8pGpG 1?"` S  Z0x11|$$``   # l\:@PFPF 1?"` S  hto single from integerx$$``P    fd:pGpG 1?"`= S  cvt.s.w fd, fs6|$$``     `<$:pGpG 1?"`S 4  f0x20$ |$$``     `@.:pGpG 1?"`yS   efd5$ |$$``     `8:pGpG 1?"`S y  efs5$ |$$``    `B:pGpG 1?"`ZS   W0|$$``    `DL:pGpG 1?"` S Z  W1|$$`` !   `U:pGpG 1?"` S   Z0x11|$$`` "  # l^:@PFPF 1?"`S   gto single from doublex$$``P #   f`:pGpG 1?"`=S   cvt.s.d fd, fs6|$$``  $   `s:pGpG 1?"` 4  f0x21$ |$$``  %   `u:pGpG 1?"`y   efd5$ |$$``  &   `X:pGpG 1?"` y  efs5$ |$$`` '   `:pGpG 1?"`Z   W0|$$`` (   `:pGpG 1?"`  Z  W0|$$`` )   `:pGpG 1?"`   Z0x11|$$`` *  # l:@PFPF 1?"`  hto double from integerx$$``P +   f:pGpG 1?"`=   cvt.d.w fd, fs6|$$``  ,   `x:pGpG 1?"` 4  f0x21$ |$$``  -   `:pGpG 1?"`y   efd5$ |$$``  .   `:pGpG 1?"` y  efs5$ |$$`` /   `:pGpG 1?"`Z   W0|$$`` 0   `h:pGpG 1?"` Z  W1|$$`` 1   `:pGpG 1?"`  Z0x11|$$`` 2  # l;@PFPF 1?"`  gto double from singlex$$``P 3   f ;pGpG 1?"`=   cvt.d.s fd, fs6|$$`` 4   `;##1? 4  XFormatx$$`` 5   `$;##1?  YMeaningx$$`` 6   `&;##1?=   [ Instruction  x$$``xB 7  H 1 ?= 4 xB 8  H 1 ?='4'rB 9  B 1 ?  rB :  B 1 ? rB ;  B 1 ? 'rB <  B 1 ? 'xB =  H 1 ?= ='xB >  H 1 ?= 4 xB ?  H 1 ?4 4'rB @  B 1 ? 'rB A  B 1 ?Z Z'rB B  B 1 ? 'rB C  B 1 ?= 4 rB D  B 1 ?y y'rB E  B 1 ? 'rB F  B 1 ?= 4 rB G  B 1 ?= 4 rB H  B 1 ?=S 4S rB I  B 1 ?=c4c/ J TD9;ֳֳ ?"`'Y  #Convert instruction: cvt.x.y Convert to destination format x from source format y Supported formats Single precision float = .s (single precision float in FP register) Double precision float = .d (double float in even-odd FP register) Signed integer word = .w (signed integer in FP register)5 ('  ( $`H  0޽h ? a(___PPT10i.+D=' ;= @B +aT  0 xSpS*X S(   ~  s *$i; `  ; P =N   #"6* rrrrrrrr=N ;     `f;pGpG 1?"`fP N  f0x3c$ |$$``     `r:pGpG 1?"`P f  c0$ |$$``     `w;pGpG 1?"`zP   efs5$ |$$``   # l̈;pGpG 1?"`P z  eft5$ |$$`` }   `܊;pGpG 1?"`w P   W0|$$`` {   `;pGpG 1?"`V P w   Z0x11|$$``b y  # l@;@PFPF 1?"`P V   cflag = ((fs) <= (ft))6$ x$$``7 w   `;pGpG 1?"`=P    c.lt.s fs, ft$|$$``  u   `Ļ;pGpG 1?"`f N  f0x3c$ |$$``  s   `;pGpG 1?"` f  c0$ |$$``  q   ` ;pGpG 1?"`z   efs5$ |$$`` o  # l|;pGpG 1?"` z  eft5$ |$$`` m   `L;pGpG 1?"`w    W1|$$`` k   `;pGpG 1?"`V  w  Z0x11|$$``b i  # l<@PFPF 1?"` V  cflag = ((fs) <= (ft))6$ x$$``7 g   `t<pGpG 1?"`=    c.lt.d fs, ft$|$$``     `P <pGpG 1?"`z$N fim16$ |$$``    # lp<pGpG 1?"`$z W1|$$``    `#<pGpG 1?"`w $ W8|$$``    `,<pGpG 1?"`V $w  Z0x11|$$``<   # l=<@PFPF 1?"`$V  branch if (cflag == 1) x$$``    `7<pGpG 1?"`=$ r bc1t Label*  |$$``     `,B<pGpG 1?"`z` N$ fim16$ |$$``    # l  # l|=@PFPF 1?"` V P  cflag = ((fs) == (ft))$ x$$``7 ?   `=pGpG 1?"`= P   c.eq.d fs, ft$|$$`` @   `=##1?V N XFormatx$$`` A   `=##1?V  YMeaningx$$`` B   `=##1?= [ Instruction  x$$``xB C  H 1 ?=NxB D  H 1 ?=NrB E  B 1 ?rB F  B 1 ?V V rB G  B 1 ?rB H  B 1 ?V V xB I  H 1 ?==xB J  H 1 ?=NxB K  H 1 ?NNrB L  B 1 ?w w rB M  B 1 ?rB N  B 1 ?zzrB O  B 1 ?` rB P  B 1 ?ff` rB Q  B 1 ?=P NP rB R  B 1 ?= N rB S  B 1 ?=` N` rB T  B 1 ?= N rB W  B 1 ?=$N$ZB h  s *1 ?= N ZB x  s *1 ?= N  X T\=ֳֳ ?"`=Y &FP unit (co-processor 1) has a condition flag Set to 0 (false) or 1 (true) by any comparison instruction Three comparisons: equal, less than, less than or equal Two branch instructions based on the condition flag6.;l.;lH  0޽h ? a(___PPT10i.+D=' ;= @B +:  0 + :(   r  S > `  >   S > `x = "& H  0޽h ? 3380___PPT10.yp˅ <  0 + <(   ~  s *> `  > ~  s *> `x > H  0޽h ? a(80___PPT10.d  0 + d(   ~  s *%> `  >   s *G> `x > 4  $`H  0޽h ? a(80___PPT10.@  0 + (      BPL>"` `  >   s *W> ` > 4  $`H  0޽h ? a(80___PPT10.@  0 , (      B\\>"` `  >   s *c> ` > 4  $`H  0޽h ? a(80___PPT10.@ 0  *t (  t  t  T1 ?vQ   Z t  `Z~~ ? T$K  Z  H t 0rllC ? a(80___PPT10.L`+hr  I j (Z2=9;>S8)Q]4"fӖL|< =psy7O)RWZEFLpq<&c[n.UM [X1Oh+'0$ `h  Floating PointDr. Muhamed MudawarMuhamed Mudawar625Microsoft Office PowerPoint@X^ @ И@ o;utG g  L  y--$xx--'--$<<--'@BComic Sans MS-. 2 *1Floating Point."System8-@Arial-. 2 EBCOE 308.-@Arial-. '2 O2Computer Architecture.-@Arial-. '2 Y.Prof. Muhamed Mudawar.-@Arial-. 62 e'Computer Engineering Department.-@Arial-. L2 m.King Fahd University of Petroleum and Minerals.-՜.+,0$    On-screen ShowKFUPM/2 :ArialComic Sans MS WingdingsTimes New RomanSymbol Courier NewDefault DesignFloating PointPresentation OutlineThe World is Not Just IntegersFloating-Point NumbersFloating-Point Representation Next . . .!IEEE 754 Floating-Point Standard"Normalized Floating Point NumbersBiased Exponent RepresentationBiased Exponent Contd#Examples of Single Precision Float#Examples of Double Precision Float Converting FP Decimal to BinaryLargest Normalized FloatSmallest Normalized FloatZero, Infinity, and NaNDenormalized NumbersFloating-Point ComparisonSummary of IEEE 754 Encoding Next . . . Floating Point Addition ExampleAddition Example contd#Floating Point Subtraction ExampleSubtraction Example contd&Floating Point Addition / Subtraction#Floating Point Adder Block Diagram Next . . .&Floating Point Multiplication Example Multiplication Example contdFloating Point Multiplication Next . . .!Extra Bits to Maintain Precision Guard BitRound and Sticky BitsFour Rounding ModesExample on Rounding Advantages of IEEE 754 StandardFloating Point Complexities Next . . . MIPS Floating Point CoprocessorFP Arithmetic InstructionsFP Load/Store InstructionsFP Data Movement InstructionsFP Convert Instructions#FP Compare and Branch InstructionsExample 1: Area of a Circle!Example 2: Matrix Multiplication&Matrix Multiplication Procedure 1/3&Matrix Multiplication Procedure 2/3&Matrix Multiplication Procedure 3/3Shl  Fonts UsedDesign Template Slide Titles2 Custom Shows'_ 0Muhamed MudawarMuhamed Mudawar  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~Root EntrydO)Current UserSummaryInformation(|PowerPoint Document(/DocumentSummaryInformation8