static PyObject * GMPy_MPZ_Function_NumDigits(PyObject *self, PyObject *args) { long base = 10; Py_ssize_t argc; MPZ_Object *temp; PyObject *result; argc = PyTuple_GET_SIZE(args); if (argc == 0 || argc > 2) { TYPE_ERROR("num_digits() requires 'mpz',['int'] arguments"); return NULL; } if (argc == 2) { base = PyIntOrLong_AsLong(PyTuple_GET_ITEM(args, 1)); if (base == -1 && PyErr_Occurred()) { return NULL; } } if ((base < 2) || (base > 62)) { VALUE_ERROR("base must be in the interval [2, 62]"); return NULL; } if (!(temp = GMPy_MPZ_From_Integer(PyTuple_GET_ITEM(args, 0), NULL))) { return NULL; } result = PyIntOrLong_FromSize_t(mpz_sizeinbase(temp->z, (int)base)); Py_DECREF((PyObject*)temp); return result; }
static PyObject * Pympq_sizeof(PyObject *self, PyObject *other) { return PyIntOrLong_FromSize_t(sizeof(PympqObject) + \ (mpq_numref(Pympq_AS_MPQ(self))->_mp_alloc * sizeof(mp_limb_t)) + \ (mpq_denref(Pympq_AS_MPQ(self))->_mp_alloc * sizeof(mp_limb_t))); }
static PyObject * GMPy_MPC_SizeOf_Method(PyObject *self, PyObject *other) { return PyIntOrLong_FromSize_t(sizeof(MPC_Object) + \ (((mpc_realref(MPC(self))->_mpfr_prec + mp_bits_per_limb - 1) / \ mp_bits_per_limb) * sizeof(mp_limb_t)) + \ (((mpc_imagref(MPC(self))->_mpfr_prec + mp_bits_per_limb - 1) / \ mp_bits_per_limb) * sizeof(mp_limb_t))); }
static PyObject * GMPy_MPZ_Method_NumDigits(PyObject *self, PyObject *args) { long base = 10; PyObject *result; if (PyTuple_GET_SIZE(args) == 1) { base = PyIntOrLong_AsLong(PyTuple_GET_ITEM(args, 0)); if (base == -1 && PyErr_Occurred()) { return NULL; } } if ((base < 2) || (base > 62)) { VALUE_ERROR("base must be in the interval [2, 62]"); return NULL; } result = PyIntOrLong_FromSize_t(mpz_sizeinbase(MPZ(self), (int)base)); return result; }