print '\n', '-=' * 30
print "Running %s.test03_Signs..." % \
self.__class__.__name__
- wp = rpm.mpw(10)
+ wp = rpm.mpw(11)
wm = -wp
wpp = wp + 1
wmm = -wpp
- zp = long(10)
+ zp = long(11)
zm = -zp
zpp = zp + 1
zmm = -zpp
print "div -+:\t", (wm/wp), "\t", (zm/zp)
print "div +-:\t", (wp/wm), "\t", (zp/zm)
print "div ++:\t", (wp/wp), "\t", (zp/zp)
+
print "pow --:\t", (wm**wm), "\t", (zm**zm)
print "pow -+:\t", (wm**wp), "\t", (zm**zp)
print "pow +-:\t", (wp**wm), "\t", (zp**zm)
mpnzero(&zn);
if (msize == 0 || (msize == 1 && *mdata == 0))
mpnsetw(&zn, 1);
- else if (m->ob_size < 0)
+ else if (mpz(xsize, xdata) || m->ob_size < 0)
mpnsetw(&zn, 0);
- else
+ else {
+ zsign = (x->ob_size > 0 || mpeven(msize, mdata)) ? 1 : -1;
mpnpow_w(&zn, xsize, xdata, msize, mdata);
+ }
z = mpw_FromMPW(zn.size, zn.data, 1);
mpnfree(&zn);
if (zsign < 0)