Mercurial > dropbear
comparison libtommath/bn_fast_s_mp_mul_digs.c @ 398:59c7938af2bd
merge of '1250b8af44b62d8f4fe0f8d9fc7e7a1cc34e7e1c'
and '7f8670ac3bb975f40967f3979d09d2199b7e90c8'
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 03 Feb 2007 08:20:30 +0000 |
parents | 5ff8218bcee9 |
children | 60fc6476e044 |
comparison
equal
deleted
inserted
replaced
396:e7c1a77d2921 | 398:59c7938af2bd |
---|---|
10 * additional optimizations in place. | 10 * additional optimizations in place. |
11 * | 11 * |
12 * The library is free for all purposes without any express | 12 * The library is free for all purposes without any express |
13 * guarantee it works. | 13 * guarantee it works. |
14 * | 14 * |
15 * Tom St Denis, [email protected], http://math.libtomcrypt.org | 15 * Tom St Denis, [email protected], http://math.libtomcrypt.com |
16 */ | 16 */ |
17 | 17 |
18 /* Fast (comba) multiplier | 18 /* Fast (comba) multiplier |
19 * | 19 * |
20 * This is the fast column-array [comba] multiplier. It is | 20 * This is the fast column-array [comba] multiplier. It is |
68 iy = MIN(a->used-tx, ty+1); | 68 iy = MIN(a->used-tx, ty+1); |
69 | 69 |
70 /* execute loop */ | 70 /* execute loop */ |
71 for (iz = 0; iz < iy; ++iz) { | 71 for (iz = 0; iz < iy; ++iz) { |
72 _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); | 72 _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); |
73 | |
73 } | 74 } |
74 | 75 |
75 /* store term */ | 76 /* store term */ |
76 W[ix] = ((mp_digit)_W) & MP_MASK; | 77 W[ix] = ((mp_digit)_W) & MP_MASK; |
77 | 78 |
78 /* make next carry */ | 79 /* make next carry */ |
79 _W = _W >> ((mp_word)DIGIT_BIT); | 80 _W = _W >> ((mp_word)DIGIT_BIT); |
80 } | 81 } |
81 | |
82 /* store final carry */ | |
83 W[ix] = (mp_digit)(_W & MP_MASK); | |
84 | 82 |
85 /* setup dest */ | 83 /* setup dest */ |
86 olduse = c->used; | 84 olduse = c->used; |
87 c->used = pa; | 85 c->used = pa; |
88 | 86 |
101 } | 99 } |
102 mp_clamp (c); | 100 mp_clamp (c); |
103 return MP_OKAY; | 101 return MP_OKAY; |
104 } | 102 } |
105 #endif | 103 #endif |
104 | |
105 /* $Source: /cvs/libtom/libtommath/bn_fast_s_mp_mul_digs.c,v $ */ | |
106 /* $Revision: 1.7 $ */ | |
107 /* $Date: 2006/03/31 14:18:44 $ */ |