### diff libtommath/bn_s_mp_mul_digs.c @ 1436:60fc6476e044

Update to libtommath v1.0
author Matt Johnston Sat, 24 Jun 2017 22:37:14 +0800 5ff8218bcee9 8bba51a55704
line wrap: on
line diff
```--- a/libtommath/bn_s_mp_mul_digs.c	Sat Jun 24 17:50:50 2017 +0800
+++ b/libtommath/bn_s_mp_mul_digs.c	Sat Jun 24 22:37:14 2017 +0800
@@ -1,4 +1,4 @@
-#include <tommath.h>
+#include <tommath_private.h>
#ifdef BN_S_MP_MUL_DIGS_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis
*
@@ -12,7 +12,7 @@
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, [email protected], http://math.libtomcrypt.com
+ * Tom St Denis, [email protected], http://libtom.org
*/

/* multiplies |a| * |b| and only computes upto digs digits of result
@@ -29,8 +29,8 @@

/* can we use the fast multiplier? */
if (((digs) < MP_WARRAY) &&
-      MIN (a->used, b->used) <
-          (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) {
+      (MIN (a->used, b->used) <
+          (1 << ((CHAR_BIT * sizeof(mp_word)) - (2 * DIGIT_BIT))))) {
return fast_s_mp_mul_digs (a, b, c, digs);
}

@@ -61,9 +61,9 @@
/* compute the columns of the output and propagate the carry */
for (iy = 0; iy < pb; iy++) {
/* compute the column as a mp_word */
-      r       = ((mp_word)*tmpt) +
-                ((mp_word)tmpx) * ((mp_word)*tmpy++) +
-                ((mp_word) u);
+      r       = (mp_word)*tmpt +
+                ((mp_word)tmpx * (mp_word)*tmpy++) +
+                (mp_word)u;

/* the new column is the lower part of the result */
*tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK));
@@ -72,7 +72,7 @@
u       = (mp_digit) (r >> ((mp_word) DIGIT_BIT));
}
/* set carry if it is placed below digs */
-    if (ix + iy < digs) {
+    if ((ix + iy) < digs) {
*tmpt = u;
}
}
@@ -85,6 +85,6 @@
}
#endif

-/* \$Source: /cvs/libtom/libtommath/bn_s_mp_mul_digs.c,v \$ */
-/* \$Revision: 1.3 \$ */
-/* \$Date: 2006/03/31 14:18:44 \$ */
+/* \$Source\$ */
+/* \$Revision\$ */
+/* \$Date\$ */```