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 $ */