/* -*-c-*-
- *
- * $Id$
*
* Multiprecision arithmetic
*
* (c) 2004 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of the Python interface to Catacomb.
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* Catacomb/Python is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with Catacomb/Python; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
return (PyFloat_FromDouble(f));
}
-#define COERCE(pre, PRE) \
+#define COERCE(pre, PRE) \
static int pre##_pycoerce(PyObject **x, PyObject **y) \
{ \
mp *z; \
PyObject *z = 0;
if (!PyArg_ParseTuple(arg, "O&:jacobi", convmp, &y)) goto end;
- if (MP_NEGP(MP_X(me)) || MP_EVENP(MP_X(me)))
- VALERR("must be positive and odd");
z = PyInt_FromLong(mp_jacobi(y, MP_X(me)));
end:
if (y) MP_DROP(y);
}
BITOP(mp, setbit, 2c);
BITOP(mp, clearbit, 2c);
-BITOP(gf, setbit, );
+BITOP(gf, setbit, );
BITOP(gf, clearbit, );
#undef BITOP
static PyObject *mm_mexpr(PyObject *me, void *v, int n)
{ return mp_pywrap(mpmont_mexpr(MPMONT_PY(me), MP_NEW, v, n)); }
-
+
static void mp_mexp_drop(void *p)
{
mp_expfactor *f = p;
static PyObject *mm_mexp(PyObject *me, void *v, int n)
{ return mp_pywrap(mpmont_mexp(MPMONT_PY(me), MP_NEW, v, n)); }
-
+
static PyObject *mmmeth_mexp(PyObject *me, PyObject *arg)
{
return mexp_common(me, arg, sizeof(mp_expfactor),
static PyObject *mb_mexp(PyObject *me, void *v, int n)
{ return mp_pywrap(mpbarrett_mexp(MPBARRETT_PY(me), MP_NEW, v, n)); }
-
+
static PyObject *mbmeth_mexp(PyObject *me, PyObject *arg)
{
return mexp_common(me, arg, sizeof(mp_expfactor),
METH (gcdx,
"X.gcdx(Y) -> (gcd(X, Y), U, V) with X U + Y V = gcd(X, Y)")
METH (modinv, "X.modinv(Y) -> multiplicative inverse of Y mod X")
- METH (irreduciblep, "X.irreduciblep() -> true/false")
+ METH (irreduciblep, "X.irreduciblep() -> true/false")
#undef METHNAME
#define METHNAME(func) mpmeth_##func
KWMETH(tostring, "X.tostring(radix = 10) -> STR")
static PyMethodDef methods[] = {
#define METHNAME(func) meth_##func
- KWMETH(_MP_fromstring, "\
+ KWMETH(_MP_fromstring, "\
fromstring(STR, radix = 0) -> (X, REST)\n\
\n\
Parse STR as a large integer, according to radix. If radix is zero,\n\
read a prefix from STR to decide radix: allow `0' for octal, `0x' for hex\n\
or `R_' for other radix R.")
- KWMETH(_GF_fromstring, "\
+ KWMETH(_GF_fromstring, "\
fromstring(STR, radix = 0) -> (X, REST)\n\
\n\
Parse STR as a binary polynomial, according to radix. If radix is zero,\n\