comparison bn_fast_s_mp_mul_digs.c @ 386:97db060d0ef5 libtommath-orig libtommath-0.40

Update to LibTomMath 0.40
author Matt Johnston <matt@ucc.asn.au>
date Thu, 11 Jan 2007 03:11:15 +0000
parents 91fbc376f010
children
comparison
equal deleted inserted replaced
282:91fbc376f010 386:97db060d0ef5
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 $ */