Multiplication Algorithms for Radix-
2
RN-Codings and Two’s Complement
Numbers
Jean-Luc Beuchat
Projet Ar´enaire, LIP, ENS Lyon
46, All´ee d’Italie
F–69364 Lyon Cedex 07
jean-luc.beuchat@ens-lyon.fr
Jean-Michel Muller
Projet Ar´enaire, LIP, ENS Lyon
46, All´ee d’Italie
F–69364 Lyon Cedex 07
jean-michel.muller@ens-lyon.fr
Abstract
The RN-codings, where “RN” stands for “Round to Nearest”, are particular cases of signed-digit representa-tions, for which rounding to nearest is always identical to truncation. In radix 2, Booth recoding is an RN-coding. In this paper, we suggest several multiplication algorithms able to handle RN-codings, and we analyze their properties.
1. Introduction
Kornerup and Muller recently introduced the notion of RN-coding [7], where “RN” stands for “Round to Nearest”. An RN-coding is a radix-β signed-digit representation for which truncating is always equivalent to rounding to near-est. For example, in radix10, the RN-coding ofπstarts with 3.142¯4¯13¯3¯54¯4¯10¯2¯13. . .where (as usually)¯4means−4. An interesting property of these recodings is that when we use them, there is no phenomenon of “double rounding”. In this paper, we wish to present some arithmetic operators for these RN codings. More precisely, our goal is to add the smallest amount of hardware to a standard arithmetic and logic unit (ALU) so that it can efficiently handle both two’s complement numbers and RN-codings. Before going fur-ther, let us give some definitions.
Definition 1. LetXbe a radix-βnumber. We define◦n(X) asX rounded to the nearestn-digit radix-βnumber. Example 1. Consider the radix-10 number X = 12.2934524. We have ◦8(X) = 12.293452, ◦6(X) = 12.2935,◦4(X) = 12.29, and◦3(X) = 12.3.
Definition 2 (RN-codings [7]). Let β be an integer greater than or equal to 2. The digit sequence D =
dndn−1dn−2dn−3. . . d0.d−1d−2. . .(with−β+ 1≤di ≤ β−1) is a radix-βRN-coding ofXifX = n i=−∞ diβiand j−1 i=−∞ diβi ≤12βjfor anyj.
Theorem 1 (Characterizations of RN-codings [7]). Let β be an integer greater than or equal to 2. If β is odd, then D = dndn−1dn−2dn−3. . . d0.d−1d−2. . . is an RN-coding if and only if all digits have absolute value less than or equal to(β−1)/2.
Ifβis even thenD =dndn−1dn−2dn−3. . . d0.d−1d−2. . . is an RN-coding if and only if
1. all digits have absolute value less than or equal to β/2;
2. if|di|=β/2, then the first non-zero digit that follows
on the right has an opposite sign, that is, the largest j < isuch thatdj= 0satisfiesdidj<0.
Example 2. The well-known Booth recoding [4] is a
radix-2 RN-coding. Each number is written on the digit set
{¯1,0,1}and the rightmost non-zero digit is¯1. Each num-ber has therefore a single finite representation [7]. Al-gorithm 1 summarizes the conversion of a two’s comple-ment number, where each output digit is deduced from a constant-sized sliding window of input digits. Consider the (n+ 1)-bit two’s complement numberX = 2n−1 = (010. . .0)2. Algorithm 1 returns the(n+ 1)-digit number Y = 2n−2n−1 = (1¯10. . .0)2, whereas then-digit num-berZ = 2n−1= (10. . .0)2is also an RN-coding ofX. If the (n+ 1)-bit numbers we have to convert belong to the set{−2n−1, . . . ,2n−1}, it is therefore preferable to apply Algorithm 2, which guarantees that the result is ann-digit RN-coding [3].
In the following, we will represent a radix-2RN-coding
Algorithm 1Booth recoding of a two’s complement num-ber.
Require: An (n + 1)-bit two’s complement number X ∈
{−2n, . . . ,2n−1}withx−1= 0
Ensure: An(n+ 1)-digit radix-2 RN-codingY such thatX=Y 1: fori= 0tondo
2: yi←xi−1−xi; 3: end for
Algorithm 2Two’s complement to radix-2RN-coding con-version.
Require: An (n + 1)-bit two’s complement number X ∈
{−2n−1, . . . ,2n−1}withx−1= 0
Ensure: Ann-digit radix-2 RN-codingY such thatX=Y 1: fori= 0ton−2do
2: yi←xi−1−xi; 3: end for
4: yn←x¯n(xn−1∨xn−2)−xnxn−1x¯n−2;
two bit-stringsX+andX−such that
X =X+−X−,
ifx±i = 1thenx∓i = 0. (1)
This paper devoted to the multiplication of radix-2 RN-codings is organized as follows: Section 2 describes an im-provement of a multiplication algorithm we have introduced previously. Its major drawback is that it does not share many common resources with a conventional multiplier. In Section 3, we show how to very slightly adapt a conven-tional multiplier so that it can also handle RN-codings. Note that an extended version including proofs of properties and algorithms is available as LIP Research Report 2005–05 [2].
2. Improvement of the Multiplication
Algo-rithm Proposed in [3]
Our first multiplication algorithm, published in [3], con-sists in computingXY =X+Y++X−Y−−X+Y−− X−Y+in two’s complement and in converting the result to radix-2 RN-coding. According to Definition 2 and Equa-tion (1), neitherX+norX−contain a string of ones whose length is greater than one (i.e. if x±i = 1, thenx±i+1 =
x±i−1 = 0). This property reduces the number of partial products involved in the computation of X+Y+,X−Y−,
X+Y−, andX−Y+ by half at the price of OR gates (Fig-ure 1a).
Figure 2a depicts the architecture of the multiplier pro-posed in [3]. Four Partial Product Generators (PPGs) tak-ing advantage of the above-mentioned property and four carry-save adder trees compute in parallelX+Y+,X−Y−,
X+Y−, andX−Y+. Then, two adders based on (4,2) -compressors and a subtracter generate the carry-save form of the product P = XY. The last step consists in
converting this intermediate result to radix-2 RN-coding. Since the maximal absolute value of an n-digit radix-2 RN-coding X is 2n−1 [3], the product XY belongs to {−22n−2, . . . ,22n−2}. We use a fast adder to compute the two’s complement representation of P and apply Al-gorithm 2 to generate a(2n−1)-digit radix-2RN-coding.
Consider now the addition ofX+Y+andX−Y−. The algorithm described in [3] computes (x+0y+1 +x+1y+0) + (x−0y1−+x1−y−0) = (x+0y+1 ∨x+1y0+) + (x−0y1−∨x−1y0−) with carry-save adders. This addition generates a carry iff
x+0 =y1+=x−1 =y0−= 1orx+1 =y+0 =x−0 =y−1 = 1.
In both cases, the definition of the radix-2RN-coding guar-antees that(x+0y+2 +x+1y1+)+(x−0y−2 +x−1y1−) = 0.
Conse-quently, thejth partial products ofX+Y+andX−Y−can be added without carry propagation (Figure 1b). In the fol-lowing, we respectively denote the carry bit and the sum bit of(x+i yj++x+i+1y+j−1)+(xi−yj−+x−i+1y−j−1)byψ(i, j)and
ϕ(i, j). Applying this notation to our example, we obtain: (x+0y+1 +x1+y0+) + (x−0y1−+x−1y−0) = 2ψ(0,1) +ϕ(0,1), (x+0y+2 +x1+y1+) + (x−0y2−+x−1y−1) = 2ψ(0,2) +ϕ(0,2), andψ(0,1) +ϕ(0,2) =ψ(0,1)∨ϕ(0,2). The improve-ment proposed here is based on such properties: instead of addingX+Y+toX−Y−, we combine their respective par-tial products in order to compute(X+Y++X−Y−)with a singlen/2-operand carry-save adder. Theorem 2, and Al-gorithm 3 describe more precisely this partial product gen-eration process. Compared to the scheme described in [3], our new approach only requires half-adder (HA) cells and OR gates, thus adding an XOR gate and an OR gate in the critical path.
Theorem 2. LetXandY be two radix-2RN-codings. Con-sider two functionsϕ(i, j)andψ(i, j)defined as follows:
ϕ(i, j) = (x+i yj+∨x+i+1yj−+1)⊕(x−i yj−∨x−i+1yj−−1) (2)
and
ψ(i, j) = (x+i yj+∨x+i+1y+j−1)·(x−i y−j ∨x−i+1y−j−1) = x+iy+jx−i+1yj−−1∨x−i yj−x+i+1y+j−1, (3)
where1≤j ≤nandi+j <2n−2. Then,
x+i y+j +x−i y−j =x+i y+j ∨x−i y−j , (4) x+i y+j +x−i y−j +ψ(i−1, j) =x+i yj+∨x−i yj−∨ψ(i−1, j), (5) x+i y+j +x+i+1y+j−1+x−i yj−+x−i+1yj−−1 = 2ψ(i, j) +ϕ(i, j)∈ {0,1,2}, (6) ϕ(i, j) +ψ(i, j−1) =ϕ(i, j)∨ψ(i, j−1), (7) ϕ(i, j) +ψ(i−1, j) =ϕ(i, j)∨ψ(i−1, j). (8)
y+2 x+0 x+1y+1 x−0y−2x−1y1− HA HA y+1 x0+ x+1y+0 x−0y−1x−1y−0 y+2 x+1 x+2y+1 x−1y−2x−2 HA y−1 x+0y+0x−0y−0 y−2 x−2 y+2 x+2 λ(1)0 λ(0)0 λ(2)0 λ(3)0 λ(4)0 y+0 x+0 y+0 x+2 y+2 x+2 HA y+2 x+0 x+1y+1x+0y+1x+1y+0 y+2 x+1 x+2y+1 ψ (0, 1) ϕ (0, 1) ϕ (0, 2) ψ (0, 2) ψ (1, 2) ϕ (1, 2) (b) (a)
Figure 1. (a) Computation ofX+Y+ whenn= 3. (b) Computation ofX+Y++X−Y−whenn= 3.
Carry−save subtracter Σ Σ X+ Y+ X− Y− X+ Y− X− Y+ ... ... Fast adder + X+Y− X−Y+ + X+Y+ X−Y−
Carry−save adder Carry−save adder
Carry−save subtracter Σ Σ Σ Σ Carry−save adder tree PPG PPG PPG PPG X+ Y+ X− Y− X+ Y− X− Y+ Partial Product Generator ... ... ... ... Fast adder X−Y+ X+Y− Y− X− X+Y+ + X+Y+ X−Y− Carry−save Two’s complement n 2 partials products + X+Y− X−Y+
Two’s complement to RN−coding Two’s complement to RN−coding
PPG PPG Carry−save Two’s complement XY (RN−coding) (b) XY (RN−coding) (a) (4,2)−compressors
Figure 2. Multiplication of two RN-codings. (a) Architecture of the multiplier described in [3]. (b) Proposed improvement.
Example 3. Let us consider two3-digit RN-codingsXand Y. We could compute the sum of the six partial products
2ix+i Y+ and2ix−i Y−,0 ≤ i ≤ 2, by means of a carry-save adder tree. In this example, Theorem 2 allows to define a single partial product (Figure 1b), whose bit of weight2j
is denoted byλ(0j),0≤j≤4.
• According to Equation (4), we replace an addition by an OR gate:λ(0)0 =x+0y0+∨x−0y0−.
• Since the computation of λ(0)0 does not generate a carry, we have λ(1)0 = (x+0y1++x+1y+0 +x−0y1− +
x−1y0−) mod 2 =ϕ(0,1)(Equation (6).
• We then apply twice Equation (6) to computeϕ(0,2), ψ(0,2),ϕ(1,2), andψ(1,2).
• Finally, Equations (7), (8), and (5) respectively allow to computeλ(2)0 ,λ(3)0 , andλ(4)0 .
Figure 2b shows the general architecture of the multi-plier. At the price of a more complex partial product gen-eration, we save two save adder trees and two carry-save adders based on (4,2)-compressors. It is worth be-ing noticed that the critical path of our new Partial Prod-uct Generator (two OR gates, one AND gate, and an XOR gate) is shorter than the one of a (4,2)-compressor (three XOR gates). Let(U(c), U(s))denote the carry-save form of
X+Y++X−Y−. We haveX+Y++X−Y− = 2U(c)+
U(s), whereu(ic) = 0andui(s) = λ(0i)fori ∈ {0,1,2n−
3,2n−2}. Algorithm 3 can also be applied to the com-putation of(X+Y− +X−Y+). Thus, we obtain a carry-save number (V(c), V(s))such that X+Y− +X−Y+ =
Algorithm 3Partial product generation for the computation ofX+Y++X−Y−.
Require: Twon-digit RN-codingsXandY; two functionsϕ(i, j)and
ψ(i, j)respectively defined by Equation (2) and Equation (3) Ensure: (2n−1)vectorsΛ(j)=λk(j−)1. . . λ0(j), where1≤k≤ n/2
1: λ(0)0 ←x+0y0+∨x−0y−0;λ(1)0 ←ϕ(0,1);λ(20n−2)←x+n−1yn+−1∨ x− n−1y−n−1∨ψ(n−2, n−1); 2: fori= 1ton2 −1do 3: forj= 0toi−1do 4: λ(2ji+1)←ϕ(2j,2i+ 1−2j)∨ψ(2j,2i−2j); 5: end for 6: λ(2i i+1)←ϕ(2i,1); 7: end for 8: fori= 1ton2 −1do 9: forj= 0toi−1do 10: λ(2ji)←ϕ(2j,2i−2j)∨ψ(2j,2i−2j−1); 11: end for 12: λ(2i i)←x+2iy+0 ∨x−2iy0−; 13: end for 14: fori=n+12 ton−2do 15: forj= 0ton−i−2do 16: λ(2ji)←ϕ(2i+ 2j−n+ 1, n−2j−1)∨ψ(2i+ 2j−n, n− 2j−1); 17: end for 18: λ(2n−i)i−1←x+n−1y2+i−n+1∨x−n−1y−2i−n+1∨ψ(n−2,2i−n+ 1); 19: end for 20: fori=n−21ton−2do 21: forj= 0ton−i−2do 22: λ(2ji+1)←ϕ(2i+ 2j−n+ 2, n−2j−1)∨ψ(2i−2j− n+ 1, n−2j−1); 23: end for 24: end for
2V(c)+V(s). Note that the two’s complement forms ofV(s)
andV(c)are respectively defined by: 22n−1−V(s) = 1 +
2n−2
i=0 ¯vi(s)and22n−1−2V(c)= 22n−2+8+
2n−3
i=3 v¯(i−c)1.
Thus, the carry-save formP = (P(c), P(s))of the product can be computed as follows:
2P(c)+P(s) = 9 + (u2(sn−) 2+ ¯v2(sn−) 2+ 1)22n−2+ 2n−3 i=3 (u(is)+u(i−c)1+ ¯v(is)+ ¯vi−(c)1)2i+ 2 i=0 (u(is)+ ¯vi(s))2i.
The operator implementing this equation is mainly based on (4,2)-compressors. P is finally converted to radix-2 RN-coding. Though this multiplier reduces the area and the delay compared to the one published in [3], it could only share a multioperand adder with a two’s complement mul-tiplier available in the ALU of a processor.
3. Modified Booth Recoding Revisited
Theorem 3 (Radix-βkRN-codings). LetY =yn−1. . . y0 be ann-digit radix-β RN-coding ofX. The radix-βk num-berZ =zn/k−1. . . z0, withzi=k−j=01yki+jβj, is also
an RN-coding ofX.
Example 4 (Radix-4modified Booth Recoding). Trying to recode one of the binary operands so that its representa-tion contains as many zeros as possible is a common way to design fast multipliers. The original Booth recoding was a first attempt [4]. However, it sometimes increases the number of non-zero digits of the operand and is not imple-mented in modern ALUs: if we apply Algorithm 1 toX = (101.0101)2 =−2.6875, we obtainY = (¯11¯1.1¯11¯1)2. A common solution, known as radix-4modified Booth recod-ing, consists in writingX on the digit set{¯2, . . . ,2}as fol-lows: Z = 1 i=−2 (2(x2i−x2i+1) + (x2i−1−x2i))4i = 1 i=−2 (y2i+1+y2i)4i= (¯11.11)4=−2.6875, (9) wherex−5 = 0 andx3 = 1 (sign extension). We deduce from Equation (9) and from Theorem 3 that the radix-4 mod-ified Booth recoding is an RN-coding ofX. Daumas and Matula observed that “a digit2can only be followed by a negative digit possibly preceded by a string of zeros” [5] and that this special notation is not redundant. They ap-plied this fact to design a circuit able to efficiently recode both binary and carry-save operands, but did not discover the rounding property of the representation.
3.1. Multiplication Algorithm Based on Radix-
4Modified Booth Recoding
A consequence of Theorem 3 is that a two’s complement multiplier with radix-4modified Booth recoding can easily be modified so that the recoded operand is either a two’s complement number or a radix-2RN-coding. Partial prod-uct generation is often performed in two steps in state-of-the-art multipliers [6]: a Booth encoder is responsible of writing the operand X on the digit set {¯2, . . . ,2}; then, a Booth selector chooses a partial product among0,+Y, −Y, +2Y, and −2Y according to a digit of the recoded operand. Goto et al. showed that the area of the Booth selector highly depends on the encoding of the radix-4 dig-its [6] and proposed a solution with four bdig-its: PLi(positive),
Mi (negative), 2Ri (doubled factor), and Ri (unchanged factor). Table 1 describes the computation of these control signals from two digits of a radix-2 RN-coding X. Note that several patterns never occur (we denote them by φ).
According to the definition ofX, we know for instance that
x+i = 1 ⇒x−i = 0. Building a Karnaugh map allows to compute the logic equations defining PLi,Mi,Ri, and2Ri:
PLi=x+2i+1∨x+2ix−2i+1, Mi=x−2i+1∨x−2ix+2i+1, Ri=x+2i∨x−2i, 2Ri=x+2i∨x−2i= ¯Ri. Figure 3 shows the implementation of the Booth encoder proposed by Gotoet al. and our Booth encoder for radix-2 RN-codings. According to Goto et al., the Booth en-coder occupies1.2% of the space in a54×54-bit multiplier. Therefore, our modification does not increase significantly the area and the delay (a multiplexer added in the critical path) of the multiplier.
Table 1. Truth table for radix-4modified Booth recoding. x+2i+1x−2i+1x2i+x−2i Func Ri2RiPLiMi 0 0 0 0 0 0 1 0 0 0 0 0 1 −Y 1 0 0 1 0 0 1 0 +Y 1 0 1 0 0 0 1 1 – φ φ φ φ 0 1 0 0 −2Y 0 1 0 1 0 1 0 1 – φ φ φ φ 0 1 1 0 −Y 1 0 0 1 0 1 1 1 – φ φ φ φ 1 0 0 0 +2Y 0 1 1 0 1 0 0 1 +Y 1 0 1 0 1 0 1 0 – φ φ φ φ . . . . 1 1 1 1 – φ φ φ φ
This operator is a building block for our second multipli-cation algorithm. We suggest to computeXY = XY+− XY−, whereX is ann-digit radix-2RN-coding, andY+
andY− aren-bit unsigned numbers. Up to this point, we assumed thatX was either a two’s complement number or a radix-2 RN-coding, and that the second operand was an
n-bit two’s complement number. Consequently, we need to perform a sign extension so that the second operand is an (n+ 1)-bit two’s complement number. We define
˜
Y =
2nyn−1+Y ifY is a two’s complement number,
Y otherwise.
This implies a modification of the carry-save adder tree to handle an(n+ 1)-bit input. However, the number of partial products as well as the depth of the tree remain unchanged. Figure 3 describes an operator based on two such multiplier blocks, a subtracter, two fast adders, and multiplexers able to multiply two’s complement numbers and RN-codings. Five control bits allow to select the desired operation (Ta-ble 2).
3.2. Combining Rounding to Nearest and Partial
Product Generation
Theorem 4 (Radix-2kmodified Booth recoding). LetX be a two’s complement number withninteger bits andm fractional bits. Choose two numbersbandksuch thatk≥
2 and bk < m, assume thatxj = xn−1, ∀j ≥ n (sign extension), and consider the radix-2k numberY defined as follows: Y = n/k−1 i=−b −2k−1x ki+k−1+ k−2 j=0 2jx ki+j+xki−1 2ki.
Y is the radix-2k modified Booth recoding of◦n+bk(X). If X is exactly between two representable numbers, then Y =X+ 2−bk−1.
Algorithm 4Combining rounding to nearest and radix-2k RN-coding conversion.
Require: A two’s complement number withninteger bits andm frac-tional bits; two integersbandkwithbk < m;xj=xn−1,∀j≥n (sign extension)
Ensure: A radix-2kRN-codingY such thatY =◦n+bk(X) 1: fori=−bton/k −1do 2: yi← −2k−1xki+k−1+ k−2 j=0 2jxki+j+xki−1; 3: end for Example 5. Let X = (1010.1010001011000)2 =
−5.3642578125. We want to multiply a12-bit two’s com-plement numberW by◦12(X). The standard solution con-sists in rounding X to nearest and in recoding ◦12(X)
to select the partial products. We obtain ◦12(X) = (1010.10100011)2andY = (¯1¯1.¯1¯21¯1)4 =−5.36328125. Theorem 4 allows to skip the first step: applied toX with k = 2andb = 4, Algorithm 4 returnsY = (¯1¯1.¯1¯21¯1)4 =
−5.36328125.
To compute◦13(X), we chooseb = k = 3and obtain Y = (¯13.¯31¯2)8 = −5.36328125. Note thatX is exactly between two representable numbers. We check that X + 2−bk−1=X+ 2−10=−5.36328125.
We can for instance take advantage of Theorem 4 to eval-uate a polynomial with Horner’s rule. Instead of round-ing intermediate results to nearest, we slightly modify the Booth selector of the multiplier so that it implements Al-gorithm 4. Assume that k = 2. In standard multiplier, the recoding cell responsible for the least significant digit is simpler than other cells in the sense that it only requires two bits (we assume thatx−bk−1 = 0). To apply Algorithm 4,
it suffices to add a third input bit to this cell so that it takes
Booth encoder (two’s complement) n 2 bits 4 yn−1 Σ Σ zn−1 X+ X− Z or Y− or Y Y+ x2i−1 x2i+1 x2i 2Ri Ri i PL Mi selector Booth selector Booth
Fast adder Fast adder
Booth encoder (RN−coding) 0 1 Booth encoder (two’s complement) W + − Booth encoder (RN−coding) W W c3 x+2i+1 x− 2i+1 x− 2i x+ 2i 2Ri Ri i PL Mi Sign extension n bits Sign extension n bits . . . . . . X P0 P1
Booth recoding Booth recoding
c4 Carry−save adder/subtracter 0 1 c0 0 1 0 1 c1 c2
Figure 3. A multiplier handling two’s complement numbers and radix-2RN-codings. W,X,Y, and
W aren-bit two’s complement numbers. X+,X−,Y+, andY−aren-bit unsigned numbers.
Table 2. Some operations implemented by the multiplier shown in Figure 3.
Operation c4 c3 c2 c1 c0 P0←XY P1←W Z 0 0 0 0 0 P0←XY+W Z P1←W Z 1 0 0 0 0 P0←XY−W Z P1←W Z 1 1 0 0 0 P0←(X+−X−)Y P1←W Z 0 0 0 0 1 P0←(X+−X−)Y P1←(X+−X−)Z 0 0 0 1 1 P0←(X+−X−)(Y+−Y−) P1←(X+−X−)Y− 1 1 1 1 1
4. Conclusion
We have shown that very slightly modified arithmetic op-erators can efficiently handle both conventional binary rep-resentations and RN-codings. Since RN-codings can also be efficiently “compressed” for storage [7], we conclude that RN-codings are a good candidate for numerical com-putations. In a further study we will design dedicated divi-sion and square root algorithms, as well as an ALU able to handle RN-codings and conventional binary numbers.
References
[1] J.-C. Bajard, J. Duprat, S. Kla, and J.-M. Muller. Some op-erators for on-line radix-2computations. Journal of Parallel and Distributed Computing, 22:336–345, 1994.
[2] J.-L. Beuchat and J.-M. Muller. Multiplication algorithms for radix-2 RN-codings and two’s complement numbers. Technical Report 2005–05, Laboratoire de l’Informatique du Parall´elisme, ´Ecole Normale Sup´erieure de Lyon, 46 All´ee d’Italie, 69364 Lyon Cedex 07, Feb. 2005.
[3] J.-L. Beuchat and J.-M. Muller. RN-codes : algorithmes d’addition, de multiplication et d’´el´evation au carr´e. In
SympA’2005: 10`eme ´edition du SYMPosium en Architectures nouvelles de machines, pages 73–84, Apr. 2005.
[4] A. D. Booth. A signed binary multiplication technique. Quarterly Journal of Mechanics and Applied Mathematics, 4(2):236–240, 1951.
[5] M. Daumas and D. W. Matula. Further reducing the redun-dancy of a notation over a minimally redundant digit set. Jour-nal of VLSI SigJour-nal Processing, 33:7–18, 2003.
[6] G. Goto, A. Inoue, R. Ohe, S. Kashiwakura, S. Mitarai, T. Tsuru, and T. Izawa. A4.1-ns compact54×54-b mul-tiplier utilizing sign-select Booth encoders. IEEE Journal of Solid-State Circuits, 32(11):1676–1682, Nov. 1997.
[7] P. Kornerup and J.-M. Muller. RN-coding of numbers: defini-tion and some properties. InProceedings of the 17th IMACS World Congress on Scientific Computation, Applied Mathe-matics and Simulation, Paris, July 2005.