# Some Functions Computable with a Fused-mac

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Some Functions Computable with a Fused-mac Sylvie Boldo and Jean-Michel Muller Laboratoire LIP (CNRS/ENS Lyon/Inria/Univ. lyon ), Projet Arénaire, 46 allée d Italie, Lyon Cedex 07, FRANCE Abstract The fused multiply accumulate instruction (fused-mac) that is available on some current processors such as the Power PC or the Itanium eases some calculations. We give examples of some floating-point functions (such as ulp(x) or Nextafter(x, y)), or some useful tests, that are easily computable using a fused-mac. Then, we show that, with rounding to the nearest, the error of a fused-mac instruction is exactly representable as the sum of two floating-point numbers. We give an algorithm that computes that error. Introduction The fused multiply accumulate instruction (fused-mac) is available on some current processors such as the IBM Power PC or the Intel/HP Itanium. That instruction computes an expression ±ax ± b with one final rounding error only. This allows one to perform correctly rounded division using Newton-Raphson division [7, 7, 6] (the main idea behind that is that if q approximates x/y with enough accuracy, then the remainder x yq will be exactly computed with a fused-mac, allowing to correct the quotient estimation). Also, this makes evaluation of scalar products and polynomials faster and, generally, more accurate than with conventional (addition and multiplication) floatingpoint operations. This is important, since scalar products appear everywhere in linear algebra, and since polynomials are very often used for approximating functions. It is well known [9, 2, 3] that (assuming rounding to nearest) the error of a floating point addition or the remainder of a square root is exactly representable as a floating-point number of the same format. This is also true (for any rounding mode) for the error of a multiplication or the remainder of a division. A natural question arises: is there a similar property for the fused-mac operation? Also, expert floating-point programming sometimes requires the evaluation of functions such as Nextafter(x, y), or the successor of a given floating-point number, or (for error estimation), ulp(x). We may also, for some calculations, need to know if the last bit of the significand of a number is a zero [4]. These various functions can always be computed at a low level, using masks and integer arithmetic: this results in software that is not portable, and sometimes quite slow, since the corresponding calculations are not performed in the floating-point pipeline. With conventional arithmetic, designing portable software for these functions is feasible [5] but might be costly. We aim at showing that the availability of a fused-mac instruction facilitates portable yet efficient implementation of such functions. 2 Definitions and notations Define M n as the set of exponent-unbounded, n-bit significand, binary floating-point (FP) { numbers (with n ), that is: M n = M 2 E, 2 n M 2 n,m,e Z } {0}. It is an ideal system, with no overflows or underflows. We will show results in M n. These results will remain true in actual systems that implement the IEEE-754 standard [6, ], provided that no overflows or underflows do occur. The mantissa or significand of a nonzero element M 2 E of M n is the number m(x) = M/2 n, its integral significand, noted M x is M and its corresponding exponent, noted e x is E. We assume that the reader is familiar with the basic notions of floating-point arithmetic: rounding modes, ulps,... See [0] for definitions. In the following (t) means t rounded to the nearest even. 3 Previous results and preliminary properties We will use the 2sum and Fast2Sum algorithm, presented below. They do not require the availability of a fused-mac, and make it possible to compute the error of a

2 floating-point addition exactly, represented by an FP number. The first one [4, 8] only assumes a and b are normalized FP numbers (i.e., elements of M n ). Property (2Sum Algorithm) Let a, b M n. Define x and y as x = (a + b) b = (x a) a = (x b ) ɛ b = (b b ) ɛ a = (a a ) y = (ɛ a + ɛ b ) We have: x + y = a + b exactly; Proof. x is the FP number that is closest to (a + b). This implies that x is closer to (a + b) than a. Hence, (a + b) x = y is smaller than (a + b) a = b. A well known and useful property of the fused-mac instruction, noticed by Karp and Markstein [3], is that it allows to very quickly compute the product of two FP numbers x and y exactly, expressed as the sum of two FP numbers u and v. More precisely, Property 4 (Fast2Mult Algorithm) Let a, b M n. Define x and y as x = (ab) y = (ab x) y 2 ulp(x). we have: x + y = ab exactly; If we know in advance that a b (as a matter of fact, it suffices to have e a e b ), a much faster algorithm can be used [9, 4]: Property 2 (Fast2Sum Algorithm) Let a, b M n, with a b. Define x and y as We have: x = (a + b) b = (x a) y = (b b ) y 2 ulp(x). Without a fused-mac, computing x and y is possible, but requires much more computation [9] (the significands of x and y are splitted, then partial products are computed and summed up). 4 Basic functions computable with a fusedmac 4. Checking if the last bit of the significand of some number is a zero x + y = a + b exactly; y 2 ulp(x). Brisebarre, Muller and Raina [4] have suggested an algorithm for division by a constant that works when the last bit of the divisor significand is a zero. Checking that condition is easily done with a fused-mac. Although we have presented these properties assuming a radix-2 number system, it is worth being noticed that the 2Sum algorithm (property ) works in any radix 2, and that the Fast2Sum algorithm (property 2) works in radices 2 and 3. And yet, rounding to nearest is mandatory: with directed roundings it is possible [4] to exhibit cases where the difference between the computed value of a + b and the exact value cannot be exactly expressed as an FP number. The 2Sum algorithm satisfies the following property, that will be needed in Section 5. Property 3 If (x, y) =2Sum(a, b) then y b. Property 5 (Algorithm IsEven) The following algorithm on x checks if the last significand bit of x is a zero. α = (3x) β = (α 2x) IsEven = (β = x) One may notice that the same algorithm also works with the usual (addition and multiplication) floating-point instructions. The availability of a fused-mac, here, only saves one operation. 2

3 4.2 Checking if a number is a power of 2. The following algorithm requires storage of the constant C =2 n. Of course, C M n : it is exactly representable as a floating-point number. Property 6 (Algorithm IsAPowerOf2) The following algorithm on x returns true if x is a power of 2. y h = (xc) y l = (xc y h ) IsAPowerOf2 = (y l =0). Proof if x is not a power of 2 then M x has at least a prime factor different from 2, thus M x C is of the form P 2 α, where P is odd and larger than 2 n. Hence P cannot be exactly representable with n bits, hence y h xc, hence y l 0. Important remark The above given algorithm works in the ideal set M n, which means that with real world floating-point arithmetic it will work provided that no overflow or underflow occur. To minimize the risk of overflow/underflow, one should choose C =(2 n )/(2 n ), instead of the previously given constant. The proof will be the same, overflow will never occur, and underflow will occur only where x is a subnormal FP number. 4.3 Floating-point successors There are several notions of floating-point successor that can be defined. The IEEE-754 standard for FP arithmetic [] recommends (but does not require) the availability of function Nextafter. Nextafter(x, y) returns the next representable neighbor of x in the direction toward y. If x = y, then the result is x without any exception being signaled. If either x or y is a NaN, then the result is a NaN. Overflow is signaled when x is finite but Nextafter(x, y) is infinite; underflow is signaled when the result is subnormal or zero. Cody and Coonen [5] provide a portable C version of that function. Let us show how such a function can be implemented using fused-mac instructions. First, define the following four functions. See Definition The successor of an FP number x, denoted x + is the smallest FP number larger than x. The predecessor x of x is the largest FP number less than x. The symmetrical successor of x, denoted succ(x) is x if x<0, and x + if x>0. The symmetrical predecessor pred(x) of x is x + if x<0 and x if x>0. The following algorithm will use the constant s =2 n +2 2n+. Notice that s M n. Even on real life floating-point systems, s will be representable: on all floating-point systems of current use, the number of significand bits is less than the absolute value of the smallest exponent. This is required by the IEEE-854 Standard for Floating-Point arithmetic [2], that says that (E max E min )/n shall exceed 5 and should exceed 0, and that b Emax+Emin+ should be the smallest integral power of b, that is greater than or equal to 4, where b is the radix. Property 7 Computation of succ(x) If n 2 and x 0, then succ(x) = (x + sx) Proof Assume x>0 and 2 e x<2 e+ (i.e., the exponent of x is e). Since, in that case, succ(x) =x +2 e n+ and ulp(x) =2 e n+, to show that (x + sx) is equal to succ(x) it suffices to show that x +2 e n <x+ sx < x +3 2 e n (i.e., that x + sx is within /2ulp from succ(x)). Thus, it suffices to show that 2 e n <sx<3 2 e n. () Since x 2 e, sx > 2 e n. Since x < 2 e+, sx < 2( + 2 n+ )2 e n, which is less than 3 2 e n as soon as n 2. Property 7 shows that succ(x) can be computed with one fused-mac only. Function pred(x) is also computable with one fusedmac only. The proof is very similar to that of Property 7. Property 8 Computation of pred(x) If n 2 and x 0, then pred(x) = (x sx) 3

4 Now, from functions succ and pred, one can very easily compute functions Nextafter, x + and x : Property 9 if x 0then x + = (x + s x ) x = (x s x ) x + if y>x Nextafter(x, y) = x if y = x x if y<x Important remark: although we have proven these algorithms assuming an ideal FP arithmetic with unbounded exponents, they work well with real life arithmetic. From the definition of succ(x), underflow is impossible. Also, if x is equal to the largest representable FP number, then on a machine compliant with the IEEE 754 standard, ± (depending on the sign of x) will be returned 2, which is the right answer. If x is a NaN, then the fused-mac operation will return a NaN. Hence, our algorithm for succ(x) is always correct, unless x is a subnormal number. Function pred(x) cannot generate an overflow, correctly propagates NaNs, and correctly signal underflows, however, it does not work correctly if x is a subnormal number: that (rare) case should be handled separately. If we use rounding to nearest, then a fused-mac instruction looks mandatory for designing such algorithms (at least, they cannot be implemented using one addition or multiplication). For example: Property 0 Apart from the toy case n 2, there is no constant C M n such that (xc) always equals succ(x). Proof: Suppose that there exists C M n such that (xc) always equals succ(x). Assume x<2 (the other cases are easily deduced from this one). This implies Hence, x +2 n Cx x +3 2 n. 2 n (C )x 3 2 n for any x M n, x<2. For x =, this implies C +2 n. Since the smallest element of M n larger than or equal to +2 n is +2 n+, we then have C +2 n+. And yet, for x equal to the largest element 2 This is due to the definition of rounding to the nearest: the standard specifies that An infinitely precise result with magnitude at least 2 Emax (2 2 n ) shall round to with no change in sign. of M n less than 2 (i.e., 2 2 n+ ), C +2 n+ implies (C )x 2 n+ (2 2 n+ )=4 2 n 2 2n+2. Therefore, in that case, (C )x >3 2 n, unless n 2. This may be different with other rounding modes. For instance, if rounding towards zero Z(x) is used, then Z(xσ) returns pred(x) for any nonzero x M n, with σ = 2 n. One can also implement x + as (x+ɛ) rounded towards +, where ɛ is the smallest positive nonzero subnormal number. And yet, in practice, changing the rounding mode may be quite time consuming: this is why an algorithm that works in the default mode (i.e., round-to-nearest) is preferable. 4.4 Function ulp(x) Function ulp (unit in the last place) is very frequently used for expressing the accuracy of a floating-point result. Several definitions have been given(see [] for a discussion on that topic), they differ near the powers of 2. If we use as a definition, when x is an FP number: ulp(x) = x + x then (if x M n is nonzero) one can compute function ulp through the following sequence y = (x + sx) ulp = y x where s is the same constant as in Section 4.3. If we define ulp(x) as ulp(x) = x x then function ulp is computed through y = (x sx) ulp = y x The two functions differ only when x is a power of 2. The first one is compatible with Goldberg s definition [0] (which is given for real numbers, not only for floating-point ones), the second is compatible with Kahan s one 3 and Harrison s one [] (they differ for real numbers but coincide on FP numbers). 5 Computing the error term of a fused-mac We require here that n 3. The correcting term cannot be a single FP number, even in rounding to the nearest. We will therefore compute two FP numbers such that their sum is the exact correcting term of the fused-mac. 3 Kahan s definition is: ulp(x) is the gap between the two finite floating-point numbers nearest x,even if x is one of them (But ulp(nan) is NaN.) 4

5 5. The algorithm ErrFmac Property (Algorithm ErrFmac) Let a, x, y M n. Define r, r 2 and r 3 as we have: r = (ax + y) (u,u 2 ) = Fast2Mult(a, x) (α,α 2 ) = 2Sum(y, u 2 ) (β,β 2 ) = 2Sum(u,α ) γ = ( (β r )+β 2 ) (r 2,r 3 ) = Fast2Sum(γ,α 2 ) ax + y = r + r 2 + r 3 exactly; r 2 + r 3 2 ulp(r ); u + α + α 2 = u + u 2 + y = y + ax. If this equality holds, we easily also have that r 2 + r 3 2 ulp(r ) and r 3 2 ulp(r 2), from previous properties. There is left to prove that β r and (β r )+β 2 are in M n. If they are, then they are exactly computed and the algorithm is correct. To guarantee that a value v is in M n, we just have to find an exponent e such that v2 e is an integer and v2 e < 2 n. There may exist more than one suitable e, but the existence of one is enough. We split the proof into two subcases. If we have β 2 =0, u α α 2 r 3 2 ulp(r 2). β Figure gives the idea behind the algorithm: we want to exactly add the 3 FP numbers y, u and u 2. This is usually difficult, but as we know the correct answer (r ) thanks to the fused-mac computation, we just have to get the two error terms. We first compute the small error, namely α 2. Then the other terms u and α are bigger than this value and can be combined with r into a single value γ. u β β 2 r y α γ u 2 α 2 r 2 r 3 Figure. Intermediate values of the ErrFmac algorithm. 5.2 Proof of the correctness of the ErrFmac algorithm If γ = ( (β r )+β 2 ) is equal to (β r )+β 2, then r +r 2 +r 3 = r +γ +α 2 = r +β r +β 2 +α 2 = r Figure 2. Intermediate values when β 2 =0. Figure 2 reminds the compared positions of the FP numbers involved. As β 2 =0, we have left to prove that β r is in M n.ifβ =0, then this is correct. Let us assume that β 0. We then know that r = (β + α 2 ) as β 2 =0. But we also have that α 2 2 ulp(α ) from Property and that α 2 u 2 2 ulp(u ) from Property 3 and by definition β = (u + α ). This means that α 2 β. More precisely, we either have: the general case: β 4 α 2 ; the special case where β is a result of a near-total cancellation: β =2 min(eu,eα ) and β 2 α 2. In the general case, we are in the conditions of Sterbenz s theorem [9]: r and β share the same sign and r β + α 2 2 n n β 2 β r β + α 2 +2 n n β 2 β In the special case, we have 4 α 2 > β 2 α 2.As β is a power of 2, we know that e β e r e β,so e r is a suitable exponent for β r and β r 2 er = β (β + α 2 ) 2 er ( ) 2 ulp(r )+ α β 2 er 2 er 2 +(2n )2 er + er < 2 n. 5

6 u β β 2 r α α 2 Figure 3. Intermediate values when β 2 0. If we have β 2 0, Figure 3 reminds the compared positions of the FP numbers involved. In the general case, we have here that β = r, then of course β r =0and (β r )+β 2 = β 2 are in M n. If not, as β 2 0, the only possibility for β = (β + β 2 ) not to be equal to (β + β 2 + α 2 )=r is that either β 2 = 2 ulp(β ) or β 2 = 4 ulp(β ) if β is a power of 2. We also deduce that the exponent of r and of β differ from at most. Lastly, we know that α 2 β 2 2 e β. The value min(e r,e β ) is a suitable exponent for β r and β r 2 min(er,e β ) = β (β + β 2 + α 2 ) 2 min(er,e β ) ( ) 2 ulp(r )+ β 2 + α 2 2 min(er,e β ) ( 2 er +2 e β +2 e β ) 2 min(er,e β ) 4 So β r M n as n 3. There is left to prove that (β r )+β 2 = u + α r is in M n. We know that e β + e r e β and that β 2 is either 2 e β or 2 e β 2,soe β 2 is a suitable exponent for (β r )+β 2 and (β r )+β 2 2 e β +2 = u + α (u + α + α 2 ) 2 e β +2 ( ) 2 ulp(r )+ α 2 2 e β +2 ( 2 er +2 e β ) 2 e β +2 6 So (β r )+β 2 M n as n With other rounding modes Such correcting terms for the fused-mac are only representable when the rounding is to the nearest. For example, when rounding up, if a = x =2 n and y =2 4n then ax + y =2 4n +2 2n 2 n+ +and therefore r must be strictly greater than 2 4n so r = (ax+y) =2 4n +2 3n+. So r 2 +r 3 should be exactly equal to 2 3n+ +2 2n 2 n+ + that cannot be represented as the sum of two FP numbers in M n. 5.4 Cost of the algorithm The basic cost of the algorithm is 20 fused-mac delays (FMD), but this can be tremendously reduced. The first enhancement is when we know that y ax or that y u. Then, the first 2Sum is useless as α = y and α 2 = u 2. This is typically the case in range reduction [8, 5]. The second enhancement is to get rid of the final Fast2Sum: this means that the result will not be compressed. It means that we only have: ax + y = r + r 2 + r 3 exactly; r 2 + r 3 2 ulp(r ); r 2 =0or r 2 > r 3. The last enhancement is if the processor can use several floating-point units (FPUs) in parallel. There are indeed several computations that can be done either at the same time or at consecutive steps in a pipe-line, as there is no dependence between them. For example, the computations of a and ɛ b in the 2Sum algorithm (Property ) can be performed in parallel. If 3 FPUs are available, the algorithm only costs 2 FMDs. The tasks given to each processor are given in Figure 4. More FPUs are useless to speed up the algorithm. P P 2 P 3 u u 2 α β r α 2 r 2 β 2 γ r 3 Figure 4. Task repartition when 3 FPUs are available. If only 2 FPUs are available, the algorithm costs 4 FMDs. The tasks given to each processor are shown in Figure 5. P u u 2 α α 2 γ r 2 r 3 P 2 r β β 2 Figure 5. Task repartition when 2 FPUs are available. The following table gives the cost of the ErrFmac algorithm depending on the conditions (number of FPUs, final 6

7 compression and knowledge that the inequality y ax holds): Cost (in FMDs) FPU 2 FPUs 3 FPUs Given algorithm Without the final compression 7 9 When y ax When y ax and without the final compression Conclusion We have shown that the fused-mac instruction makes it possible to implement efficiently and in a portable way many functions that are useful for expert floating-point programming. We also have shown that, assuming rounding to nearest, the error of a fused-mac operation in a given format is exactly representable as a sum of two floating-point numbers of the same format. We have given a fast and portable algorithm that returns that error. We can take advantage of this algorithm for implementing a very accurate range reduction. References [] American National Standards Institute and Institute of Electrical and Electronic Engineers. IEEE standard for binary floating-point arithmetic. ANSI/IEEE Standard, Std , New York, 985. [2] G. Bohlender, P. Kornerup, D. W. Matula, and W. Walter. Semantics for exact floating-point operations. In P. Kornerup and D. W. Matula, editors, Proceedings of the 0th IEEE Symposium on Computer Arithmetic, pages 22 26, Grenoble, France, June 99. IEEE Computer Society Press, Los Alamitos, CA. [3] S. Boldo and M. Daumas. Representable correcting terms for possibly underflowing floating point operations. In J.- C. Bajard and M. Schulte, editors, Proceedings of the 6th Symposium on Computer Arithmetic, pages 79 86, Santiago de Compostela, Spain, [4] N. Brisebarre, J.-M. Muller, and S. Raina. Accelerating correctly rounded floating-point division when the divisor is known in advance. IEEE Transactions on Computers, 53(8): , Aug [5] W. J. Cody and J. T. Coonen. Algorithm 722: Functions to support the IEEE standard for binary floating-point arithmetic. ACM Transactions on Mathematical Software, 9(4):443 45, Dec [6] W. J. Cody, J. T. Coonen, D. M. Gay, K. Hanson, D. Hough, W. Kahan, R. Karpinski, J. Palmer, F. N. Ris, and D. Stevenson. A proposed radix-and-word-length-independent standard for floating-point arithmetic. IEEE MICRO, 4(4):86 00, Aug [7] M. A. Cornea-Hasegan, R. A. Golliver, and P. Markstein. Correctness proofs outline for newton-raphson based floating-point divide and square root algorithms. In Koren and Kornerup, editors, Proceedings of the 4th IEEE Symposium on Computer Arithmetic (Adelaide, Australia), pages 96 05, Los Alamitos, CA, Apr IEEE Computer Society Press. [8] D. Defour, P. Kornerup, J.-M. Muller, and N. Revol. A new range reduction algorithm. In Proc. 35th Asilomar Conference on Signals, Systems, and, Pacific Grove, California, Nov [9] T. J. Dekker. A floating point technique for extending the available precision. Numerische Mathematik, 8: , [0] D. Goldberg. What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys, 23():5 47, Mar. 99. [] J. Harrison. A machine-checked theory of floating-point arithmetic. In Y. Bertot, G. Dowek, A. Hirschowitz, C. Paulin, and L. Théry, editors, Theorem Proving in Higher Order Logics: 2th International Conference, TPHOLs 99, volume 690 of Lecture Notes in Computer Science, pages 3 30, Nice, France, Sept Springer-Verlag. [2] A. N. S. Institute, I. of Electrical, and E. Engineers. Ieee standard for radix independent floating-point arithmetic. ANSI/IEEE Standard, Std , New York, 987. [3] A. H. Karp and P. Markstein. High-precision division and square root. ACM Transactions on Mathematical Software, 23(4):56 589, Dec [4] D. Knuth. The Art of Computer Programming, 3rd edition, volume 2. Addison Wesley, Reading, MA, 998. [5] R.-C. Li, S. Boldo, and M. Daumas. Theorems on efficient argument reduction. In Bajard and Schulte, editors, Proceedings of the 6th IEEE Symposium on Computer Arithmetic (ARITH6), pages IEEE Computer Society Press, June [6] P. Markstein. IA-64 and Elementary Functions : Speed and Precision. Hewlett-Packard Professional Books. Prentice Hall, ISBN: [7] P. W. Markstein. Computation of elementary functions on the IBM risc system/6000 processor. IBM Journal of Research and Development, 34(): 9, Jan [8]. Møller. Quasi double-precision in floating-point addition. BIT, 5:37 50, 965. [9] P. H. Sterbenz. Floating point computation. Prentice-Hall, Englewood Cliffs, NJ,

### Restoring division. 2. Run the algorithm Let s do 0111/0010 (7/2) unsigned. 3. Find remainder here. 4. Find quotient here.

Binary division Dividend = divisor q quotient + remainder CS/COE447: Computer Organization and Assembly Language Given dividend and divisor, we want to obtain quotient (Q) and remainder (R) Chapter 3 We

### What Every Computer Scientist Should Know About Floating-Point Arithmetic

What Every Computer Scientist Should Know About Floating-Point Arithmetic D Note This document is an edited reprint of the paper What Every Computer Scientist Should Know About Floating-Point Arithmetic,

### Floating Point Numbers. Question. Learning Outcomes. Number Representation - recap. Do you have your laptop here?

Question Floating Point Numbers 6.626068 x 10-34 Do you have your laptop here? A yes B no C what s a laptop D where is here? E none of the above Eddie Edwards eedwards@doc.ic.ac.uk https://www.doc.ic.ac.uk/~eedwards/compsys

### Floating-point computation

Real values and floating point values Floating-point representation IEEE 754 standard representation rounding special values Floating-point computation 1 Real values Not all values can be represented exactly

### Software Division and Square Root Using Goldschmidt s Algorithms

Software Division and Square Root Using Goldschmidt s Algorithms Peter Markstein Hewlett-Packard Laboratories, 1501 Page Mill Road, Palo Alto, CA 94304, U.S.A. Abstract Goldschmidt s Algorithms for division

### Chapter 4. Computer Arithmetic

Chapter 4 Computer Arithmetic 4.1 Number Systems A number system uses a specific radix (base). Radices that are power of 2 are widely used in digital systems. These radices include binary (base 2), quaternary

### Basic building blocks for a triple-double intermediate format

Basic building blocks for a triple-double intermediate format corrected version) Christoph Quirin Lauter February 26, 2009 Abstract The implementation of correctly rounded elementary functions needs high

### Handbook of Floating-Point Arithmetic

Jean-Michel Muller Nicolas Brisebarre Florent de Dinechin Claude-Pierre Jeannerod Vincent Lerevre Guillaume Melquiond Nathalie Revol Damien Stehle Serge Tones Handbook of Floating-Point Arithmetic Birkhäuser

### ECE 0142 Computer Organization. Lecture 3 Floating Point Representations

ECE 0142 Computer Organization Lecture 3 Floating Point Representations 1 Floating-point arithmetic We often incur floating-point programming. Floating point greatly simplifies working with large (e.g.,

### Fractional Numbers. Fractional Number Notations. Fixed-point Notation. Fixed-point Notation

2 Fractional Numbers Fractional Number Notations 2010 - Claudio Fornaro Ver. 1.4 Fractional numbers have the form: xxxxxxxxx.yyyyyyyyy where the x es constitute the integer part of the value and the y

### Floating-Point Numbers. Floating-point number system characterized by four integers: base or radix precision exponent range

Floating-Point Numbers Floating-point number system characterized by four integers: β p [L, U] base or radix precision exponent range Number x represented as where x = ± ( d 0 + d 1 β + d 2 β 2 + + d p

### Computer Organization and Architecture

Computer Organization and Architecture Chapter 9 Computer Arithmetic Arithmetic & Logic Unit Performs arithmetic and logic operations on data everything that we think of as computing. Everything else in

### A new binary floating-point division algorithm and its software implementation on the ST231 processor

19th IEEE Symposium on Computer Arithmetic (ARITH 19) Portland, Oregon, USA, June 8-10, 2009 A new binary floating-point division algorithm and its software implementation on the ST231 processor Claude-Pierre

### ECE 0142 Computer Organization. Lecture 3 Floating Point Representations

ECE 0142 Computer Organization Lecture 3 Floating Point Representations 1 Floating-point arithmetic We often incur floating-point programming. Floating point greatly simplifies working with large (e.g.,

### Approximation Errors in Computer Arithmetic (Chapters 3 and 4)

Approximation Errors in Computer Arithmetic (Chapters 3 and 4) Outline: Positional notation binary representation of numbers Computer representation of integers Floating point representation IEEE standard

### > 2. Error and Computer Arithmetic

> 2. Error and Computer Arithmetic Numerical analysis is concerned with how to solve a problem numerically, i.e., how to develop a sequence of numerical calculations to get a satisfactory answer. Part

### RN-coding of Numbers: New Insights and Some Applications

RN-coding of Numbers: New Insights and Some Applications Peter Kornerup Dept. of Mathematics and Computer Science SDU, Odense, Denmark & Jean-Michel Muller LIP/Arénaire (CRNS-ENS Lyon-INRIA-UCBL) Lyon,

### Numerical Matrix Analysis

Numerical Matrix Analysis Lecture Notes #10 Conditioning and / Peter Blomgren, blomgren.peter@gmail.com Department of Mathematics and Statistics Dynamical Systems Group Computational Sciences Research

### FLOATING POINT NUMBERS

FLOATING POINT NUMBERS Introduction Richard Hayden (with thanks to Naranker Dulay) rh@doc.ic.ac.uk http://www.doc.ic.ac.uk/~rh/teaching or https://www.doc.ic.ac.uk/~wl/teachlocal/arch1 or CATE Numbers:

### Floating point numbers in Scilab

Floating point numbers in Scilab Michaël Baudin May 2011 Abstract This document is a small introduction to floating point numbers in Scilab. In the first part, we describe the theory of floating point

### TECH. Arithmetic & Logic Unit. CH09 Computer Arithmetic. Number Systems. ALU Inputs and Outputs. Binary Number System

CH09 Computer Arithmetic CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer Representation Integer Arithmetic Floating-Point Representation

### Correctly Rounded Floating-point Binary-to-Decimal and Decimal-to-Binary Conversion Routines in Standard ML. By Prashanth Tilleti

Correctly Rounded Floating-point Binary-to-Decimal and Decimal-to-Binary Conversion Routines in Standard ML By Prashanth Tilleti Advisor Dr. Matthew Fluet Department of Computer Science B. Thomas Golisano

### FMA Implementations of the Compensated Horner Scheme

Reliable Implementation of Real Number Algorithms: Theory and Practice Dagstuhl Seminar 06021 January 08-13, 2006 FMA Implementations of the Compensated Horner Scheme Stef GRAILLAT, Philippe LANGLOIS and

### CHAPTER 5 Round-off errors

CHAPTER 5 Round-off errors In the two previous chapters we have seen how numbers can be represented in the binary numeral system and how this is the basis for representing numbers in computers. Since any

### Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

Decimal Division Remember 4th grade long division? 43 // quotient 12 521 // divisor dividend -480 41-36 5 // remainder Shift divisor left (multiply by 10) until MSB lines up with dividend s Repeat until

### CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 47 2.2 Positional Numbering Systems 48 2.3 Converting Between Bases 48 2.3.1 Converting Unsigned Whole Numbers 49 2.3.2 Converting Fractions

### Data Representation Binary Numbers

Data Representation Binary Numbers Integer Conversion Between Decimal and Binary Bases Task accomplished by Repeated division of decimal number by 2 (integer part of decimal number) Repeated multiplication

### Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

Divide: Paper & Pencil Computer Architecture ALU Design : Division and Floating Point 1001 Quotient Divisor 1000 1001010 Dividend 1000 10 101 1010 1000 10 (or Modulo result) See how big a number can be

### This Unit: Floating Point Arithmetic. CIS 371 Computer Organization and Design. Readings. Floating Point (FP) Numbers

This Unit: Floating Point Arithmetic CIS 371 Computer Organization and Design Unit 7: Floating Point App App App System software Mem CPU I/O Formats Precision and range IEEE 754 standard Operations Addition

### comp 180 Lecture 21 Outline of Lecture Floating Point Addition Floating Point Multiplication HKUST 1 Computer Science

Outline of Lecture Floating Point Addition Floating Point Multiplication HKUST 1 Computer Science IEEE 754 floating-point standard In order to pack more bits into the significant, IEEE 754 makes the leading

### IEEE floating point numbers. Floating-Point Representation and Approximation. floating point numbers with base 10. Errors

EE103 (Shinnerl) Floating-Point Representation and Approximation Errors Cancellation Instability Simple one-variable examples Swamping IEEE floating point numbers floating point numbers with base 10 floating

### Quiz for Chapter 3 Arithmetic for Computers 3.10

Date: Quiz for Chapter 3 Arithmetic for Computers 3.10 Not all questions are of equal difficulty. Please review the entire quiz first and then budget your time carefully. Name: Course: Solutions in RED

### Integer multiplication

Integer multiplication Suppose we have two unsigned integers, A and B, and we wish to compute their product. Let A be the multiplicand and B the multiplier: A n 1... A 1 A 0 multiplicand B n 1... B 1 B

### Measures of Error: for exact x and approximation x Absolute error e = x x. Relative error r = (x x )/x.

ERRORS and COMPUTER ARITHMETIC Types of Error in Numerical Calculations Initial Data Errors: from experiment, modeling, computer representation; problem dependent but need to know at beginning of calculation.

### Integer and Real Numbers Representation in Microprocessor Techniques

Brno University of Technology Integer and Real Numbers Representation in Microprocessor Techniques Microprocessor Techniques and Embedded Systems Lecture 1 Dr. Tomas Fryza 30-Sep-2011 Contents Numerical

### Systems I: Computer Organization and Architecture

Systems I: Computer Organization and Architecture Lecture 12: Floating Point Data Floating Point Representation Numbers too large for standard integer representations or that have fractional components

### RN-Codings: New Insights and Some Applications

RN-Codings: New Insights and Some Applications Abstract During any composite computation there is a constant need for rounding intermediate results before they can participate in further processing. Recently

### TO WHAT DOES THE HARMONIC SERIES CONVERGE?

Irish Math. Soc. Bulletin Number 7, Summer 203, 59 66 ISSN 079-5578 TO WHAT DOES THE HARMONIC SERIES CONVERGE? DAVID MALONE Abstract. We consider what value the harmonic series will converge to if evaluated

### Binary Numbers. Binary Numbers. Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria

Binary Numbers Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.uni-linz.ac.at http://www.risc.uni-linz.ac.at/people/schreine

### Number Representation

Number Representation Number System :: The Basics We are accustomed to using the so-called decimal number system Ten digits ::,,,3,4,5,6,7,8,9 Every digit position has a weight which is a power of Base

### CS321. Introduction to Numerical Methods

CS3 Introduction to Numerical Methods Lecture Number Representations and Errors Professor Jun Zhang Department of Computer Science University of Kentucky Lexington, KY 40506-0633 August 7, 05 Number in

### Integer roots of quadratic and cubic polynomials with integer coefficients

Integer roots of quadratic and cubic polynomials with integer coefficients Konstantine Zelator Mathematics, Computer Science and Statistics 212 Ben Franklin Hall Bloomsburg University 400 East Second Street

### Lecture 1: Elementary Number Theory

Lecture 1: Elementary Number Theory The integers are the simplest and most fundamental objects in discrete mathematics. All calculations by computers are based on the arithmetical operations with integers

### PUTNAM TRAINING POLYNOMIALS. Exercises 1. Find a polynomial with integral coefficients whose zeros include 2 + 5.

PUTNAM TRAINING POLYNOMIALS (Last updated: November 17, 2015) Remark. This is a list of exercises on polynomials. Miguel A. Lerma Exercises 1. Find a polynomial with integral coefficients whose zeros include

### SOLUTIONS FOR PROBLEM SET 2

SOLUTIONS FOR PROBLEM SET 2 A: There exist primes p such that p+6k is also prime for k = 1,2 and 3. One such prime is p = 11. Another such prime is p = 41. Prove that there exists exactly one prime p such

### Harmonic Sum Calculation: Sneaking Finite Precision Principles into CS1

Harmonic Sum Calculation: Sneaking Finite Precision Principles into CS1 Andrew A. Anda Department of Computer Science St. Cloud State University aanda@eeyore.stcloudstate.edu Abstract We describe using

### Notes on Factoring. MA 206 Kurt Bryan

The General Approach Notes on Factoring MA 26 Kurt Bryan Suppose I hand you n, a 2 digit integer and tell you that n is composite, with smallest prime factor around 5 digits. Finding a nontrivial factor

### Binary Numbers. Binary Numbers. Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria

Binary Numbers Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.uni-linz.ac.at http://www.risc.uni-linz.ac.at/people/schreine

### Number Systems and. Data Representation

Number Systems and Data Representation 1 Lecture Outline Number Systems Binary, Octal, Hexadecimal Representation of characters using codes Representation of Numbers Integer, Floating Point, Binary Coded

### SOLVING POLYNOMIAL EQUATIONS

C SOLVING POLYNOMIAL EQUATIONS We will assume in this appendix that you know how to divide polynomials using long division and synthetic division. If you need to review those techniques, refer to an algebra

### Decimal Floating-Point: Algorism for Computers

Decimal Floating-Point: Algorism for Computers Arith16 16 June 2003 Mike Cowlishaw IBM Fellow http://www2.hursley.ibm.com/decimal decarith16 Overview Why decimal arithmetic is increasingly important Why

### k, then n = p2α 1 1 pα k

Powers of Integers An integer n is a perfect square if n = m for some integer m. Taking into account the prime factorization, if m = p α 1 1 pα k k, then n = pα 1 1 p α k k. That is, n is a perfect square

### Improving Goldschmidt Division, Square Root and Square Root Reciprocal

Laboratoire de l Informatique du Parallélisme École Normale Supérieure de Lyon Unité Mixte de Recherche CNRS-INRIA-ENS LYON n o 5668 SPI Improving Goldschmidt Division, Square Root and Square Root Reciprocal

### Elementary Number Theory We begin with a bit of elementary number theory, which is concerned

CONSTRUCTION OF THE FINITE FIELDS Z p S. R. DOTY Elementary Number Theory We begin with a bit of elementary number theory, which is concerned solely with questions about the set of integers Z = {0, ±1,

### Bit operations carry* 0110 a 0111 b a+b. 1 and 3 exclusive OR (^) 2 and 4 and (&) 5 or ( )

Bit operations 1 and 3 exclusive OR (^) 2 and 4 and (&) 5 or ( ) 01100 carry* 0110 a 0111 b 01101 a+b * Always start with a carry-in of 0 Did it work? What is a? What is b? What is a+b? What if 8 bits

### Computer arithmetic and round-off errors

Chapter 5 Computer arithmetic and round-off errors In the two previous chapters we have seen how numbers can be represented in the binary numeral system and how this is the basis for representing numbers

### quotient = dividend / divisor, with a remainder Given dividend and divisor, we want to obtain quotient (Q) and remainder (R)

Binary division quotient = dividend / divisor, with a remainder dividend = divisor quotient + remainder Given dividend and divisor, we want to obtain quotient (Q) and remainder (R) We will start from our

### Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs

Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs Nathan Whitehead Alex Fit-Florea ABSTRACT A number of issues related to floating point accuracy and compliance are a frequent

### Presented By: Ms. Poonam Anand

Presented By: Ms. Poonam Anand Know the different types of numbers Describe positional notation Convert numbers in other bases to base 10 Convert base 10 numbers into numbers of other bases Describe the

### Introduction to IEEE Standard 754 for Binary Floating-Point Arithmetic

Introduction to IEEE Standard 754 for Binary Floating-Point Arithmetic Computer Organization and Assembly Languages, NTU CSIE, 2004 Speaker: Jiun-Ren Lin Date: Oct 26, 2004 Floating point numbers Integers:

### Prime Numbers. Chapter Primes and Composites

Chapter 2 Prime Numbers The term factoring or factorization refers to the process of expressing an integer as the product of two or more integers in a nontrivial way, e.g., 42 = 6 7. Prime numbers are

### Binary Representation and Computer Arithmetic

Binary Representation and Computer Arithmetic The decimal system of counting and keeping track of items was first created by Hindu mathematicians in India in A.D. 4. Since it involved the use of fingers

### Series Approximation Methods for Divide and Square Root in the Power3 Processor

Series Approximation Methods for Divide and Square Root in the Power3 Processor Ramesh C.Agarwal Fred G.Gustavson Martin S. Schmookler IBM Corporation IBM Corporation IBM Corporation Research Division

### Digital Logic. The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer.

Digital Logic 1 Data Representations 1.1 The Binary System The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. The system we

### Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm.

Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm. We begin by defining the ring of polynomials with coefficients in a ring R. After some preliminary results, we specialize

### U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009. Notes on Algebra

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009 Notes on Algebra These notes contain as little theory as possible, and most results are stated without proof. Any introductory

### Worst Cases for the Exponential Function in the IEEE 754r decimal64 Format

Worst Cases for the Exponential Function in the IEEE 754r decimal64 Format Vincent Lefèvre 1 and Damien Stehlé 2 and Paul Zimmermann 1 1 LORIA/INRIA Lorraine, Bâtiment A, Technopôle de Nancy-Brabois, 615

### Chapter 6. Number Theory. 6.1 The Division Algorithm

Chapter 6 Number Theory The material in this chapter offers a small glimpse of why a lot of facts that you ve probably nown and used for a long time are true. It also offers some exposure to generalization,

### it is easy to see that α = a

21. Polynomial rings Let us now turn out attention to determining the prime elements of a polynomial ring, where the coefficient ring is a field. We already know that such a polynomial ring is a UF. Therefore

### JUST THE MATHS UNIT NUMBER 1.8. ALGEBRA 8 (Polynomials) A.J.Hobson

JUST THE MATHS UNIT NUMBER 1.8 ALGEBRA 8 (Polynomials) by A.J.Hobson 1.8.1 The factor theorem 1.8.2 Application to quadratic and cubic expressions 1.8.3 Cubic equations 1.8.4 Long division of polynomials

### Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.

Some Polynomial Theorems by John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.com This paper contains a collection of 31 theorems, lemmas,

### Outline. Towards Automatic Accuracy Validation and Optimization of Fixed-Point Hardware Descriptions in SystemC. Typical and Proposed Design Method

Outline Motivations Towards Automatic Accuracy Validation and Optimization of Fixed-Point Hardware Descriptions in Arnaud Tisserand CNRS, IRISA laboratory, CAIRN research team SCAN 2010, September 27 30,

### 4.3 Limit of a Sequence: Theorems

4.3. LIMIT OF A SEQUENCE: THEOREMS 5 4.3 Limit of a Sequence: Theorems These theorems fall in two categories. The first category deals with ways to combine sequences. Like numbers, sequences can be added,

### CHAPTER 5: MODULAR ARITHMETIC

CHAPTER 5: MODULAR ARITHMETIC LECTURE NOTES FOR MATH 378 (CSUSM, SPRING 2009). WAYNE AITKEN 1. Introduction In this chapter we will consider congruence modulo m, and explore the associated arithmetic called

### Lecture 4 Representing Data on the Computer. Ramani Duraiswami AMSC/CMSC 662 Fall 2009

Lecture 4 Representing Data on the Computer Ramani Duraiswami AMSC/CMSC 662 Fall 2009 x = ±(1+f) 2 e 0 f < 1 f = (integer < 2 52 )/ 2 52-1022 e 1023 e = integer Effects of floating point Effects of floating

### 11 Ideals. 11.1 Revisiting Z

11 Ideals The presentation here is somewhat different than the text. In particular, the sections do not match up. We have seen issues with the failure of unique factorization already, e.g., Z[ 5] = O Q(

### A Second Course in Mathematics Concepts for Elementary Teachers: Theory, Problems, and Solutions

A Second Course in Mathematics Concepts for Elementary Teachers: Theory, Problems, and Solutions Marcel B. Finan Arkansas Tech University c All Rights Reserved First Draft February 8, 2006 1 Contents 25

### TOPIC 3: CONTINUITY OF FUNCTIONS

TOPIC 3: CONTINUITY OF FUNCTIONS. Absolute value We work in the field of real numbers, R. For the study of the properties of functions we need the concept of absolute value of a number. Definition.. Let

### The Essentials of Computer Organization and Architecture. Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003

The Essentials of Computer Organization and Architecture Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003 Chapter 2 Instructor's Manual Chapter Objectives Chapter 2, Data Representation,

### Number Theory Hungarian Style. Cameron Byerley s interpretation of Csaba Szabó s lectures

Number Theory Hungarian Style Cameron Byerley s interpretation of Csaba Szabó s lectures August 20, 2005 2 0.1 introduction Number theory is a beautiful subject and even cooler when you learn about it

### 3 1. Note that all cubes solve it; therefore, there are no more

Math 13 Problem set 5 Artin 11.4.7 Factor the following polynomials into irreducible factors in Q[x]: (a) x 3 3x (b) x 3 3x + (c) x 9 6x 6 + 9x 3 3 Solution: The first two polynomials are cubics, so if

### A Library of Parameterized Floating Point Modules and Their Use

A Library of Parameterized Floating Point Modules and Their Use Pavle Belanović and Miriam Leeser Dept of Electrical and Computer Engineering Northeastern University Boston, MA, 02115, USA {pbelanov,mel}@ece.neu.edu

### Limit processes are the basis of calculus. For example, the derivative. f f (x + h) f (x)

SEC. 4.1 TAYLOR SERIES AND CALCULATION OF FUNCTIONS 187 Taylor Series 4.1 Taylor Series and Calculation of Functions Limit processes are the basis of calculus. For example, the derivative f f (x + h) f

### Numerical Analysis I

Numerical Analysis I M.R. O Donohoe References: S.D. Conte & C. de Boor, Elementary Numerical Analysis: An Algorithmic Approach, Third edition, 1981. McGraw-Hill. L.F. Shampine, R.C. Allen, Jr & S. Pruess,

### A New Euclidean Division Algorithm for Residue Number Systems

A New Euclidean Division Algorithm for Residue Number Systems Jean-Claude Bajard and Laurent Stéphane Didier Laboratoire d Informatique de Marseille CMI, Université de Provence, 39 rue Joliot-Curie, 3453

### Copy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any.

Algebra 2 - Chapter Prerequisites Vocabulary Copy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any. P1 p. 1 1. counting(natural) numbers - {1,2,3,4,...}

### SUBGROUPS OF CYCLIC GROUPS. 1. Introduction In a group G, we denote the (cyclic) group of powers of some g G by

SUBGROUPS OF CYCLIC GROUPS KEITH CONRAD 1. Introduction In a group G, we denote the (cyclic) group of powers of some g G by g = {g k : k Z}. If G = g, then G itself is cyclic, with g as a generator. Examples

### CONTINUED FRACTIONS AND FACTORING. Niels Lauritzen

CONTINUED FRACTIONS AND FACTORING Niels Lauritzen ii NIELS LAURITZEN DEPARTMENT OF MATHEMATICAL SCIENCES UNIVERSITY OF AARHUS, DENMARK EMAIL: niels@imf.au.dk URL: http://home.imf.au.dk/niels/ Contents

### It is time to prove some theorems. There are various strategies for doing

CHAPTER 4 Direct Proof It is time to prove some theorems. There are various strategies for doing this; we now examine the most straightforward approach, a technique called direct proof. As we begin, it

### FACTORING POLYNOMIALS IN THE RING OF FORMAL POWER SERIES OVER Z

FACTORING POLYNOMIALS IN THE RING OF FORMAL POWER SERIES OVER Z DANIEL BIRMAJER, JUAN B GIL, AND MICHAEL WEINER Abstract We consider polynomials with integer coefficients and discuss their factorization

### Radix Number Systems. Number Systems. Number Systems 4/26/2010. basic idea of a radix number system how do we count:

Number Systems binary, octal, and hexadecimal numbers why used conversions, including to/from decimal negative binary numbers floating point numbers character codes basic idea of a radix number system

### Complete Interval Arithmetic and its Implementation on the Computer

Complete Interval Arithmetic and its Implementation on the Computer Ulrich W. Kulisch Institut für Angewandte und Numerische Mathematik Universität Karlsruhe Abstract: Let IIR be the set of closed and

### z 0 and y even had the form

Gaussian Integers The concepts of divisibility, primality and factoring are actually more general than the discussion so far. For the moment, we have been working in the integers, which we denote by Z

### 7. Some irreducible polynomials

7. Some irreducible polynomials 7.1 Irreducibles over a finite field 7.2 Worked examples Linear factors x α of a polynomial P (x) with coefficients in a field k correspond precisely to roots α k [1] of

### A new binary floating-point division algorithm and its software implementation on the ST231 processor

2009 19th IEEE International Symposium on Computer Arithmetic A new binary floating-point division algorithm and its software implementation on the ST231 processor Claude-Pierre Jeannerod 1, 2 Hervé Knochel

### Unit 2: Number Systems, Codes and Logic Functions

Unit 2: Number Systems, Codes and Logic Functions Introduction A digital computer manipulates discrete elements of data and that these elements are represented in the binary forms. Operands used for calculations

### 8 Divisibility and prime numbers

8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express

### Polynomials. Dr. philippe B. laval Kennesaw State University. April 3, 2005

Polynomials Dr. philippe B. laval Kennesaw State University April 3, 2005 Abstract Handout on polynomials. The following topics are covered: Polynomial Functions End behavior Extrema Polynomial Division