projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
modexp: Implement simple mp_modexp function.
[u/mdw/catacomb]
/
mpx.c
diff --git
a/mpx.c
b/mpx.c
index
e122760
..
01264b1
100644
(file)
--- a/
mpx.c
+++ b/
mpx.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id
: mpx.c,v 1.20 2004/04/08 01:36:15 mdw Exp
$
+ * $Id$
*
* Low-level multiprecision arithmetic
*
*
* Low-level multiprecision arithmetic
*
@@
-462,11
+462,11
@@
void mpx_lsl(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, size_t n)
while (avl > av) {
mpw t = *--avl;
while (avl > av) {
mpw t = *--avl;
- *--dvl =
(t >> nr) | w
;
+ *--dvl =
MPW((t >> nr) | w)
;
w = t << nb;
}
w = t << nb;
}
- *--dvl =
w
;
+ *--dvl =
MPW(w)
;
MPX_ZERO(dv, dvl);
}
MPX_ZERO(dv, dvl);
}
@@
-560,11
+560,11
@@
void mpx_lslc(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, size_t n)
while (avl > av) {
mpw t = *--avl;
while (avl > av) {
mpw t = *--avl;
- *--dvl =
(t >> nr) | w
;
+ *--dvl =
MPW((t >> nr) | w)
;
w = t << nb;
}
w = t << nb;
}
- *--dvl =
(MPW_MAX >> nr) | w
;
+ *--dvl =
MPW((MPW_MAX >> nr) | w)
;
MPX_ONE(dv, dvl);
}
MPX_ONE(dv, dvl);
}
@@
-919,7
+919,7
@@
void mpx_usubnlsl(mpw *dv, mpw *dvl, mpw a, unsigned o)
a <<= o;
if (dv < dvl) {
a <<= o;
if (dv < dvl) {
- mpd x = (mpd)*dv -
(mpd)a
;
+ mpd x = (mpd)*dv -
MPW(a)
;
*dv++ = MPW(x);
if (x >> MPW_BITS)
b++;
*dv++ = MPW(x);
if (x >> MPW_BITS)
b++;
@@
-995,9
+995,7
@@
void mpx_umul(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl,
*/
void mpx_umuln(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, mpw m)
*/
void mpx_umuln(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, mpw m)
-{
- MPX_UMULN(dv, dvl, av, avl, m);
-}
+ { MPX_UMULN(dv, dvl, av, avl, m); }
/* --- @mpx_umlan@ --- *
*
/* --- @mpx_umlan@ --- *
*
@@
-1012,9
+1010,7
@@
void mpx_umuln(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, mpw m)
*/
void mpx_umlan(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, mpw m)
*/
void mpx_umlan(mpw *dv, mpw *dvl, const mpw *av, const mpw *avl, mpw m)
-{
- MPX_UMLAN(dv, dvl, av, avl, m);
-}
+ { MPX_UMLAN(dv, dvl, av, avl, m); }
/* --- @mpx_usqr@ --- *
*
/* --- @mpx_usqr@ --- *
*
@@
-1120,7
+1116,7
@@
void mpx_udiv(mpw *qv, mpw *qvl, mpw *rv, mpw *rvl,
unsigned b;
d = dvl[-1];
unsigned b;
d = dvl[-1];
- for (b = MPW_
BITS /
2; b; b >>= 1) {
+ for (b = MPW_
P
2; b; b >>= 1) {
if (d <= (MPW_MAX >> b)) {
d <<= b;
norm += b;
if (d <= (MPW_MAX >> b)) {
d <<= b;
norm += b;
@@
-1421,7
+1417,7
@@
static int loadstore(dstr *v)
if (!ok)
dumpbits("input data", v->buf, v->len);
if (!ok)
dumpbits("input data", v->buf, v->len);
- free(m);
+
x
free(m);
dstr_destroy(&d);
return (ok);
}
dstr_destroy(&d);
return (ok);
}
@@
-1459,7
+1455,7
@@
static int twocl(dstr *v)
dumpbits("neg", v[1].buf, v[1].len);
}
dumpbits("neg", v[1].buf, v[1].len);
}
- free(m);
+
x
free(m);
dstr_destroy(&d);
return (ok);
dstr_destroy(&d);
return (ok);
@@
-1498,7
+1494,7
@@
static int twocb(dstr *v)
dumpbits("neg", v[1].buf, v[1].len);
}
dumpbits("neg", v[1].buf, v[1].len);
}
- free(m);
+
x
free(m);
dstr_destroy(&d);
return (ok);
dstr_destroy(&d);
return (ok);
@@
-1525,7
+1521,7
@@
static int lsl(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(c);
free(d);
+
xfree(a); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1550,7
+1546,7
@@
static int lslc(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(c);
free(d);
+
xfree(a); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1575,7
+1571,7
@@
static int lsr(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(c);
free(d);
+
xfree(a); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1602,7
+1598,7
@@
static int uadd(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(b); free(c);
free(d);
+
xfree(a); xfree(b); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1629,7
+1625,7
@@
static int usub(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(b); free(c);
free(d);
+
xfree(a); xfree(b); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1656,7
+1652,7
@@
static int umul(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(b); free(c);
free(d);
+
xfree(a); xfree(b); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1680,7
+1676,7
@@
static int usqr(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(c);
free(d);
+
xfree(a); xfree(c); x
free(d);
return (ok);
}
return (ok);
}
@@
-1713,7
+1709,7
@@
static int udiv(dstr *v)
ok = 0;
}
ok = 0;
}
-
free(a); free(b); free(r); free(q); free(s);
free(qq);
+
xfree(a); xfree(b); xfree(r); xfree(q); xfree(s); x
free(qq);
return (ok);
}
return (ok);
}