Anda di halaman 1dari 9

ASSIGNMENT-2

18MVD0071
BARRETT’S ALGORITHM:
Step 1.

Integer A = 2000; 0< A< …. 0 < 2000 < 4096


Integer B =40;
β = 64; …. 32 < 40 < 64

Let us Precompute the I


I← =

= 102

Step 2.
Q←* ⁄ ] where A = …… with 0 < β;

A= = *(31 * 64) + 16+ ……

= 31,

Q←[ ⁄ ]

Q ← 49

Step 3.

R ← A – Q*B
← 2000 – 49*40
= 40

Step 4.

while R B do
40 40 ……condition holds true

Step 5.
R-B = 40 – 40
=0
R B; 0 ≥ B ……Condition false

Step 6.
Return (Q, R)

Output → (Q, R) = (50,0)

MONTGOMERY ALGORITHM:
Inputs: C=392 586 729 314 541 N=762 422 369 β==1000 n=3
µ=-N-1mod β
GCD(1000,369)
1000=369(2)+262
369=262(1)+107
262=107(2)+48
107=48(2)+11
48=11(4)+4
11=4(2)+3
4=3(1)+1
1=4+3(-1)=4+(11+4(-2))(-1)=11(-1)+4(3)
=15(3)+11(-4)
=26(-4)+15(7)
=145(7)+26(-39)
=171(-39)+145(46)
1=1000(100)+369(-271)

Therefore, µ=271
1: for i from 0 to n−1 do
i varies from 0 to 2
2: qi ← µci mod β
3: C ← C + qiNβ
i=0
q0=(271*541)mod1000=611
762 422 369*541=1 644 846 063 475
C=393 052 569 382 000
i=1
q1=(271*314)mod1000=094
762 422 369*094=071 667 702 686 000
C=464 720 272 068 000

i=2
q2=559
762 422 369*559=426 194 104 271 000 000
C=426 658 824 543 068 000
4: R ← Cβ−n
R=426 658 824
5: if R ≥ βn then return R−N else return R.
R=426 658 824.

Fast REDC (Sub Quadratic Montgomery Reduction)

Input: - 0≤ C <β2,
N < β,
µ ← (-1) * (1 / (N mod β))
Output: - 0≤ R <β such that R = C/ (β mod N)

C= 681 583 …… 0 ≤ C < β2


N=320 …… N < β
For N = 320, n=1
Consider base β = 1000
µ → precalculated as 263

Step 1.
Q ← µC mod β
Q ← 263(681 583) mod β
Q ←263(681 583) mod (1000)
Q ←329
Step 2.
R ← (C + Q* N) / β
R ← (618 583 + (329) * (320)) / (1000)
R ← 786 863 / 1000
R ← 786

Step 3.

If R≥β
then R-N
else
return R
R≥ β → false
Return R

R → 786

McLAUGHLIN ALGORITHM:
Inputs:A=95 B=50 N=70 n=7
µ=47
1: m ← ABµ mod (2n −1)
m=(95*50*47)mod127=111
2: S ← (AB + mN) mod (2n + 1)
S=(4750+3290)mod129=41
3: w ←−S mod (2n + 1)
w=-41mod129=88
4: if 2|w then s ← w/2 else s ← (w + 2n + 1)/2
w is odd. So, s=44.
5: if AB + mN = s mod 2 then t ← s else t ← s + 2n + 1
t=41+129=170
6: if t < N then return t else return t−N.
t=170-70=100

FLOATING POINT ADDITION


A=5.30 B=3.05
A= 1.0101100110*22
B= 1.1000011001*21

1.0101100110*22
+ 0.1100001100*22
10.0001011000*22
1.0000101100*23
Bias=15
e1=15+3=18
E=10010
0 10010 0000101100
Sign Exponent Mantissa

FLOATING POINT SUBTRACTION


A=5.30 B=3.05
1.0101100110*22
-0.1100001100*22
0.1001000000*22
1.0010000000*21
Bias=1+15=16
0 10000 0010000000
Sign Exponent Mantissa

FLOATING POINT MULTIPLICATION


A=5.30 B=3.05

A= 1.0101100110*22
B= 1.1000011001*21

1.0101100110*22
1.1000011001*21
10101001100
000000000000
0000000000000
10101001100000
101010011000000
0000000000000000
00000000000000000
000000000000000000
0000000000000000000
10101001100000000000
101010011000000000000
1111111101011111110000
10.000001001100011011000
1.0000001001*24
Bias=15+4=19
Sign bit=0^0=0
E=10011
0 10011 0000001001
Sign Exponent Mantissa

Anda mungkin juga menyukai