summaryrefslogtreecommitdiffstats
path: root/libtommath/bn_mp_div_d.c
diff options
context:
space:
mode:
authorgahr <gahr@gahr.ch>2016-03-11 17:13:38 (GMT)
committergahr <gahr@gahr.ch>2016-03-11 17:13:38 (GMT)
commit48a3d3e4dca22efb2981fd8eb9b505b19438a704 (patch)
treef0acc29307113ad908a79330d8b8c924c8ad79ae /libtommath/bn_mp_div_d.c
parent5137357e74c887368ad68c3cb09998b154e68d4f (diff)
downloadtcl-48a3d3e4dca22efb2981fd8eb9b505b19438a704.zip
tcl-48a3d3e4dca22efb2981fd8eb9b505b19438a704.tar.gz
tcl-48a3d3e4dca22efb2981fd8eb9b505b19438a704.tar.bz2
[e6f27aa56f] Initial import of libtommath-1.0
This commit brings in libtommath-1.0, as of tag v1.0 of the upstream repository at https://github.com/libtom/libtommath. Only the top-level directory has been imported: the demo, etc, logs, mtest, pics, pre_gen, and tombc directories have been removed from our repo. The stubs tables have been regenerated to accomodate for the new function: mp_expt_d_ex(mp_int *a, mp_digit b, mp_int *c, int fast); See https://github.com/libtom/libtommath/commit/e9b1837 for details. Only the unix build system has been modified for now. Windows and Mac OSX will come later.
Diffstat (limited to 'libtommath/bn_mp_div_d.c')
-rw-r--r--libtommath/bn_mp_div_d.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/libtommath/bn_mp_div_d.c b/libtommath/bn_mp_div_d.c
index af18d0a..4df1d36 100644
--- a/libtommath/bn_mp_div_d.c
+++ b/libtommath/bn_mp_div_d.c
@@ -1,4 +1,4 @@
-#include <tommath.h>
+#include <tommath_private.h>
#ifdef BN_MP_DIV_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis
*
@@ -12,18 +12,19 @@
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.com
+ * Tom St Denis, tstdenis82@gmail.com, http://libtom.org
*/
static int s_is_power_of_two(mp_digit b, int *p)
{
int x;
- /* quick out - if (b & (b-1)) isn't zero, b isn't a power of two */
- if ((b==0) || (b & (b-1))) {
- return 0;
+ /* fast return if no power of two */
+ if ((b == 0) || ((b & (b-1)) != 0)) {
+ return 0;
}
- for (x = 1; x < DIGIT_BIT; x++) {
+
+ for (x = 0; x < DIGIT_BIT; x++) {
if (b == (((mp_digit)1)<<x)) {
*p = x;
return 1;
@@ -46,7 +47,7 @@ int mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d)
}
/* quick outs */
- if (b == 1 || mp_iszero(a) == 1) {
+ if ((b == 1) || (mp_iszero(a) == MP_YES)) {
if (d != NULL) {
*d = 0;
}
@@ -108,3 +109,7 @@ int mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d)
}
#endif
+
+/* $Source$ */
+/* $Revision$ */
+/* $Date$ */