17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(float_is_integer__doc__, 67db96d56Sopenharmony_ci"is_integer($self, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Return True if the float is an integer."); 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci#define FLOAT_IS_INTEGER_METHODDEF \ 127db96d56Sopenharmony_ci {"is_integer", (PyCFunction)float_is_integer, METH_NOARGS, float_is_integer__doc__}, 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_cistatic PyObject * 157db96d56Sopenharmony_cifloat_is_integer_impl(PyObject *self); 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_cistatic PyObject * 187db96d56Sopenharmony_cifloat_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored)) 197db96d56Sopenharmony_ci{ 207db96d56Sopenharmony_ci return float_is_integer_impl(self); 217db96d56Sopenharmony_ci} 227db96d56Sopenharmony_ci 237db96d56Sopenharmony_ciPyDoc_STRVAR(float___trunc____doc__, 247db96d56Sopenharmony_ci"__trunc__($self, /)\n" 257db96d56Sopenharmony_ci"--\n" 267db96d56Sopenharmony_ci"\n" 277db96d56Sopenharmony_ci"Return the Integral closest to x between 0 and x."); 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci#define FLOAT___TRUNC___METHODDEF \ 307db96d56Sopenharmony_ci {"__trunc__", (PyCFunction)float___trunc__, METH_NOARGS, float___trunc____doc__}, 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_cistatic PyObject * 337db96d56Sopenharmony_cifloat___trunc___impl(PyObject *self); 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_cistatic PyObject * 367db96d56Sopenharmony_cifloat___trunc__(PyObject *self, PyObject *Py_UNUSED(ignored)) 377db96d56Sopenharmony_ci{ 387db96d56Sopenharmony_ci return float___trunc___impl(self); 397db96d56Sopenharmony_ci} 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ciPyDoc_STRVAR(float___floor____doc__, 427db96d56Sopenharmony_ci"__floor__($self, /)\n" 437db96d56Sopenharmony_ci"--\n" 447db96d56Sopenharmony_ci"\n" 457db96d56Sopenharmony_ci"Return the floor as an Integral."); 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci#define FLOAT___FLOOR___METHODDEF \ 487db96d56Sopenharmony_ci {"__floor__", (PyCFunction)float___floor__, METH_NOARGS, float___floor____doc__}, 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_cistatic PyObject * 517db96d56Sopenharmony_cifloat___floor___impl(PyObject *self); 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_cistatic PyObject * 547db96d56Sopenharmony_cifloat___floor__(PyObject *self, PyObject *Py_UNUSED(ignored)) 557db96d56Sopenharmony_ci{ 567db96d56Sopenharmony_ci return float___floor___impl(self); 577db96d56Sopenharmony_ci} 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ciPyDoc_STRVAR(float___ceil____doc__, 607db96d56Sopenharmony_ci"__ceil__($self, /)\n" 617db96d56Sopenharmony_ci"--\n" 627db96d56Sopenharmony_ci"\n" 637db96d56Sopenharmony_ci"Return the ceiling as an Integral."); 647db96d56Sopenharmony_ci 657db96d56Sopenharmony_ci#define FLOAT___CEIL___METHODDEF \ 667db96d56Sopenharmony_ci {"__ceil__", (PyCFunction)float___ceil__, METH_NOARGS, float___ceil____doc__}, 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_cistatic PyObject * 697db96d56Sopenharmony_cifloat___ceil___impl(PyObject *self); 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cistatic PyObject * 727db96d56Sopenharmony_cifloat___ceil__(PyObject *self, PyObject *Py_UNUSED(ignored)) 737db96d56Sopenharmony_ci{ 747db96d56Sopenharmony_ci return float___ceil___impl(self); 757db96d56Sopenharmony_ci} 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ciPyDoc_STRVAR(float___round____doc__, 787db96d56Sopenharmony_ci"__round__($self, ndigits=None, /)\n" 797db96d56Sopenharmony_ci"--\n" 807db96d56Sopenharmony_ci"\n" 817db96d56Sopenharmony_ci"Return the Integral closest to x, rounding half toward even.\n" 827db96d56Sopenharmony_ci"\n" 837db96d56Sopenharmony_ci"When an argument is passed, work like built-in round(x, ndigits)."); 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_ci#define FLOAT___ROUND___METHODDEF \ 867db96d56Sopenharmony_ci {"__round__", _PyCFunction_CAST(float___round__), METH_FASTCALL, float___round____doc__}, 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_cistatic PyObject * 897db96d56Sopenharmony_cifloat___round___impl(PyObject *self, PyObject *o_ndigits); 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_cistatic PyObject * 927db96d56Sopenharmony_cifloat___round__(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 937db96d56Sopenharmony_ci{ 947db96d56Sopenharmony_ci PyObject *return_value = NULL; 957db96d56Sopenharmony_ci PyObject *o_ndigits = Py_None; 967db96d56Sopenharmony_ci 977db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("__round__", nargs, 0, 1)) { 987db96d56Sopenharmony_ci goto exit; 997db96d56Sopenharmony_ci } 1007db96d56Sopenharmony_ci if (nargs < 1) { 1017db96d56Sopenharmony_ci goto skip_optional; 1027db96d56Sopenharmony_ci } 1037db96d56Sopenharmony_ci o_ndigits = args[0]; 1047db96d56Sopenharmony_ciskip_optional: 1057db96d56Sopenharmony_ci return_value = float___round___impl(self, o_ndigits); 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ciexit: 1087db96d56Sopenharmony_ci return return_value; 1097db96d56Sopenharmony_ci} 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ciPyDoc_STRVAR(float_conjugate__doc__, 1127db96d56Sopenharmony_ci"conjugate($self, /)\n" 1137db96d56Sopenharmony_ci"--\n" 1147db96d56Sopenharmony_ci"\n" 1157db96d56Sopenharmony_ci"Return self, the complex conjugate of any float."); 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci#define FLOAT_CONJUGATE_METHODDEF \ 1187db96d56Sopenharmony_ci {"conjugate", (PyCFunction)float_conjugate, METH_NOARGS, float_conjugate__doc__}, 1197db96d56Sopenharmony_ci 1207db96d56Sopenharmony_cistatic PyObject * 1217db96d56Sopenharmony_cifloat_conjugate_impl(PyObject *self); 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_cistatic PyObject * 1247db96d56Sopenharmony_cifloat_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored)) 1257db96d56Sopenharmony_ci{ 1267db96d56Sopenharmony_ci return float_conjugate_impl(self); 1277db96d56Sopenharmony_ci} 1287db96d56Sopenharmony_ci 1297db96d56Sopenharmony_ciPyDoc_STRVAR(float_hex__doc__, 1307db96d56Sopenharmony_ci"hex($self, /)\n" 1317db96d56Sopenharmony_ci"--\n" 1327db96d56Sopenharmony_ci"\n" 1337db96d56Sopenharmony_ci"Return a hexadecimal representation of a floating-point number.\n" 1347db96d56Sopenharmony_ci"\n" 1357db96d56Sopenharmony_ci">>> (-0.1).hex()\n" 1367db96d56Sopenharmony_ci"\'-0x1.999999999999ap-4\'\n" 1377db96d56Sopenharmony_ci">>> 3.14159.hex()\n" 1387db96d56Sopenharmony_ci"\'0x1.921f9f01b866ep+1\'"); 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci#define FLOAT_HEX_METHODDEF \ 1417db96d56Sopenharmony_ci {"hex", (PyCFunction)float_hex, METH_NOARGS, float_hex__doc__}, 1427db96d56Sopenharmony_ci 1437db96d56Sopenharmony_cistatic PyObject * 1447db96d56Sopenharmony_cifloat_hex_impl(PyObject *self); 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_cistatic PyObject * 1477db96d56Sopenharmony_cifloat_hex(PyObject *self, PyObject *Py_UNUSED(ignored)) 1487db96d56Sopenharmony_ci{ 1497db96d56Sopenharmony_ci return float_hex_impl(self); 1507db96d56Sopenharmony_ci} 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ciPyDoc_STRVAR(float_fromhex__doc__, 1537db96d56Sopenharmony_ci"fromhex($type, string, /)\n" 1547db96d56Sopenharmony_ci"--\n" 1557db96d56Sopenharmony_ci"\n" 1567db96d56Sopenharmony_ci"Create a floating-point number from a hexadecimal string.\n" 1577db96d56Sopenharmony_ci"\n" 1587db96d56Sopenharmony_ci">>> float.fromhex(\'0x1.ffffp10\')\n" 1597db96d56Sopenharmony_ci"2047.984375\n" 1607db96d56Sopenharmony_ci">>> float.fromhex(\'-0x1p-1074\')\n" 1617db96d56Sopenharmony_ci"-5e-324"); 1627db96d56Sopenharmony_ci 1637db96d56Sopenharmony_ci#define FLOAT_FROMHEX_METHODDEF \ 1647db96d56Sopenharmony_ci {"fromhex", (PyCFunction)float_fromhex, METH_O|METH_CLASS, float_fromhex__doc__}, 1657db96d56Sopenharmony_ci 1667db96d56Sopenharmony_ciPyDoc_STRVAR(float_as_integer_ratio__doc__, 1677db96d56Sopenharmony_ci"as_integer_ratio($self, /)\n" 1687db96d56Sopenharmony_ci"--\n" 1697db96d56Sopenharmony_ci"\n" 1707db96d56Sopenharmony_ci"Return integer ratio.\n" 1717db96d56Sopenharmony_ci"\n" 1727db96d56Sopenharmony_ci"Return a pair of integers, whose ratio is exactly equal to the original float\n" 1737db96d56Sopenharmony_ci"and with a positive denominator.\n" 1747db96d56Sopenharmony_ci"\n" 1757db96d56Sopenharmony_ci"Raise OverflowError on infinities and a ValueError on NaNs.\n" 1767db96d56Sopenharmony_ci"\n" 1777db96d56Sopenharmony_ci">>> (10.0).as_integer_ratio()\n" 1787db96d56Sopenharmony_ci"(10, 1)\n" 1797db96d56Sopenharmony_ci">>> (0.0).as_integer_ratio()\n" 1807db96d56Sopenharmony_ci"(0, 1)\n" 1817db96d56Sopenharmony_ci">>> (-.25).as_integer_ratio()\n" 1827db96d56Sopenharmony_ci"(-1, 4)"); 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_ci#define FLOAT_AS_INTEGER_RATIO_METHODDEF \ 1857db96d56Sopenharmony_ci {"as_integer_ratio", (PyCFunction)float_as_integer_ratio, METH_NOARGS, float_as_integer_ratio__doc__}, 1867db96d56Sopenharmony_ci 1877db96d56Sopenharmony_cistatic PyObject * 1887db96d56Sopenharmony_cifloat_as_integer_ratio_impl(PyObject *self); 1897db96d56Sopenharmony_ci 1907db96d56Sopenharmony_cistatic PyObject * 1917db96d56Sopenharmony_cifloat_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored)) 1927db96d56Sopenharmony_ci{ 1937db96d56Sopenharmony_ci return float_as_integer_ratio_impl(self); 1947db96d56Sopenharmony_ci} 1957db96d56Sopenharmony_ci 1967db96d56Sopenharmony_ciPyDoc_STRVAR(float_new__doc__, 1977db96d56Sopenharmony_ci"float(x=0, /)\n" 1987db96d56Sopenharmony_ci"--\n" 1997db96d56Sopenharmony_ci"\n" 2007db96d56Sopenharmony_ci"Convert a string or number to a floating point number, if possible."); 2017db96d56Sopenharmony_ci 2027db96d56Sopenharmony_cistatic PyObject * 2037db96d56Sopenharmony_cifloat_new_impl(PyTypeObject *type, PyObject *x); 2047db96d56Sopenharmony_ci 2057db96d56Sopenharmony_cistatic PyObject * 2067db96d56Sopenharmony_cifloat_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) 2077db96d56Sopenharmony_ci{ 2087db96d56Sopenharmony_ci PyObject *return_value = NULL; 2097db96d56Sopenharmony_ci PyObject *x = NULL; 2107db96d56Sopenharmony_ci 2117db96d56Sopenharmony_ci if ((type == &PyFloat_Type || 2127db96d56Sopenharmony_ci type->tp_init == PyFloat_Type.tp_init) && 2137db96d56Sopenharmony_ci !_PyArg_NoKeywords("float", kwargs)) { 2147db96d56Sopenharmony_ci goto exit; 2157db96d56Sopenharmony_ci } 2167db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("float", PyTuple_GET_SIZE(args), 0, 1)) { 2177db96d56Sopenharmony_ci goto exit; 2187db96d56Sopenharmony_ci } 2197db96d56Sopenharmony_ci if (PyTuple_GET_SIZE(args) < 1) { 2207db96d56Sopenharmony_ci goto skip_optional; 2217db96d56Sopenharmony_ci } 2227db96d56Sopenharmony_ci x = PyTuple_GET_ITEM(args, 0); 2237db96d56Sopenharmony_ciskip_optional: 2247db96d56Sopenharmony_ci return_value = float_new_impl(type, x); 2257db96d56Sopenharmony_ci 2267db96d56Sopenharmony_ciexit: 2277db96d56Sopenharmony_ci return return_value; 2287db96d56Sopenharmony_ci} 2297db96d56Sopenharmony_ci 2307db96d56Sopenharmony_ciPyDoc_STRVAR(float___getnewargs____doc__, 2317db96d56Sopenharmony_ci"__getnewargs__($self, /)\n" 2327db96d56Sopenharmony_ci"--\n" 2337db96d56Sopenharmony_ci"\n"); 2347db96d56Sopenharmony_ci 2357db96d56Sopenharmony_ci#define FLOAT___GETNEWARGS___METHODDEF \ 2367db96d56Sopenharmony_ci {"__getnewargs__", (PyCFunction)float___getnewargs__, METH_NOARGS, float___getnewargs____doc__}, 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_cistatic PyObject * 2397db96d56Sopenharmony_cifloat___getnewargs___impl(PyObject *self); 2407db96d56Sopenharmony_ci 2417db96d56Sopenharmony_cistatic PyObject * 2427db96d56Sopenharmony_cifloat___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored)) 2437db96d56Sopenharmony_ci{ 2447db96d56Sopenharmony_ci return float___getnewargs___impl(self); 2457db96d56Sopenharmony_ci} 2467db96d56Sopenharmony_ci 2477db96d56Sopenharmony_ciPyDoc_STRVAR(float___getformat____doc__, 2487db96d56Sopenharmony_ci"__getformat__($type, typestr, /)\n" 2497db96d56Sopenharmony_ci"--\n" 2507db96d56Sopenharmony_ci"\n" 2517db96d56Sopenharmony_ci"You probably don\'t want to use this function.\n" 2527db96d56Sopenharmony_ci"\n" 2537db96d56Sopenharmony_ci" typestr\n" 2547db96d56Sopenharmony_ci" Must be \'double\' or \'float\'.\n" 2557db96d56Sopenharmony_ci"\n" 2567db96d56Sopenharmony_ci"It exists mainly to be used in Python\'s test suite.\n" 2577db96d56Sopenharmony_ci"\n" 2587db96d56Sopenharmony_ci"This function returns whichever of \'unknown\', \'IEEE, big-endian\' or \'IEEE,\n" 2597db96d56Sopenharmony_ci"little-endian\' best describes the format of floating point numbers used by the\n" 2607db96d56Sopenharmony_ci"C type named by typestr."); 2617db96d56Sopenharmony_ci 2627db96d56Sopenharmony_ci#define FLOAT___GETFORMAT___METHODDEF \ 2637db96d56Sopenharmony_ci {"__getformat__", (PyCFunction)float___getformat__, METH_O|METH_CLASS, float___getformat____doc__}, 2647db96d56Sopenharmony_ci 2657db96d56Sopenharmony_cistatic PyObject * 2667db96d56Sopenharmony_cifloat___getformat___impl(PyTypeObject *type, const char *typestr); 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_cistatic PyObject * 2697db96d56Sopenharmony_cifloat___getformat__(PyTypeObject *type, PyObject *arg) 2707db96d56Sopenharmony_ci{ 2717db96d56Sopenharmony_ci PyObject *return_value = NULL; 2727db96d56Sopenharmony_ci const char *typestr; 2737db96d56Sopenharmony_ci 2747db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 2757db96d56Sopenharmony_ci _PyArg_BadArgument("__getformat__", "argument", "str", arg); 2767db96d56Sopenharmony_ci goto exit; 2777db96d56Sopenharmony_ci } 2787db96d56Sopenharmony_ci Py_ssize_t typestr_length; 2797db96d56Sopenharmony_ci typestr = PyUnicode_AsUTF8AndSize(arg, &typestr_length); 2807db96d56Sopenharmony_ci if (typestr == NULL) { 2817db96d56Sopenharmony_ci goto exit; 2827db96d56Sopenharmony_ci } 2837db96d56Sopenharmony_ci if (strlen(typestr) != (size_t)typestr_length) { 2847db96d56Sopenharmony_ci PyErr_SetString(PyExc_ValueError, "embedded null character"); 2857db96d56Sopenharmony_ci goto exit; 2867db96d56Sopenharmony_ci } 2877db96d56Sopenharmony_ci return_value = float___getformat___impl(type, typestr); 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ciexit: 2907db96d56Sopenharmony_ci return return_value; 2917db96d56Sopenharmony_ci} 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_ciPyDoc_STRVAR(float___format____doc__, 2947db96d56Sopenharmony_ci"__format__($self, format_spec, /)\n" 2957db96d56Sopenharmony_ci"--\n" 2967db96d56Sopenharmony_ci"\n" 2977db96d56Sopenharmony_ci"Formats the float according to format_spec."); 2987db96d56Sopenharmony_ci 2997db96d56Sopenharmony_ci#define FLOAT___FORMAT___METHODDEF \ 3007db96d56Sopenharmony_ci {"__format__", (PyCFunction)float___format__, METH_O, float___format____doc__}, 3017db96d56Sopenharmony_ci 3027db96d56Sopenharmony_cistatic PyObject * 3037db96d56Sopenharmony_cifloat___format___impl(PyObject *self, PyObject *format_spec); 3047db96d56Sopenharmony_ci 3057db96d56Sopenharmony_cistatic PyObject * 3067db96d56Sopenharmony_cifloat___format__(PyObject *self, PyObject *arg) 3077db96d56Sopenharmony_ci{ 3087db96d56Sopenharmony_ci PyObject *return_value = NULL; 3097db96d56Sopenharmony_ci PyObject *format_spec; 3107db96d56Sopenharmony_ci 3117db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 3127db96d56Sopenharmony_ci _PyArg_BadArgument("__format__", "argument", "str", arg); 3137db96d56Sopenharmony_ci goto exit; 3147db96d56Sopenharmony_ci } 3157db96d56Sopenharmony_ci if (PyUnicode_READY(arg) == -1) { 3167db96d56Sopenharmony_ci goto exit; 3177db96d56Sopenharmony_ci } 3187db96d56Sopenharmony_ci format_spec = arg; 3197db96d56Sopenharmony_ci return_value = float___format___impl(self, format_spec); 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ciexit: 3227db96d56Sopenharmony_ci return return_value; 3237db96d56Sopenharmony_ci} 3247db96d56Sopenharmony_ci/*[clinic end generated code: output=a6e6467624a92a43 input=a9049054013a1b77]*/ 325