]> granicus.if.org Git - python/commitdiff
ANSI-fication, remove Py_PROTO, etc.
authorFred Drake <fdrake@acm.org>
Mon, 3 Jul 2000 18:11:56 +0000 (18:11 +0000)
committerFred Drake <fdrake@acm.org>
Mon, 3 Jul 2000 18:11:56 +0000 (18:11 +0000)
Revise math_1(), math_2(), stub-generating macros, and function tables to
use PyArg_ParseTuple() and properly provide the function name for error
message generation.
Fix pow() docstring for MPW 3.1; had said "power" instead of "pow".

Modules/mathmodule.c

index e8ef9909543ae8c9e51fe8af4ea399ed92c408cc..c4ff6650f98e3d34188b5ee7ecec0d33e601171c 100644 (file)
@@ -16,10 +16,10 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 
 #ifndef _MSC_VER
 #ifndef __STDC__
-extern double fmod Py_PROTO((double, double));
-extern double frexp Py_PROTO((double, int *));
-extern double ldexp Py_PROTO((double, int));
-extern double modf Py_PROTO((double, double *));
+extern double fmod (double, double);
+extern double frexp (double, int *);
+extern double ldexp (double, int);
+extern double modf (double, double *);
 #endif /* __STDC__ */
 #endif /* _MSC_VER */
 
@@ -51,12 +51,10 @@ math_error()
 }
 
 static PyObject *
-math_1(args, func)
-       PyObject *args;
-       double (*func) Py_FPROTO((double));
+math_1(PyObject *args, double (*func) (double), char *argsfmt)
 {
        double x;
-       if (!  PyArg_Parse(args, "d", &x))
+       if (!  PyArg_ParseTuple(args, argsfmt, &x))
                return NULL;
        errno = 0;
        PyFPE_START_PROTECT("in math_1", return 0)
@@ -70,12 +68,10 @@ math_1(args, func)
 }
 
 static PyObject *
-math_2(args, func)
-       PyObject *args;
-       double (*func) Py_FPROTO((double, double));
+math_2(PyObject *args, double (*func) (double, double), char *argsfmt)
 {
        double x, y;
-       if (! PyArg_Parse(args, "(dd)", &x, &y))
+       if (! PyArg_ParseTuple(args, argsfmt, &x, &y))
                return NULL;
        errno = 0;
        PyFPE_START_PROTECT("in math_2", return 0)
@@ -88,77 +84,75 @@ math_2(args, func)
                return PyFloat_FromDouble(x);
 }
 
-#define FUNC1(stubname, func, docstring_name, docstring) \
-       static PyObject * stubname(self, args) PyObject *self, *args; { \
-               return math_1(args, func); \
+#define FUNC1(funcname, func, docstring) \
+       static PyObject * math_##funcname(PyObject *self, PyObject *args) { \
+               return math_1(args, func, "d:" #funcname); \
        }\
-        static char docstring_name [] = docstring;
+        static char math_##funcname##_doc [] = docstring;
 
-#define FUNC2(stubname, func, docstring_name, docstring) \
-       static PyObject * stubname(self, args) PyObject *self, *args; { \
-               return math_2(args, func); \
+#define FUNC2(funcname, func, docstring) \
+       static PyObject * math_##funcname(PyObject *self, PyObject *args) { \
+               return math_2(args, func, "dd:" #funcname); \
        }\
-        static char docstring_name [] = docstring;
+        static char math_##funcname##_doc [] = docstring;
 
-FUNC1(math_acos, acos, math_acos_doc,
+FUNC1(acos, acos,
       "acos(x)\n\nReturn the arc cosine of x.")
-FUNC1(math_asin, asin, math_asin_doc,
+FUNC1(asin, asin,
       "asin(x)\n\nReturn the arc sine of x.")
-FUNC1(math_atan, atan, math_atan_doc,
+FUNC1(atan, atan,
       "atan(x)\n\nReturn the arc tangent of x.")
-FUNC2(math_atan2, atan2, math_atan2_doc,
+FUNC2(atan2, atan2,
       "atan2(y, x)\n\nReturn atan(y/x).")
-FUNC1(math_ceil, ceil, math_ceil_doc,
+FUNC1(ceil, ceil,
       "ceil(x)\n\nReturn the ceiling of x as a real.")
-FUNC1(math_cos, cos, math_cos_doc,
+FUNC1(cos, cos,
       "cos(x)\n\nReturn the cosine of x.")
-FUNC1(math_cosh, cosh, math_cosh_doc,
+FUNC1(cosh, cosh,
       "cosh(x)\n\nReturn the hyperbolic cosine of x.")
-FUNC1(math_exp, exp, math_exp_doc,
+FUNC1(exp, exp,
       "exp(x)\n\nReturn e raised to the power of x.")
-FUNC1(math_fabs, fabs, math_fabs_doc,
+FUNC1(fabs, fabs,
       "fabs(x)\n\nReturn the absolute value of the real x.")
-FUNC1(math_floor, floor, math_floor_doc,
+FUNC1(floor, floor,
       "floor(x)\n\nReturn the floor of x as a real.")
-FUNC2(math_fmod, fmod, math_fmod_doc,
+     FUNC2(fmod, fmod,
       "fmod(x,y)\n\nReturn x % y.")
-FUNC2(math_hypot, hypot, math_hypot_doc,
+FUNC2(hypot, hypot,
       "hypot(x,y)\n\nReturn the Euclidean distance, sqrt(x*x + y*y).")
-FUNC1(math_log, log, math_log_doc,
+FUNC1(log, log,
       "log(x)\n\nReturn the natural logarithm of x.")
-FUNC1(math_log10, log10, math_log10_doc,
+FUNC1(log10, log10,
       "log10(x)\n\nReturn the base-10 logarithm of x.")
 #ifdef MPW_3_1 /* This hack is needed for MPW 3.1 but not for 3.2 ... */
-FUNC2(math_pow, power, math_pow_doc,
-      "power(x,y)\n\nReturn x**y.")
+FUNC2(pow, power,
+      "pow(x,y)\n\nReturn x**y.")
 #else
-FUNC2(math_pow, pow, math_pow_doc,
+FUNC2(pow, pow,
       "pow(x,y)\n\nReturn x**y.")
 #endif
 #ifdef HAVE_RINT
-FUNC1(math_rint, rint, math_rint_doc,
+FUNC1(rint, rint,
       "rint(x)\n\nReturn the integer nearest to x as a real.")
 #endif
-FUNC1(math_sin, sin, math_sin_doc,
+FUNC1(sin, sin,
       "sin(x)\n\nReturn the sine of x.")
-FUNC1(math_sinh, sinh, math_sinh_doc,
+FUNC1(sinh, sinh,
       "sinh(x)\n\nReturn the hyperbolic sine of x.")
-FUNC1(math_sqrt, sqrt, math_sqrt_doc,
+FUNC1(sqrt, sqrt,
       "sqrt(x)\n\nReturn the square root of x.")
-FUNC1(math_tan, tan, math_tan_doc,
+FUNC1(tan, tan,
       "tan(x)\n\nReturn the tangent of x.")
-FUNC1(math_tanh, tanh, math_tanh_doc,
+FUNC1(tanh, tanh,
       "tanh(x)\n\nReturn the hyperbolic tangent of x.")
 
 
 static PyObject *
-math_frexp(self, args)
-       PyObject *self;
-       PyObject *args;
+math_frexp(PyObject *self, PyObject *args)
 {
        double x;
        int i;
-       if (! PyArg_Parse(args, "d", &x))
+       if (! PyArg_ParseTuple(args, "d:frexp", &x))
                return NULL;
        errno = 0;
        x = frexp(x, &i);
@@ -177,13 +171,11 @@ If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.";
 
 
 static PyObject *
-math_ldexp(self, args)
-       PyObject *self;
-       PyObject *args;
+math_ldexp(PyObject *self, PyObject *args)
 {
        double x;
        int exp;
-       if (! PyArg_Parse(args, "(di)", &x, &exp))
+       if (! PyArg_ParseTuple(args, "di:ldexp", &x, &exp))
                return NULL;
        errno = 0;
        PyFPE_START_PROTECT("ldexp", return 0)
@@ -203,20 +195,18 @@ Return x * (2**i).";
 
 
 static PyObject *
-math_modf(self, args)
-       PyObject *self;
-       PyObject *args;
+math_modf(PyObject *self, PyObject *args)
 {
        double x, y;
-       if (! PyArg_Parse(args, "d", &x))
+       if (! PyArg_ParseTuple(args, "d:modf", &x))
                return NULL;
        errno = 0;
 #ifdef MPW /* MPW C modf expects pointer to extended as second argument */
-{
-       extended e;
-       x = modf(x, &e);
-       y = e;
-}
+        {
+               extended e;
+               x = modf(x, &e);
+               y = e;
+        }
 #else
        x = modf(x, &y);
 #endif
@@ -234,32 +224,32 @@ of x.  The integer part is returned as a real.";
 
 
 static PyMethodDef math_methods[] = {
-       {"acos",        math_acos,      0,      math_acos_doc},
-       {"asin",        math_asin,      0,      math_asin_doc},
-       {"atan",        math_atan,      0,      math_atan_doc},
-       {"atan2",       math_atan2,     0,      math_atan2_doc},
-       {"ceil",        math_ceil,      0,      math_ceil_doc},
-       {"cos",         math_cos,       0,      math_cos_doc},
-       {"cosh",        math_cosh,      0,      math_cosh_doc},
-       {"exp",         math_exp,       0,      math_exp_doc},
-       {"fabs",        math_fabs,      0,      math_fabs_doc},
-       {"floor",       math_floor,     0,      math_floor_doc},
-       {"fmod",        math_fmod,      0,      math_fmod_doc},
-       {"frexp",       math_frexp,     0,      math_frexp_doc},
-       {"hypot",       math_hypot,     0,      math_hypot_doc},
-       {"ldexp",       math_ldexp,     0,      math_ldexp_doc},
-       {"log",         math_log,       0,      math_log_doc},
-       {"log10",       math_log10,     0,      math_log10_doc},
-       {"modf",        math_modf,      0,      math_modf_doc},
-       {"pow",         math_pow,       0,      math_pow_doc},
+       {"acos",        math_acos,      METH_VARARGS,   math_acos_doc},
+       {"asin",        math_asin,      METH_VARARGS,   math_asin_doc},
+       {"atan",        math_atan,      METH_VARARGS,   math_atan_doc},
+       {"atan2",       math_atan2,     METH_VARARGS,   math_atan2_doc},
+       {"ceil",        math_ceil,      METH_VARARGS,   math_ceil_doc},
+       {"cos",         math_cos,       METH_VARARGS,   math_cos_doc},
+       {"cosh",        math_cosh,      METH_VARARGS,   math_cosh_doc},
+       {"exp",         math_exp,       METH_VARARGS,   math_exp_doc},
+       {"fabs",        math_fabs,      METH_VARARGS,   math_fabs_doc},
+       {"floor",       math_floor,     METH_VARARGS,   math_floor_doc},
+       {"fmod",        math_fmod,      METH_VARARGS,   math_fmod_doc},
+       {"frexp",       math_frexp,     METH_VARARGS,   math_frexp_doc},
+       {"hypot",       math_hypot,     METH_VARARGS,   math_hypot_doc},
+       {"ldexp",       math_ldexp,     METH_VARARGS,   math_ldexp_doc},
+       {"log",         math_log,       METH_VARARGS,   math_log_doc},
+       {"log10",       math_log10,     METH_VARARGS,   math_log10_doc},
+       {"modf",        math_modf,      METH_VARARGS,   math_modf_doc},
+       {"pow",         math_pow,       METH_VARARGS,   math_pow_doc},
 #ifdef HAVE_RINT
-       {"rint",        math_rint,      0,      math_rint_doc},
+       {"rint",        math_rint,      METH_VARARGS,   math_rint_doc},
 #endif
-       {"sin",         math_sin,       0,      math_sin_doc},
-       {"sinh",        math_sinh,      0,      math_sinh_doc},
-       {"sqrt",        math_sqrt,      0,      math_sqrt_doc},
-       {"tan",         math_tan,       0,      math_tan_doc},
-       {"tanh",        math_tanh,      0,      math_tanh_doc},
+       {"sin",         math_sin,       METH_VARARGS,   math_sin_doc},
+       {"sinh",        math_sinh,      METH_VARARGS,   math_sinh_doc},
+       {"sqrt",        math_sqrt,      METH_VARARGS,   math_sqrt_doc},
+       {"tan",         math_tan,       METH_VARARGS,   math_tan_doc},
+       {"tanh",        math_tanh,      METH_VARARGS,   math_tanh_doc},
        {NULL,          NULL}           /* sentinel */
 };