17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_acos__doc__, 67db96d56Sopenharmony_ci"acos($module, z, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Return the arc cosine of z."); 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci#define CMATH_ACOS_METHODDEF \ 127db96d56Sopenharmony_ci {"acos", (PyCFunction)cmath_acos, METH_O, cmath_acos__doc__}, 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_cistatic Py_complex 157db96d56Sopenharmony_cicmath_acos_impl(PyObject *module, Py_complex z); 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_cistatic PyObject * 187db96d56Sopenharmony_cicmath_acos(PyObject *module, PyObject *arg) 197db96d56Sopenharmony_ci{ 207db96d56Sopenharmony_ci PyObject *return_value = NULL; 217db96d56Sopenharmony_ci Py_complex z; 227db96d56Sopenharmony_ci Py_complex _return_value; 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 257db96d56Sopenharmony_ci if (PyErr_Occurred()) { 267db96d56Sopenharmony_ci goto exit; 277db96d56Sopenharmony_ci } 287db96d56Sopenharmony_ci /* modifications for z */ 297db96d56Sopenharmony_ci errno = 0; 307db96d56Sopenharmony_ci _return_value = cmath_acos_impl(module, z); 317db96d56Sopenharmony_ci if (errno == EDOM) { 327db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 337db96d56Sopenharmony_ci goto exit; 347db96d56Sopenharmony_ci } 357db96d56Sopenharmony_ci else if (errno == ERANGE) { 367db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 377db96d56Sopenharmony_ci goto exit; 387db96d56Sopenharmony_ci } 397db96d56Sopenharmony_ci else { 407db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 417db96d56Sopenharmony_ci } 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ciexit: 447db96d56Sopenharmony_ci return return_value; 457db96d56Sopenharmony_ci} 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_acosh__doc__, 487db96d56Sopenharmony_ci"acosh($module, z, /)\n" 497db96d56Sopenharmony_ci"--\n" 507db96d56Sopenharmony_ci"\n" 517db96d56Sopenharmony_ci"Return the inverse hyperbolic cosine of z."); 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci#define CMATH_ACOSH_METHODDEF \ 547db96d56Sopenharmony_ci {"acosh", (PyCFunction)cmath_acosh, METH_O, cmath_acosh__doc__}, 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_cistatic Py_complex 577db96d56Sopenharmony_cicmath_acosh_impl(PyObject *module, Py_complex z); 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_cistatic PyObject * 607db96d56Sopenharmony_cicmath_acosh(PyObject *module, PyObject *arg) 617db96d56Sopenharmony_ci{ 627db96d56Sopenharmony_ci PyObject *return_value = NULL; 637db96d56Sopenharmony_ci Py_complex z; 647db96d56Sopenharmony_ci Py_complex _return_value; 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 677db96d56Sopenharmony_ci if (PyErr_Occurred()) { 687db96d56Sopenharmony_ci goto exit; 697db96d56Sopenharmony_ci } 707db96d56Sopenharmony_ci /* modifications for z */ 717db96d56Sopenharmony_ci errno = 0; 727db96d56Sopenharmony_ci _return_value = cmath_acosh_impl(module, z); 737db96d56Sopenharmony_ci if (errno == EDOM) { 747db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 757db96d56Sopenharmony_ci goto exit; 767db96d56Sopenharmony_ci } 777db96d56Sopenharmony_ci else if (errno == ERANGE) { 787db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 797db96d56Sopenharmony_ci goto exit; 807db96d56Sopenharmony_ci } 817db96d56Sopenharmony_ci else { 827db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 837db96d56Sopenharmony_ci } 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_ciexit: 867db96d56Sopenharmony_ci return return_value; 877db96d56Sopenharmony_ci} 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_asin__doc__, 907db96d56Sopenharmony_ci"asin($module, z, /)\n" 917db96d56Sopenharmony_ci"--\n" 927db96d56Sopenharmony_ci"\n" 937db96d56Sopenharmony_ci"Return the arc sine of z."); 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci#define CMATH_ASIN_METHODDEF \ 967db96d56Sopenharmony_ci {"asin", (PyCFunction)cmath_asin, METH_O, cmath_asin__doc__}, 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_cistatic Py_complex 997db96d56Sopenharmony_cicmath_asin_impl(PyObject *module, Py_complex z); 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_cistatic PyObject * 1027db96d56Sopenharmony_cicmath_asin(PyObject *module, PyObject *arg) 1037db96d56Sopenharmony_ci{ 1047db96d56Sopenharmony_ci PyObject *return_value = NULL; 1057db96d56Sopenharmony_ci Py_complex z; 1067db96d56Sopenharmony_ci Py_complex _return_value; 1077db96d56Sopenharmony_ci 1087db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 1097db96d56Sopenharmony_ci if (PyErr_Occurred()) { 1107db96d56Sopenharmony_ci goto exit; 1117db96d56Sopenharmony_ci } 1127db96d56Sopenharmony_ci /* modifications for z */ 1137db96d56Sopenharmony_ci errno = 0; 1147db96d56Sopenharmony_ci _return_value = cmath_asin_impl(module, z); 1157db96d56Sopenharmony_ci if (errno == EDOM) { 1167db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 1177db96d56Sopenharmony_ci goto exit; 1187db96d56Sopenharmony_ci } 1197db96d56Sopenharmony_ci else if (errno == ERANGE) { 1207db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 1217db96d56Sopenharmony_ci goto exit; 1227db96d56Sopenharmony_ci } 1237db96d56Sopenharmony_ci else { 1247db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 1257db96d56Sopenharmony_ci } 1267db96d56Sopenharmony_ci 1277db96d56Sopenharmony_ciexit: 1287db96d56Sopenharmony_ci return return_value; 1297db96d56Sopenharmony_ci} 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_asinh__doc__, 1327db96d56Sopenharmony_ci"asinh($module, z, /)\n" 1337db96d56Sopenharmony_ci"--\n" 1347db96d56Sopenharmony_ci"\n" 1357db96d56Sopenharmony_ci"Return the inverse hyperbolic sine of z."); 1367db96d56Sopenharmony_ci 1377db96d56Sopenharmony_ci#define CMATH_ASINH_METHODDEF \ 1387db96d56Sopenharmony_ci {"asinh", (PyCFunction)cmath_asinh, METH_O, cmath_asinh__doc__}, 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_cistatic Py_complex 1417db96d56Sopenharmony_cicmath_asinh_impl(PyObject *module, Py_complex z); 1427db96d56Sopenharmony_ci 1437db96d56Sopenharmony_cistatic PyObject * 1447db96d56Sopenharmony_cicmath_asinh(PyObject *module, PyObject *arg) 1457db96d56Sopenharmony_ci{ 1467db96d56Sopenharmony_ci PyObject *return_value = NULL; 1477db96d56Sopenharmony_ci Py_complex z; 1487db96d56Sopenharmony_ci Py_complex _return_value; 1497db96d56Sopenharmony_ci 1507db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 1517db96d56Sopenharmony_ci if (PyErr_Occurred()) { 1527db96d56Sopenharmony_ci goto exit; 1537db96d56Sopenharmony_ci } 1547db96d56Sopenharmony_ci /* modifications for z */ 1557db96d56Sopenharmony_ci errno = 0; 1567db96d56Sopenharmony_ci _return_value = cmath_asinh_impl(module, z); 1577db96d56Sopenharmony_ci if (errno == EDOM) { 1587db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 1597db96d56Sopenharmony_ci goto exit; 1607db96d56Sopenharmony_ci } 1617db96d56Sopenharmony_ci else if (errno == ERANGE) { 1627db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 1637db96d56Sopenharmony_ci goto exit; 1647db96d56Sopenharmony_ci } 1657db96d56Sopenharmony_ci else { 1667db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 1677db96d56Sopenharmony_ci } 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ciexit: 1707db96d56Sopenharmony_ci return return_value; 1717db96d56Sopenharmony_ci} 1727db96d56Sopenharmony_ci 1737db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_atan__doc__, 1747db96d56Sopenharmony_ci"atan($module, z, /)\n" 1757db96d56Sopenharmony_ci"--\n" 1767db96d56Sopenharmony_ci"\n" 1777db96d56Sopenharmony_ci"Return the arc tangent of z."); 1787db96d56Sopenharmony_ci 1797db96d56Sopenharmony_ci#define CMATH_ATAN_METHODDEF \ 1807db96d56Sopenharmony_ci {"atan", (PyCFunction)cmath_atan, METH_O, cmath_atan__doc__}, 1817db96d56Sopenharmony_ci 1827db96d56Sopenharmony_cistatic Py_complex 1837db96d56Sopenharmony_cicmath_atan_impl(PyObject *module, Py_complex z); 1847db96d56Sopenharmony_ci 1857db96d56Sopenharmony_cistatic PyObject * 1867db96d56Sopenharmony_cicmath_atan(PyObject *module, PyObject *arg) 1877db96d56Sopenharmony_ci{ 1887db96d56Sopenharmony_ci PyObject *return_value = NULL; 1897db96d56Sopenharmony_ci Py_complex z; 1907db96d56Sopenharmony_ci Py_complex _return_value; 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 1937db96d56Sopenharmony_ci if (PyErr_Occurred()) { 1947db96d56Sopenharmony_ci goto exit; 1957db96d56Sopenharmony_ci } 1967db96d56Sopenharmony_ci /* modifications for z */ 1977db96d56Sopenharmony_ci errno = 0; 1987db96d56Sopenharmony_ci _return_value = cmath_atan_impl(module, z); 1997db96d56Sopenharmony_ci if (errno == EDOM) { 2007db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 2017db96d56Sopenharmony_ci goto exit; 2027db96d56Sopenharmony_ci } 2037db96d56Sopenharmony_ci else if (errno == ERANGE) { 2047db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 2057db96d56Sopenharmony_ci goto exit; 2067db96d56Sopenharmony_ci } 2077db96d56Sopenharmony_ci else { 2087db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 2097db96d56Sopenharmony_ci } 2107db96d56Sopenharmony_ci 2117db96d56Sopenharmony_ciexit: 2127db96d56Sopenharmony_ci return return_value; 2137db96d56Sopenharmony_ci} 2147db96d56Sopenharmony_ci 2157db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_atanh__doc__, 2167db96d56Sopenharmony_ci"atanh($module, z, /)\n" 2177db96d56Sopenharmony_ci"--\n" 2187db96d56Sopenharmony_ci"\n" 2197db96d56Sopenharmony_ci"Return the inverse hyperbolic tangent of z."); 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci#define CMATH_ATANH_METHODDEF \ 2227db96d56Sopenharmony_ci {"atanh", (PyCFunction)cmath_atanh, METH_O, cmath_atanh__doc__}, 2237db96d56Sopenharmony_ci 2247db96d56Sopenharmony_cistatic Py_complex 2257db96d56Sopenharmony_cicmath_atanh_impl(PyObject *module, Py_complex z); 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_cistatic PyObject * 2287db96d56Sopenharmony_cicmath_atanh(PyObject *module, PyObject *arg) 2297db96d56Sopenharmony_ci{ 2307db96d56Sopenharmony_ci PyObject *return_value = NULL; 2317db96d56Sopenharmony_ci Py_complex z; 2327db96d56Sopenharmony_ci Py_complex _return_value; 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 2357db96d56Sopenharmony_ci if (PyErr_Occurred()) { 2367db96d56Sopenharmony_ci goto exit; 2377db96d56Sopenharmony_ci } 2387db96d56Sopenharmony_ci /* modifications for z */ 2397db96d56Sopenharmony_ci errno = 0; 2407db96d56Sopenharmony_ci _return_value = cmath_atanh_impl(module, z); 2417db96d56Sopenharmony_ci if (errno == EDOM) { 2427db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 2437db96d56Sopenharmony_ci goto exit; 2447db96d56Sopenharmony_ci } 2457db96d56Sopenharmony_ci else if (errno == ERANGE) { 2467db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 2477db96d56Sopenharmony_ci goto exit; 2487db96d56Sopenharmony_ci } 2497db96d56Sopenharmony_ci else { 2507db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 2517db96d56Sopenharmony_ci } 2527db96d56Sopenharmony_ci 2537db96d56Sopenharmony_ciexit: 2547db96d56Sopenharmony_ci return return_value; 2557db96d56Sopenharmony_ci} 2567db96d56Sopenharmony_ci 2577db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_cos__doc__, 2587db96d56Sopenharmony_ci"cos($module, z, /)\n" 2597db96d56Sopenharmony_ci"--\n" 2607db96d56Sopenharmony_ci"\n" 2617db96d56Sopenharmony_ci"Return the cosine of z."); 2627db96d56Sopenharmony_ci 2637db96d56Sopenharmony_ci#define CMATH_COS_METHODDEF \ 2647db96d56Sopenharmony_ci {"cos", (PyCFunction)cmath_cos, METH_O, cmath_cos__doc__}, 2657db96d56Sopenharmony_ci 2667db96d56Sopenharmony_cistatic Py_complex 2677db96d56Sopenharmony_cicmath_cos_impl(PyObject *module, Py_complex z); 2687db96d56Sopenharmony_ci 2697db96d56Sopenharmony_cistatic PyObject * 2707db96d56Sopenharmony_cicmath_cos(PyObject *module, PyObject *arg) 2717db96d56Sopenharmony_ci{ 2727db96d56Sopenharmony_ci PyObject *return_value = NULL; 2737db96d56Sopenharmony_ci Py_complex z; 2747db96d56Sopenharmony_ci Py_complex _return_value; 2757db96d56Sopenharmony_ci 2767db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 2777db96d56Sopenharmony_ci if (PyErr_Occurred()) { 2787db96d56Sopenharmony_ci goto exit; 2797db96d56Sopenharmony_ci } 2807db96d56Sopenharmony_ci /* modifications for z */ 2817db96d56Sopenharmony_ci errno = 0; 2827db96d56Sopenharmony_ci _return_value = cmath_cos_impl(module, z); 2837db96d56Sopenharmony_ci if (errno == EDOM) { 2847db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 2857db96d56Sopenharmony_ci goto exit; 2867db96d56Sopenharmony_ci } 2877db96d56Sopenharmony_ci else if (errno == ERANGE) { 2887db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 2897db96d56Sopenharmony_ci goto exit; 2907db96d56Sopenharmony_ci } 2917db96d56Sopenharmony_ci else { 2927db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 2937db96d56Sopenharmony_ci } 2947db96d56Sopenharmony_ci 2957db96d56Sopenharmony_ciexit: 2967db96d56Sopenharmony_ci return return_value; 2977db96d56Sopenharmony_ci} 2987db96d56Sopenharmony_ci 2997db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_cosh__doc__, 3007db96d56Sopenharmony_ci"cosh($module, z, /)\n" 3017db96d56Sopenharmony_ci"--\n" 3027db96d56Sopenharmony_ci"\n" 3037db96d56Sopenharmony_ci"Return the hyperbolic cosine of z."); 3047db96d56Sopenharmony_ci 3057db96d56Sopenharmony_ci#define CMATH_COSH_METHODDEF \ 3067db96d56Sopenharmony_ci {"cosh", (PyCFunction)cmath_cosh, METH_O, cmath_cosh__doc__}, 3077db96d56Sopenharmony_ci 3087db96d56Sopenharmony_cistatic Py_complex 3097db96d56Sopenharmony_cicmath_cosh_impl(PyObject *module, Py_complex z); 3107db96d56Sopenharmony_ci 3117db96d56Sopenharmony_cistatic PyObject * 3127db96d56Sopenharmony_cicmath_cosh(PyObject *module, PyObject *arg) 3137db96d56Sopenharmony_ci{ 3147db96d56Sopenharmony_ci PyObject *return_value = NULL; 3157db96d56Sopenharmony_ci Py_complex z; 3167db96d56Sopenharmony_ci Py_complex _return_value; 3177db96d56Sopenharmony_ci 3187db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 3197db96d56Sopenharmony_ci if (PyErr_Occurred()) { 3207db96d56Sopenharmony_ci goto exit; 3217db96d56Sopenharmony_ci } 3227db96d56Sopenharmony_ci /* modifications for z */ 3237db96d56Sopenharmony_ci errno = 0; 3247db96d56Sopenharmony_ci _return_value = cmath_cosh_impl(module, z); 3257db96d56Sopenharmony_ci if (errno == EDOM) { 3267db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 3277db96d56Sopenharmony_ci goto exit; 3287db96d56Sopenharmony_ci } 3297db96d56Sopenharmony_ci else if (errno == ERANGE) { 3307db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 3317db96d56Sopenharmony_ci goto exit; 3327db96d56Sopenharmony_ci } 3337db96d56Sopenharmony_ci else { 3347db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 3357db96d56Sopenharmony_ci } 3367db96d56Sopenharmony_ci 3377db96d56Sopenharmony_ciexit: 3387db96d56Sopenharmony_ci return return_value; 3397db96d56Sopenharmony_ci} 3407db96d56Sopenharmony_ci 3417db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_exp__doc__, 3427db96d56Sopenharmony_ci"exp($module, z, /)\n" 3437db96d56Sopenharmony_ci"--\n" 3447db96d56Sopenharmony_ci"\n" 3457db96d56Sopenharmony_ci"Return the exponential value e**z."); 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ci#define CMATH_EXP_METHODDEF \ 3487db96d56Sopenharmony_ci {"exp", (PyCFunction)cmath_exp, METH_O, cmath_exp__doc__}, 3497db96d56Sopenharmony_ci 3507db96d56Sopenharmony_cistatic Py_complex 3517db96d56Sopenharmony_cicmath_exp_impl(PyObject *module, Py_complex z); 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_cistatic PyObject * 3547db96d56Sopenharmony_cicmath_exp(PyObject *module, PyObject *arg) 3557db96d56Sopenharmony_ci{ 3567db96d56Sopenharmony_ci PyObject *return_value = NULL; 3577db96d56Sopenharmony_ci Py_complex z; 3587db96d56Sopenharmony_ci Py_complex _return_value; 3597db96d56Sopenharmony_ci 3607db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 3617db96d56Sopenharmony_ci if (PyErr_Occurred()) { 3627db96d56Sopenharmony_ci goto exit; 3637db96d56Sopenharmony_ci } 3647db96d56Sopenharmony_ci /* modifications for z */ 3657db96d56Sopenharmony_ci errno = 0; 3667db96d56Sopenharmony_ci _return_value = cmath_exp_impl(module, z); 3677db96d56Sopenharmony_ci if (errno == EDOM) { 3687db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 3697db96d56Sopenharmony_ci goto exit; 3707db96d56Sopenharmony_ci } 3717db96d56Sopenharmony_ci else if (errno == ERANGE) { 3727db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 3737db96d56Sopenharmony_ci goto exit; 3747db96d56Sopenharmony_ci } 3757db96d56Sopenharmony_ci else { 3767db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 3777db96d56Sopenharmony_ci } 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_ciexit: 3807db96d56Sopenharmony_ci return return_value; 3817db96d56Sopenharmony_ci} 3827db96d56Sopenharmony_ci 3837db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_log10__doc__, 3847db96d56Sopenharmony_ci"log10($module, z, /)\n" 3857db96d56Sopenharmony_ci"--\n" 3867db96d56Sopenharmony_ci"\n" 3877db96d56Sopenharmony_ci"Return the base-10 logarithm of z."); 3887db96d56Sopenharmony_ci 3897db96d56Sopenharmony_ci#define CMATH_LOG10_METHODDEF \ 3907db96d56Sopenharmony_ci {"log10", (PyCFunction)cmath_log10, METH_O, cmath_log10__doc__}, 3917db96d56Sopenharmony_ci 3927db96d56Sopenharmony_cistatic Py_complex 3937db96d56Sopenharmony_cicmath_log10_impl(PyObject *module, Py_complex z); 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_cistatic PyObject * 3967db96d56Sopenharmony_cicmath_log10(PyObject *module, PyObject *arg) 3977db96d56Sopenharmony_ci{ 3987db96d56Sopenharmony_ci PyObject *return_value = NULL; 3997db96d56Sopenharmony_ci Py_complex z; 4007db96d56Sopenharmony_ci Py_complex _return_value; 4017db96d56Sopenharmony_ci 4027db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 4037db96d56Sopenharmony_ci if (PyErr_Occurred()) { 4047db96d56Sopenharmony_ci goto exit; 4057db96d56Sopenharmony_ci } 4067db96d56Sopenharmony_ci /* modifications for z */ 4077db96d56Sopenharmony_ci errno = 0; 4087db96d56Sopenharmony_ci _return_value = cmath_log10_impl(module, z); 4097db96d56Sopenharmony_ci if (errno == EDOM) { 4107db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 4117db96d56Sopenharmony_ci goto exit; 4127db96d56Sopenharmony_ci } 4137db96d56Sopenharmony_ci else if (errno == ERANGE) { 4147db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 4157db96d56Sopenharmony_ci goto exit; 4167db96d56Sopenharmony_ci } 4177db96d56Sopenharmony_ci else { 4187db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 4197db96d56Sopenharmony_ci } 4207db96d56Sopenharmony_ci 4217db96d56Sopenharmony_ciexit: 4227db96d56Sopenharmony_ci return return_value; 4237db96d56Sopenharmony_ci} 4247db96d56Sopenharmony_ci 4257db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_sin__doc__, 4267db96d56Sopenharmony_ci"sin($module, z, /)\n" 4277db96d56Sopenharmony_ci"--\n" 4287db96d56Sopenharmony_ci"\n" 4297db96d56Sopenharmony_ci"Return the sine of z."); 4307db96d56Sopenharmony_ci 4317db96d56Sopenharmony_ci#define CMATH_SIN_METHODDEF \ 4327db96d56Sopenharmony_ci {"sin", (PyCFunction)cmath_sin, METH_O, cmath_sin__doc__}, 4337db96d56Sopenharmony_ci 4347db96d56Sopenharmony_cistatic Py_complex 4357db96d56Sopenharmony_cicmath_sin_impl(PyObject *module, Py_complex z); 4367db96d56Sopenharmony_ci 4377db96d56Sopenharmony_cistatic PyObject * 4387db96d56Sopenharmony_cicmath_sin(PyObject *module, PyObject *arg) 4397db96d56Sopenharmony_ci{ 4407db96d56Sopenharmony_ci PyObject *return_value = NULL; 4417db96d56Sopenharmony_ci Py_complex z; 4427db96d56Sopenharmony_ci Py_complex _return_value; 4437db96d56Sopenharmony_ci 4447db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 4457db96d56Sopenharmony_ci if (PyErr_Occurred()) { 4467db96d56Sopenharmony_ci goto exit; 4477db96d56Sopenharmony_ci } 4487db96d56Sopenharmony_ci /* modifications for z */ 4497db96d56Sopenharmony_ci errno = 0; 4507db96d56Sopenharmony_ci _return_value = cmath_sin_impl(module, z); 4517db96d56Sopenharmony_ci if (errno == EDOM) { 4527db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 4537db96d56Sopenharmony_ci goto exit; 4547db96d56Sopenharmony_ci } 4557db96d56Sopenharmony_ci else if (errno == ERANGE) { 4567db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 4577db96d56Sopenharmony_ci goto exit; 4587db96d56Sopenharmony_ci } 4597db96d56Sopenharmony_ci else { 4607db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 4617db96d56Sopenharmony_ci } 4627db96d56Sopenharmony_ci 4637db96d56Sopenharmony_ciexit: 4647db96d56Sopenharmony_ci return return_value; 4657db96d56Sopenharmony_ci} 4667db96d56Sopenharmony_ci 4677db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_sinh__doc__, 4687db96d56Sopenharmony_ci"sinh($module, z, /)\n" 4697db96d56Sopenharmony_ci"--\n" 4707db96d56Sopenharmony_ci"\n" 4717db96d56Sopenharmony_ci"Return the hyperbolic sine of z."); 4727db96d56Sopenharmony_ci 4737db96d56Sopenharmony_ci#define CMATH_SINH_METHODDEF \ 4747db96d56Sopenharmony_ci {"sinh", (PyCFunction)cmath_sinh, METH_O, cmath_sinh__doc__}, 4757db96d56Sopenharmony_ci 4767db96d56Sopenharmony_cistatic Py_complex 4777db96d56Sopenharmony_cicmath_sinh_impl(PyObject *module, Py_complex z); 4787db96d56Sopenharmony_ci 4797db96d56Sopenharmony_cistatic PyObject * 4807db96d56Sopenharmony_cicmath_sinh(PyObject *module, PyObject *arg) 4817db96d56Sopenharmony_ci{ 4827db96d56Sopenharmony_ci PyObject *return_value = NULL; 4837db96d56Sopenharmony_ci Py_complex z; 4847db96d56Sopenharmony_ci Py_complex _return_value; 4857db96d56Sopenharmony_ci 4867db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 4877db96d56Sopenharmony_ci if (PyErr_Occurred()) { 4887db96d56Sopenharmony_ci goto exit; 4897db96d56Sopenharmony_ci } 4907db96d56Sopenharmony_ci /* modifications for z */ 4917db96d56Sopenharmony_ci errno = 0; 4927db96d56Sopenharmony_ci _return_value = cmath_sinh_impl(module, z); 4937db96d56Sopenharmony_ci if (errno == EDOM) { 4947db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 4957db96d56Sopenharmony_ci goto exit; 4967db96d56Sopenharmony_ci } 4977db96d56Sopenharmony_ci else if (errno == ERANGE) { 4987db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 4997db96d56Sopenharmony_ci goto exit; 5007db96d56Sopenharmony_ci } 5017db96d56Sopenharmony_ci else { 5027db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 5037db96d56Sopenharmony_ci } 5047db96d56Sopenharmony_ci 5057db96d56Sopenharmony_ciexit: 5067db96d56Sopenharmony_ci return return_value; 5077db96d56Sopenharmony_ci} 5087db96d56Sopenharmony_ci 5097db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_sqrt__doc__, 5107db96d56Sopenharmony_ci"sqrt($module, z, /)\n" 5117db96d56Sopenharmony_ci"--\n" 5127db96d56Sopenharmony_ci"\n" 5137db96d56Sopenharmony_ci"Return the square root of z."); 5147db96d56Sopenharmony_ci 5157db96d56Sopenharmony_ci#define CMATH_SQRT_METHODDEF \ 5167db96d56Sopenharmony_ci {"sqrt", (PyCFunction)cmath_sqrt, METH_O, cmath_sqrt__doc__}, 5177db96d56Sopenharmony_ci 5187db96d56Sopenharmony_cistatic Py_complex 5197db96d56Sopenharmony_cicmath_sqrt_impl(PyObject *module, Py_complex z); 5207db96d56Sopenharmony_ci 5217db96d56Sopenharmony_cistatic PyObject * 5227db96d56Sopenharmony_cicmath_sqrt(PyObject *module, PyObject *arg) 5237db96d56Sopenharmony_ci{ 5247db96d56Sopenharmony_ci PyObject *return_value = NULL; 5257db96d56Sopenharmony_ci Py_complex z; 5267db96d56Sopenharmony_ci Py_complex _return_value; 5277db96d56Sopenharmony_ci 5287db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 5297db96d56Sopenharmony_ci if (PyErr_Occurred()) { 5307db96d56Sopenharmony_ci goto exit; 5317db96d56Sopenharmony_ci } 5327db96d56Sopenharmony_ci /* modifications for z */ 5337db96d56Sopenharmony_ci errno = 0; 5347db96d56Sopenharmony_ci _return_value = cmath_sqrt_impl(module, z); 5357db96d56Sopenharmony_ci if (errno == EDOM) { 5367db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 5377db96d56Sopenharmony_ci goto exit; 5387db96d56Sopenharmony_ci } 5397db96d56Sopenharmony_ci else if (errno == ERANGE) { 5407db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 5417db96d56Sopenharmony_ci goto exit; 5427db96d56Sopenharmony_ci } 5437db96d56Sopenharmony_ci else { 5447db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 5457db96d56Sopenharmony_ci } 5467db96d56Sopenharmony_ci 5477db96d56Sopenharmony_ciexit: 5487db96d56Sopenharmony_ci return return_value; 5497db96d56Sopenharmony_ci} 5507db96d56Sopenharmony_ci 5517db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_tan__doc__, 5527db96d56Sopenharmony_ci"tan($module, z, /)\n" 5537db96d56Sopenharmony_ci"--\n" 5547db96d56Sopenharmony_ci"\n" 5557db96d56Sopenharmony_ci"Return the tangent of z."); 5567db96d56Sopenharmony_ci 5577db96d56Sopenharmony_ci#define CMATH_TAN_METHODDEF \ 5587db96d56Sopenharmony_ci {"tan", (PyCFunction)cmath_tan, METH_O, cmath_tan__doc__}, 5597db96d56Sopenharmony_ci 5607db96d56Sopenharmony_cistatic Py_complex 5617db96d56Sopenharmony_cicmath_tan_impl(PyObject *module, Py_complex z); 5627db96d56Sopenharmony_ci 5637db96d56Sopenharmony_cistatic PyObject * 5647db96d56Sopenharmony_cicmath_tan(PyObject *module, PyObject *arg) 5657db96d56Sopenharmony_ci{ 5667db96d56Sopenharmony_ci PyObject *return_value = NULL; 5677db96d56Sopenharmony_ci Py_complex z; 5687db96d56Sopenharmony_ci Py_complex _return_value; 5697db96d56Sopenharmony_ci 5707db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 5717db96d56Sopenharmony_ci if (PyErr_Occurred()) { 5727db96d56Sopenharmony_ci goto exit; 5737db96d56Sopenharmony_ci } 5747db96d56Sopenharmony_ci /* modifications for z */ 5757db96d56Sopenharmony_ci errno = 0; 5767db96d56Sopenharmony_ci _return_value = cmath_tan_impl(module, z); 5777db96d56Sopenharmony_ci if (errno == EDOM) { 5787db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 5797db96d56Sopenharmony_ci goto exit; 5807db96d56Sopenharmony_ci } 5817db96d56Sopenharmony_ci else if (errno == ERANGE) { 5827db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 5837db96d56Sopenharmony_ci goto exit; 5847db96d56Sopenharmony_ci } 5857db96d56Sopenharmony_ci else { 5867db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 5877db96d56Sopenharmony_ci } 5887db96d56Sopenharmony_ci 5897db96d56Sopenharmony_ciexit: 5907db96d56Sopenharmony_ci return return_value; 5917db96d56Sopenharmony_ci} 5927db96d56Sopenharmony_ci 5937db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_tanh__doc__, 5947db96d56Sopenharmony_ci"tanh($module, z, /)\n" 5957db96d56Sopenharmony_ci"--\n" 5967db96d56Sopenharmony_ci"\n" 5977db96d56Sopenharmony_ci"Return the hyperbolic tangent of z."); 5987db96d56Sopenharmony_ci 5997db96d56Sopenharmony_ci#define CMATH_TANH_METHODDEF \ 6007db96d56Sopenharmony_ci {"tanh", (PyCFunction)cmath_tanh, METH_O, cmath_tanh__doc__}, 6017db96d56Sopenharmony_ci 6027db96d56Sopenharmony_cistatic Py_complex 6037db96d56Sopenharmony_cicmath_tanh_impl(PyObject *module, Py_complex z); 6047db96d56Sopenharmony_ci 6057db96d56Sopenharmony_cistatic PyObject * 6067db96d56Sopenharmony_cicmath_tanh(PyObject *module, PyObject *arg) 6077db96d56Sopenharmony_ci{ 6087db96d56Sopenharmony_ci PyObject *return_value = NULL; 6097db96d56Sopenharmony_ci Py_complex z; 6107db96d56Sopenharmony_ci Py_complex _return_value; 6117db96d56Sopenharmony_ci 6127db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 6137db96d56Sopenharmony_ci if (PyErr_Occurred()) { 6147db96d56Sopenharmony_ci goto exit; 6157db96d56Sopenharmony_ci } 6167db96d56Sopenharmony_ci /* modifications for z */ 6177db96d56Sopenharmony_ci errno = 0; 6187db96d56Sopenharmony_ci _return_value = cmath_tanh_impl(module, z); 6197db96d56Sopenharmony_ci if (errno == EDOM) { 6207db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "math domain error"); 6217db96d56Sopenharmony_ci goto exit; 6227db96d56Sopenharmony_ci } 6237db96d56Sopenharmony_ci else if (errno == ERANGE) { 6247db96d56Sopenharmony_ci PyErr_SetString(PyExc_OverflowError, "math range error"); 6257db96d56Sopenharmony_ci goto exit; 6267db96d56Sopenharmony_ci } 6277db96d56Sopenharmony_ci else { 6287db96d56Sopenharmony_ci return_value = PyComplex_FromCComplex(_return_value); 6297db96d56Sopenharmony_ci } 6307db96d56Sopenharmony_ci 6317db96d56Sopenharmony_ciexit: 6327db96d56Sopenharmony_ci return return_value; 6337db96d56Sopenharmony_ci} 6347db96d56Sopenharmony_ci 6357db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_log__doc__, 6367db96d56Sopenharmony_ci"log($module, z, base=<unrepresentable>, /)\n" 6377db96d56Sopenharmony_ci"--\n" 6387db96d56Sopenharmony_ci"\n" 6397db96d56Sopenharmony_ci"log(z[, base]) -> the logarithm of z to the given base.\n" 6407db96d56Sopenharmony_ci"\n" 6417db96d56Sopenharmony_ci"If the base is not specified, returns the natural logarithm (base e) of z."); 6427db96d56Sopenharmony_ci 6437db96d56Sopenharmony_ci#define CMATH_LOG_METHODDEF \ 6447db96d56Sopenharmony_ci {"log", _PyCFunction_CAST(cmath_log), METH_FASTCALL, cmath_log__doc__}, 6457db96d56Sopenharmony_ci 6467db96d56Sopenharmony_cistatic PyObject * 6477db96d56Sopenharmony_cicmath_log_impl(PyObject *module, Py_complex x, PyObject *y_obj); 6487db96d56Sopenharmony_ci 6497db96d56Sopenharmony_cistatic PyObject * 6507db96d56Sopenharmony_cicmath_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 6517db96d56Sopenharmony_ci{ 6527db96d56Sopenharmony_ci PyObject *return_value = NULL; 6537db96d56Sopenharmony_ci Py_complex x; 6547db96d56Sopenharmony_ci PyObject *y_obj = NULL; 6557db96d56Sopenharmony_ci 6567db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("log", nargs, 1, 2)) { 6577db96d56Sopenharmony_ci goto exit; 6587db96d56Sopenharmony_ci } 6597db96d56Sopenharmony_ci x = PyComplex_AsCComplex(args[0]); 6607db96d56Sopenharmony_ci if (PyErr_Occurred()) { 6617db96d56Sopenharmony_ci goto exit; 6627db96d56Sopenharmony_ci } 6637db96d56Sopenharmony_ci if (nargs < 2) { 6647db96d56Sopenharmony_ci goto skip_optional; 6657db96d56Sopenharmony_ci } 6667db96d56Sopenharmony_ci y_obj = args[1]; 6677db96d56Sopenharmony_ciskip_optional: 6687db96d56Sopenharmony_ci return_value = cmath_log_impl(module, x, y_obj); 6697db96d56Sopenharmony_ci 6707db96d56Sopenharmony_ciexit: 6717db96d56Sopenharmony_ci return return_value; 6727db96d56Sopenharmony_ci} 6737db96d56Sopenharmony_ci 6747db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_phase__doc__, 6757db96d56Sopenharmony_ci"phase($module, z, /)\n" 6767db96d56Sopenharmony_ci"--\n" 6777db96d56Sopenharmony_ci"\n" 6787db96d56Sopenharmony_ci"Return argument, also known as the phase angle, of a complex."); 6797db96d56Sopenharmony_ci 6807db96d56Sopenharmony_ci#define CMATH_PHASE_METHODDEF \ 6817db96d56Sopenharmony_ci {"phase", (PyCFunction)cmath_phase, METH_O, cmath_phase__doc__}, 6827db96d56Sopenharmony_ci 6837db96d56Sopenharmony_cistatic PyObject * 6847db96d56Sopenharmony_cicmath_phase_impl(PyObject *module, Py_complex z); 6857db96d56Sopenharmony_ci 6867db96d56Sopenharmony_cistatic PyObject * 6877db96d56Sopenharmony_cicmath_phase(PyObject *module, PyObject *arg) 6887db96d56Sopenharmony_ci{ 6897db96d56Sopenharmony_ci PyObject *return_value = NULL; 6907db96d56Sopenharmony_ci Py_complex z; 6917db96d56Sopenharmony_ci 6927db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 6937db96d56Sopenharmony_ci if (PyErr_Occurred()) { 6947db96d56Sopenharmony_ci goto exit; 6957db96d56Sopenharmony_ci } 6967db96d56Sopenharmony_ci return_value = cmath_phase_impl(module, z); 6977db96d56Sopenharmony_ci 6987db96d56Sopenharmony_ciexit: 6997db96d56Sopenharmony_ci return return_value; 7007db96d56Sopenharmony_ci} 7017db96d56Sopenharmony_ci 7027db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_polar__doc__, 7037db96d56Sopenharmony_ci"polar($module, z, /)\n" 7047db96d56Sopenharmony_ci"--\n" 7057db96d56Sopenharmony_ci"\n" 7067db96d56Sopenharmony_ci"Convert a complex from rectangular coordinates to polar coordinates.\n" 7077db96d56Sopenharmony_ci"\n" 7087db96d56Sopenharmony_ci"r is the distance from 0 and phi the phase angle."); 7097db96d56Sopenharmony_ci 7107db96d56Sopenharmony_ci#define CMATH_POLAR_METHODDEF \ 7117db96d56Sopenharmony_ci {"polar", (PyCFunction)cmath_polar, METH_O, cmath_polar__doc__}, 7127db96d56Sopenharmony_ci 7137db96d56Sopenharmony_cistatic PyObject * 7147db96d56Sopenharmony_cicmath_polar_impl(PyObject *module, Py_complex z); 7157db96d56Sopenharmony_ci 7167db96d56Sopenharmony_cistatic PyObject * 7177db96d56Sopenharmony_cicmath_polar(PyObject *module, PyObject *arg) 7187db96d56Sopenharmony_ci{ 7197db96d56Sopenharmony_ci PyObject *return_value = NULL; 7207db96d56Sopenharmony_ci Py_complex z; 7217db96d56Sopenharmony_ci 7227db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 7237db96d56Sopenharmony_ci if (PyErr_Occurred()) { 7247db96d56Sopenharmony_ci goto exit; 7257db96d56Sopenharmony_ci } 7267db96d56Sopenharmony_ci return_value = cmath_polar_impl(module, z); 7277db96d56Sopenharmony_ci 7287db96d56Sopenharmony_ciexit: 7297db96d56Sopenharmony_ci return return_value; 7307db96d56Sopenharmony_ci} 7317db96d56Sopenharmony_ci 7327db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_rect__doc__, 7337db96d56Sopenharmony_ci"rect($module, r, phi, /)\n" 7347db96d56Sopenharmony_ci"--\n" 7357db96d56Sopenharmony_ci"\n" 7367db96d56Sopenharmony_ci"Convert from polar coordinates to rectangular coordinates."); 7377db96d56Sopenharmony_ci 7387db96d56Sopenharmony_ci#define CMATH_RECT_METHODDEF \ 7397db96d56Sopenharmony_ci {"rect", _PyCFunction_CAST(cmath_rect), METH_FASTCALL, cmath_rect__doc__}, 7407db96d56Sopenharmony_ci 7417db96d56Sopenharmony_cistatic PyObject * 7427db96d56Sopenharmony_cicmath_rect_impl(PyObject *module, double r, double phi); 7437db96d56Sopenharmony_ci 7447db96d56Sopenharmony_cistatic PyObject * 7457db96d56Sopenharmony_cicmath_rect(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 7467db96d56Sopenharmony_ci{ 7477db96d56Sopenharmony_ci PyObject *return_value = NULL; 7487db96d56Sopenharmony_ci double r; 7497db96d56Sopenharmony_ci double phi; 7507db96d56Sopenharmony_ci 7517db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("rect", nargs, 2, 2)) { 7527db96d56Sopenharmony_ci goto exit; 7537db96d56Sopenharmony_ci } 7547db96d56Sopenharmony_ci if (PyFloat_CheckExact(args[0])) { 7557db96d56Sopenharmony_ci r = PyFloat_AS_DOUBLE(args[0]); 7567db96d56Sopenharmony_ci } 7577db96d56Sopenharmony_ci else 7587db96d56Sopenharmony_ci { 7597db96d56Sopenharmony_ci r = PyFloat_AsDouble(args[0]); 7607db96d56Sopenharmony_ci if (r == -1.0 && PyErr_Occurred()) { 7617db96d56Sopenharmony_ci goto exit; 7627db96d56Sopenharmony_ci } 7637db96d56Sopenharmony_ci } 7647db96d56Sopenharmony_ci if (PyFloat_CheckExact(args[1])) { 7657db96d56Sopenharmony_ci phi = PyFloat_AS_DOUBLE(args[1]); 7667db96d56Sopenharmony_ci } 7677db96d56Sopenharmony_ci else 7687db96d56Sopenharmony_ci { 7697db96d56Sopenharmony_ci phi = PyFloat_AsDouble(args[1]); 7707db96d56Sopenharmony_ci if (phi == -1.0 && PyErr_Occurred()) { 7717db96d56Sopenharmony_ci goto exit; 7727db96d56Sopenharmony_ci } 7737db96d56Sopenharmony_ci } 7747db96d56Sopenharmony_ci return_value = cmath_rect_impl(module, r, phi); 7757db96d56Sopenharmony_ci 7767db96d56Sopenharmony_ciexit: 7777db96d56Sopenharmony_ci return return_value; 7787db96d56Sopenharmony_ci} 7797db96d56Sopenharmony_ci 7807db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_isfinite__doc__, 7817db96d56Sopenharmony_ci"isfinite($module, z, /)\n" 7827db96d56Sopenharmony_ci"--\n" 7837db96d56Sopenharmony_ci"\n" 7847db96d56Sopenharmony_ci"Return True if both the real and imaginary parts of z are finite, else False."); 7857db96d56Sopenharmony_ci 7867db96d56Sopenharmony_ci#define CMATH_ISFINITE_METHODDEF \ 7877db96d56Sopenharmony_ci {"isfinite", (PyCFunction)cmath_isfinite, METH_O, cmath_isfinite__doc__}, 7887db96d56Sopenharmony_ci 7897db96d56Sopenharmony_cistatic PyObject * 7907db96d56Sopenharmony_cicmath_isfinite_impl(PyObject *module, Py_complex z); 7917db96d56Sopenharmony_ci 7927db96d56Sopenharmony_cistatic PyObject * 7937db96d56Sopenharmony_cicmath_isfinite(PyObject *module, PyObject *arg) 7947db96d56Sopenharmony_ci{ 7957db96d56Sopenharmony_ci PyObject *return_value = NULL; 7967db96d56Sopenharmony_ci Py_complex z; 7977db96d56Sopenharmony_ci 7987db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 7997db96d56Sopenharmony_ci if (PyErr_Occurred()) { 8007db96d56Sopenharmony_ci goto exit; 8017db96d56Sopenharmony_ci } 8027db96d56Sopenharmony_ci return_value = cmath_isfinite_impl(module, z); 8037db96d56Sopenharmony_ci 8047db96d56Sopenharmony_ciexit: 8057db96d56Sopenharmony_ci return return_value; 8067db96d56Sopenharmony_ci} 8077db96d56Sopenharmony_ci 8087db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_isnan__doc__, 8097db96d56Sopenharmony_ci"isnan($module, z, /)\n" 8107db96d56Sopenharmony_ci"--\n" 8117db96d56Sopenharmony_ci"\n" 8127db96d56Sopenharmony_ci"Checks if the real or imaginary part of z not a number (NaN)."); 8137db96d56Sopenharmony_ci 8147db96d56Sopenharmony_ci#define CMATH_ISNAN_METHODDEF \ 8157db96d56Sopenharmony_ci {"isnan", (PyCFunction)cmath_isnan, METH_O, cmath_isnan__doc__}, 8167db96d56Sopenharmony_ci 8177db96d56Sopenharmony_cistatic PyObject * 8187db96d56Sopenharmony_cicmath_isnan_impl(PyObject *module, Py_complex z); 8197db96d56Sopenharmony_ci 8207db96d56Sopenharmony_cistatic PyObject * 8217db96d56Sopenharmony_cicmath_isnan(PyObject *module, PyObject *arg) 8227db96d56Sopenharmony_ci{ 8237db96d56Sopenharmony_ci PyObject *return_value = NULL; 8247db96d56Sopenharmony_ci Py_complex z; 8257db96d56Sopenharmony_ci 8267db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 8277db96d56Sopenharmony_ci if (PyErr_Occurred()) { 8287db96d56Sopenharmony_ci goto exit; 8297db96d56Sopenharmony_ci } 8307db96d56Sopenharmony_ci return_value = cmath_isnan_impl(module, z); 8317db96d56Sopenharmony_ci 8327db96d56Sopenharmony_ciexit: 8337db96d56Sopenharmony_ci return return_value; 8347db96d56Sopenharmony_ci} 8357db96d56Sopenharmony_ci 8367db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_isinf__doc__, 8377db96d56Sopenharmony_ci"isinf($module, z, /)\n" 8387db96d56Sopenharmony_ci"--\n" 8397db96d56Sopenharmony_ci"\n" 8407db96d56Sopenharmony_ci"Checks if the real or imaginary part of z is infinite."); 8417db96d56Sopenharmony_ci 8427db96d56Sopenharmony_ci#define CMATH_ISINF_METHODDEF \ 8437db96d56Sopenharmony_ci {"isinf", (PyCFunction)cmath_isinf, METH_O, cmath_isinf__doc__}, 8447db96d56Sopenharmony_ci 8457db96d56Sopenharmony_cistatic PyObject * 8467db96d56Sopenharmony_cicmath_isinf_impl(PyObject *module, Py_complex z); 8477db96d56Sopenharmony_ci 8487db96d56Sopenharmony_cistatic PyObject * 8497db96d56Sopenharmony_cicmath_isinf(PyObject *module, PyObject *arg) 8507db96d56Sopenharmony_ci{ 8517db96d56Sopenharmony_ci PyObject *return_value = NULL; 8527db96d56Sopenharmony_ci Py_complex z; 8537db96d56Sopenharmony_ci 8547db96d56Sopenharmony_ci z = PyComplex_AsCComplex(arg); 8557db96d56Sopenharmony_ci if (PyErr_Occurred()) { 8567db96d56Sopenharmony_ci goto exit; 8577db96d56Sopenharmony_ci } 8587db96d56Sopenharmony_ci return_value = cmath_isinf_impl(module, z); 8597db96d56Sopenharmony_ci 8607db96d56Sopenharmony_ciexit: 8617db96d56Sopenharmony_ci return return_value; 8627db96d56Sopenharmony_ci} 8637db96d56Sopenharmony_ci 8647db96d56Sopenharmony_ciPyDoc_STRVAR(cmath_isclose__doc__, 8657db96d56Sopenharmony_ci"isclose($module, /, a, b, *, rel_tol=1e-09, abs_tol=0.0)\n" 8667db96d56Sopenharmony_ci"--\n" 8677db96d56Sopenharmony_ci"\n" 8687db96d56Sopenharmony_ci"Determine whether two complex numbers are close in value.\n" 8697db96d56Sopenharmony_ci"\n" 8707db96d56Sopenharmony_ci" rel_tol\n" 8717db96d56Sopenharmony_ci" maximum difference for being considered \"close\", relative to the\n" 8727db96d56Sopenharmony_ci" magnitude of the input values\n" 8737db96d56Sopenharmony_ci" abs_tol\n" 8747db96d56Sopenharmony_ci" maximum difference for being considered \"close\", regardless of the\n" 8757db96d56Sopenharmony_ci" magnitude of the input values\n" 8767db96d56Sopenharmony_ci"\n" 8777db96d56Sopenharmony_ci"Return True if a is close in value to b, and False otherwise.\n" 8787db96d56Sopenharmony_ci"\n" 8797db96d56Sopenharmony_ci"For the values to be considered close, the difference between them must be\n" 8807db96d56Sopenharmony_ci"smaller than at least one of the tolerances.\n" 8817db96d56Sopenharmony_ci"\n" 8827db96d56Sopenharmony_ci"-inf, inf and NaN behave similarly to the IEEE 754 Standard. That is, NaN is\n" 8837db96d56Sopenharmony_ci"not close to anything, even itself. inf and -inf are only close to themselves."); 8847db96d56Sopenharmony_ci 8857db96d56Sopenharmony_ci#define CMATH_ISCLOSE_METHODDEF \ 8867db96d56Sopenharmony_ci {"isclose", _PyCFunction_CAST(cmath_isclose), METH_FASTCALL|METH_KEYWORDS, cmath_isclose__doc__}, 8877db96d56Sopenharmony_ci 8887db96d56Sopenharmony_cistatic int 8897db96d56Sopenharmony_cicmath_isclose_impl(PyObject *module, Py_complex a, Py_complex b, 8907db96d56Sopenharmony_ci double rel_tol, double abs_tol); 8917db96d56Sopenharmony_ci 8927db96d56Sopenharmony_cistatic PyObject * 8937db96d56Sopenharmony_cicmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 8947db96d56Sopenharmony_ci{ 8957db96d56Sopenharmony_ci PyObject *return_value = NULL; 8967db96d56Sopenharmony_ci static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL}; 8977db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0}; 8987db96d56Sopenharmony_ci PyObject *argsbuf[4]; 8997db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 9007db96d56Sopenharmony_ci Py_complex a; 9017db96d56Sopenharmony_ci Py_complex b; 9027db96d56Sopenharmony_ci double rel_tol = 1e-09; 9037db96d56Sopenharmony_ci double abs_tol = 0.0; 9047db96d56Sopenharmony_ci int _return_value; 9057db96d56Sopenharmony_ci 9067db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf); 9077db96d56Sopenharmony_ci if (!args) { 9087db96d56Sopenharmony_ci goto exit; 9097db96d56Sopenharmony_ci } 9107db96d56Sopenharmony_ci a = PyComplex_AsCComplex(args[0]); 9117db96d56Sopenharmony_ci if (PyErr_Occurred()) { 9127db96d56Sopenharmony_ci goto exit; 9137db96d56Sopenharmony_ci } 9147db96d56Sopenharmony_ci b = PyComplex_AsCComplex(args[1]); 9157db96d56Sopenharmony_ci if (PyErr_Occurred()) { 9167db96d56Sopenharmony_ci goto exit; 9177db96d56Sopenharmony_ci } 9187db96d56Sopenharmony_ci if (!noptargs) { 9197db96d56Sopenharmony_ci goto skip_optional_kwonly; 9207db96d56Sopenharmony_ci } 9217db96d56Sopenharmony_ci if (args[2]) { 9227db96d56Sopenharmony_ci if (PyFloat_CheckExact(args[2])) { 9237db96d56Sopenharmony_ci rel_tol = PyFloat_AS_DOUBLE(args[2]); 9247db96d56Sopenharmony_ci } 9257db96d56Sopenharmony_ci else 9267db96d56Sopenharmony_ci { 9277db96d56Sopenharmony_ci rel_tol = PyFloat_AsDouble(args[2]); 9287db96d56Sopenharmony_ci if (rel_tol == -1.0 && PyErr_Occurred()) { 9297db96d56Sopenharmony_ci goto exit; 9307db96d56Sopenharmony_ci } 9317db96d56Sopenharmony_ci } 9327db96d56Sopenharmony_ci if (!--noptargs) { 9337db96d56Sopenharmony_ci goto skip_optional_kwonly; 9347db96d56Sopenharmony_ci } 9357db96d56Sopenharmony_ci } 9367db96d56Sopenharmony_ci if (PyFloat_CheckExact(args[3])) { 9377db96d56Sopenharmony_ci abs_tol = PyFloat_AS_DOUBLE(args[3]); 9387db96d56Sopenharmony_ci } 9397db96d56Sopenharmony_ci else 9407db96d56Sopenharmony_ci { 9417db96d56Sopenharmony_ci abs_tol = PyFloat_AsDouble(args[3]); 9427db96d56Sopenharmony_ci if (abs_tol == -1.0 && PyErr_Occurred()) { 9437db96d56Sopenharmony_ci goto exit; 9447db96d56Sopenharmony_ci } 9457db96d56Sopenharmony_ci } 9467db96d56Sopenharmony_ciskip_optional_kwonly: 9477db96d56Sopenharmony_ci _return_value = cmath_isclose_impl(module, a, b, rel_tol, abs_tol); 9487db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 9497db96d56Sopenharmony_ci goto exit; 9507db96d56Sopenharmony_ci } 9517db96d56Sopenharmony_ci return_value = PyBool_FromLong((long)_return_value); 9527db96d56Sopenharmony_ci 9537db96d56Sopenharmony_ciexit: 9547db96d56Sopenharmony_ci return return_value; 9557db96d56Sopenharmony_ci} 9567db96d56Sopenharmony_ci/*[clinic end generated code: output=c6e3f37cd562c942 input=a9049054013a1b77]*/ 957