From 8e0c9968731ac7f1d94bddff348544c70833b52b Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Sun, 11 Jul 2010 17:38:24 +0000 Subject: Issue #9165: Add math.isfinite and cmath.isfinite. --- Modules/cmathmodule.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Modules/cmathmodule.c') diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c index 2af2e53b88..986b241e29 100644 --- a/Modules/cmathmodule.c +++ b/Modules/cmathmodule.c @@ -1023,6 +1023,19 @@ PyDoc_STRVAR(cmath_rect_doc, "rect(r, phi) -> z: complex\n\n\ Convert from polar coordinates to rectangular coordinates."); +static PyObject * +cmath_isfinite(PyObject *self, PyObject *args) +{ + Py_complex z; + if (!PyArg_ParseTuple(args, "D:isfinite", &z)) + return NULL; + return PyBool_FromLong(Py_IS_FINITE(z.real) && Py_IS_FINITE(z.imag)); +} + +PyDoc_STRVAR(cmath_isfinite_doc, +"isfinite(z) -> bool\n\ +Return True if both the real and imaginary parts of z are finite, else False."); + static PyObject * cmath_isnan(PyObject *self, PyObject *args) { @@ -1065,6 +1078,7 @@ static PyMethodDef cmath_methods[] = { {"cos", cmath_cos, METH_VARARGS, c_cos_doc}, {"cosh", cmath_cosh, METH_VARARGS, c_cosh_doc}, {"exp", cmath_exp, METH_VARARGS, c_exp_doc}, + {"isfinite", cmath_isfinite, METH_VARARGS, cmath_isfinite_doc}, {"isinf", cmath_isinf, METH_VARARGS, cmath_isinf_doc}, {"isnan", cmath_isnan, METH_VARARGS, cmath_isnan_doc}, {"log", cmath_log, METH_VARARGS, cmath_log_doc}, -- cgit v1.2.1