17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(_bisect_bisect_right__doc__, 67db96d56Sopenharmony_ci"bisect_right($module, /, a, x, lo=0, hi=None, *, key=None)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Return the index where to insert item x in list a, assuming a is sorted.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci"The return value i is such that all e in a[:i] have e <= x, and all e in\n" 127db96d56Sopenharmony_ci"a[i:] have e > x. So if x already appears in the list, a.insert(i, x) will\n" 137db96d56Sopenharmony_ci"insert just after the rightmost x already there.\n" 147db96d56Sopenharmony_ci"\n" 157db96d56Sopenharmony_ci"Optional args lo (default 0) and hi (default len(a)) bound the\n" 167db96d56Sopenharmony_ci"slice of a to be searched."); 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci#define _BISECT_BISECT_RIGHT_METHODDEF \ 197db96d56Sopenharmony_ci {"bisect_right", _PyCFunction_CAST(_bisect_bisect_right), METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_right__doc__}, 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_cistatic Py_ssize_t 227db96d56Sopenharmony_ci_bisect_bisect_right_impl(PyObject *module, PyObject *a, PyObject *x, 237db96d56Sopenharmony_ci Py_ssize_t lo, Py_ssize_t hi, PyObject *key); 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_cistatic PyObject * 267db96d56Sopenharmony_ci_bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 277db96d56Sopenharmony_ci{ 287db96d56Sopenharmony_ci PyObject *return_value = NULL; 297db96d56Sopenharmony_ci static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; 307db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "bisect_right", 0}; 317db96d56Sopenharmony_ci PyObject *argsbuf[5]; 327db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 337db96d56Sopenharmony_ci PyObject *a; 347db96d56Sopenharmony_ci PyObject *x; 357db96d56Sopenharmony_ci Py_ssize_t lo = 0; 367db96d56Sopenharmony_ci Py_ssize_t hi = -1; 377db96d56Sopenharmony_ci PyObject *key = Py_None; 387db96d56Sopenharmony_ci Py_ssize_t _return_value; 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); 417db96d56Sopenharmony_ci if (!args) { 427db96d56Sopenharmony_ci goto exit; 437db96d56Sopenharmony_ci } 447db96d56Sopenharmony_ci a = args[0]; 457db96d56Sopenharmony_ci x = args[1]; 467db96d56Sopenharmony_ci if (!noptargs) { 477db96d56Sopenharmony_ci goto skip_optional_pos; 487db96d56Sopenharmony_ci } 497db96d56Sopenharmony_ci if (args[2]) { 507db96d56Sopenharmony_ci { 517db96d56Sopenharmony_ci Py_ssize_t ival = -1; 527db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[2]); 537db96d56Sopenharmony_ci if (iobj != NULL) { 547db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 557db96d56Sopenharmony_ci Py_DECREF(iobj); 567db96d56Sopenharmony_ci } 577db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 587db96d56Sopenharmony_ci goto exit; 597db96d56Sopenharmony_ci } 607db96d56Sopenharmony_ci lo = ival; 617db96d56Sopenharmony_ci } 627db96d56Sopenharmony_ci if (!--noptargs) { 637db96d56Sopenharmony_ci goto skip_optional_pos; 647db96d56Sopenharmony_ci } 657db96d56Sopenharmony_ci } 667db96d56Sopenharmony_ci if (args[3]) { 677db96d56Sopenharmony_ci if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) { 687db96d56Sopenharmony_ci goto exit; 697db96d56Sopenharmony_ci } 707db96d56Sopenharmony_ci if (!--noptargs) { 717db96d56Sopenharmony_ci goto skip_optional_pos; 727db96d56Sopenharmony_ci } 737db96d56Sopenharmony_ci } 747db96d56Sopenharmony_ciskip_optional_pos: 757db96d56Sopenharmony_ci if (!noptargs) { 767db96d56Sopenharmony_ci goto skip_optional_kwonly; 777db96d56Sopenharmony_ci } 787db96d56Sopenharmony_ci key = args[4]; 797db96d56Sopenharmony_ciskip_optional_kwonly: 807db96d56Sopenharmony_ci _return_value = _bisect_bisect_right_impl(module, a, x, lo, hi, key); 817db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 827db96d56Sopenharmony_ci goto exit; 837db96d56Sopenharmony_ci } 847db96d56Sopenharmony_ci return_value = PyLong_FromSsize_t(_return_value); 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ciexit: 877db96d56Sopenharmony_ci return return_value; 887db96d56Sopenharmony_ci} 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ciPyDoc_STRVAR(_bisect_insort_right__doc__, 917db96d56Sopenharmony_ci"insort_right($module, /, a, x, lo=0, hi=None, *, key=None)\n" 927db96d56Sopenharmony_ci"--\n" 937db96d56Sopenharmony_ci"\n" 947db96d56Sopenharmony_ci"Insert item x in list a, and keep it sorted assuming a is sorted.\n" 957db96d56Sopenharmony_ci"\n" 967db96d56Sopenharmony_ci"If x is already in a, insert it to the right of the rightmost x.\n" 977db96d56Sopenharmony_ci"\n" 987db96d56Sopenharmony_ci"Optional args lo (default 0) and hi (default len(a)) bound the\n" 997db96d56Sopenharmony_ci"slice of a to be searched."); 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ci#define _BISECT_INSORT_RIGHT_METHODDEF \ 1027db96d56Sopenharmony_ci {"insort_right", _PyCFunction_CAST(_bisect_insort_right), METH_FASTCALL|METH_KEYWORDS, _bisect_insort_right__doc__}, 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_cistatic PyObject * 1057db96d56Sopenharmony_ci_bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x, 1067db96d56Sopenharmony_ci Py_ssize_t lo, Py_ssize_t hi, PyObject *key); 1077db96d56Sopenharmony_ci 1087db96d56Sopenharmony_cistatic PyObject * 1097db96d56Sopenharmony_ci_bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1107db96d56Sopenharmony_ci{ 1117db96d56Sopenharmony_ci PyObject *return_value = NULL; 1127db96d56Sopenharmony_ci static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; 1137db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "insort_right", 0}; 1147db96d56Sopenharmony_ci PyObject *argsbuf[5]; 1157db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 1167db96d56Sopenharmony_ci PyObject *a; 1177db96d56Sopenharmony_ci PyObject *x; 1187db96d56Sopenharmony_ci Py_ssize_t lo = 0; 1197db96d56Sopenharmony_ci Py_ssize_t hi = -1; 1207db96d56Sopenharmony_ci PyObject *key = Py_None; 1217db96d56Sopenharmony_ci 1227db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); 1237db96d56Sopenharmony_ci if (!args) { 1247db96d56Sopenharmony_ci goto exit; 1257db96d56Sopenharmony_ci } 1267db96d56Sopenharmony_ci a = args[0]; 1277db96d56Sopenharmony_ci x = args[1]; 1287db96d56Sopenharmony_ci if (!noptargs) { 1297db96d56Sopenharmony_ci goto skip_optional_pos; 1307db96d56Sopenharmony_ci } 1317db96d56Sopenharmony_ci if (args[2]) { 1327db96d56Sopenharmony_ci { 1337db96d56Sopenharmony_ci Py_ssize_t ival = -1; 1347db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[2]); 1357db96d56Sopenharmony_ci if (iobj != NULL) { 1367db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 1377db96d56Sopenharmony_ci Py_DECREF(iobj); 1387db96d56Sopenharmony_ci } 1397db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 1407db96d56Sopenharmony_ci goto exit; 1417db96d56Sopenharmony_ci } 1427db96d56Sopenharmony_ci lo = ival; 1437db96d56Sopenharmony_ci } 1447db96d56Sopenharmony_ci if (!--noptargs) { 1457db96d56Sopenharmony_ci goto skip_optional_pos; 1467db96d56Sopenharmony_ci } 1477db96d56Sopenharmony_ci } 1487db96d56Sopenharmony_ci if (args[3]) { 1497db96d56Sopenharmony_ci if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) { 1507db96d56Sopenharmony_ci goto exit; 1517db96d56Sopenharmony_ci } 1527db96d56Sopenharmony_ci if (!--noptargs) { 1537db96d56Sopenharmony_ci goto skip_optional_pos; 1547db96d56Sopenharmony_ci } 1557db96d56Sopenharmony_ci } 1567db96d56Sopenharmony_ciskip_optional_pos: 1577db96d56Sopenharmony_ci if (!noptargs) { 1587db96d56Sopenharmony_ci goto skip_optional_kwonly; 1597db96d56Sopenharmony_ci } 1607db96d56Sopenharmony_ci key = args[4]; 1617db96d56Sopenharmony_ciskip_optional_kwonly: 1627db96d56Sopenharmony_ci return_value = _bisect_insort_right_impl(module, a, x, lo, hi, key); 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ciexit: 1657db96d56Sopenharmony_ci return return_value; 1667db96d56Sopenharmony_ci} 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ciPyDoc_STRVAR(_bisect_bisect_left__doc__, 1697db96d56Sopenharmony_ci"bisect_left($module, /, a, x, lo=0, hi=None, *, key=None)\n" 1707db96d56Sopenharmony_ci"--\n" 1717db96d56Sopenharmony_ci"\n" 1727db96d56Sopenharmony_ci"Return the index where to insert item x in list a, assuming a is sorted.\n" 1737db96d56Sopenharmony_ci"\n" 1747db96d56Sopenharmony_ci"The return value i is such that all e in a[:i] have e < x, and all e in\n" 1757db96d56Sopenharmony_ci"a[i:] have e >= x. So if x already appears in the list, a.insert(i, x) will\n" 1767db96d56Sopenharmony_ci"insert just before the leftmost x already there.\n" 1777db96d56Sopenharmony_ci"\n" 1787db96d56Sopenharmony_ci"Optional args lo (default 0) and hi (default len(a)) bound the\n" 1797db96d56Sopenharmony_ci"slice of a to be searched."); 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci#define _BISECT_BISECT_LEFT_METHODDEF \ 1827db96d56Sopenharmony_ci {"bisect_left", _PyCFunction_CAST(_bisect_bisect_left), METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_left__doc__}, 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_cistatic Py_ssize_t 1857db96d56Sopenharmony_ci_bisect_bisect_left_impl(PyObject *module, PyObject *a, PyObject *x, 1867db96d56Sopenharmony_ci Py_ssize_t lo, Py_ssize_t hi, PyObject *key); 1877db96d56Sopenharmony_ci 1887db96d56Sopenharmony_cistatic PyObject * 1897db96d56Sopenharmony_ci_bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1907db96d56Sopenharmony_ci{ 1917db96d56Sopenharmony_ci PyObject *return_value = NULL; 1927db96d56Sopenharmony_ci static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; 1937db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "bisect_left", 0}; 1947db96d56Sopenharmony_ci PyObject *argsbuf[5]; 1957db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 1967db96d56Sopenharmony_ci PyObject *a; 1977db96d56Sopenharmony_ci PyObject *x; 1987db96d56Sopenharmony_ci Py_ssize_t lo = 0; 1997db96d56Sopenharmony_ci Py_ssize_t hi = -1; 2007db96d56Sopenharmony_ci PyObject *key = Py_None; 2017db96d56Sopenharmony_ci Py_ssize_t _return_value; 2027db96d56Sopenharmony_ci 2037db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); 2047db96d56Sopenharmony_ci if (!args) { 2057db96d56Sopenharmony_ci goto exit; 2067db96d56Sopenharmony_ci } 2077db96d56Sopenharmony_ci a = args[0]; 2087db96d56Sopenharmony_ci x = args[1]; 2097db96d56Sopenharmony_ci if (!noptargs) { 2107db96d56Sopenharmony_ci goto skip_optional_pos; 2117db96d56Sopenharmony_ci } 2127db96d56Sopenharmony_ci if (args[2]) { 2137db96d56Sopenharmony_ci { 2147db96d56Sopenharmony_ci Py_ssize_t ival = -1; 2157db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[2]); 2167db96d56Sopenharmony_ci if (iobj != NULL) { 2177db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 2187db96d56Sopenharmony_ci Py_DECREF(iobj); 2197db96d56Sopenharmony_ci } 2207db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 2217db96d56Sopenharmony_ci goto exit; 2227db96d56Sopenharmony_ci } 2237db96d56Sopenharmony_ci lo = ival; 2247db96d56Sopenharmony_ci } 2257db96d56Sopenharmony_ci if (!--noptargs) { 2267db96d56Sopenharmony_ci goto skip_optional_pos; 2277db96d56Sopenharmony_ci } 2287db96d56Sopenharmony_ci } 2297db96d56Sopenharmony_ci if (args[3]) { 2307db96d56Sopenharmony_ci if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) { 2317db96d56Sopenharmony_ci goto exit; 2327db96d56Sopenharmony_ci } 2337db96d56Sopenharmony_ci if (!--noptargs) { 2347db96d56Sopenharmony_ci goto skip_optional_pos; 2357db96d56Sopenharmony_ci } 2367db96d56Sopenharmony_ci } 2377db96d56Sopenharmony_ciskip_optional_pos: 2387db96d56Sopenharmony_ci if (!noptargs) { 2397db96d56Sopenharmony_ci goto skip_optional_kwonly; 2407db96d56Sopenharmony_ci } 2417db96d56Sopenharmony_ci key = args[4]; 2427db96d56Sopenharmony_ciskip_optional_kwonly: 2437db96d56Sopenharmony_ci _return_value = _bisect_bisect_left_impl(module, a, x, lo, hi, key); 2447db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 2457db96d56Sopenharmony_ci goto exit; 2467db96d56Sopenharmony_ci } 2477db96d56Sopenharmony_ci return_value = PyLong_FromSsize_t(_return_value); 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ciexit: 2507db96d56Sopenharmony_ci return return_value; 2517db96d56Sopenharmony_ci} 2527db96d56Sopenharmony_ci 2537db96d56Sopenharmony_ciPyDoc_STRVAR(_bisect_insort_left__doc__, 2547db96d56Sopenharmony_ci"insort_left($module, /, a, x, lo=0, hi=None, *, key=None)\n" 2557db96d56Sopenharmony_ci"--\n" 2567db96d56Sopenharmony_ci"\n" 2577db96d56Sopenharmony_ci"Insert item x in list a, and keep it sorted assuming a is sorted.\n" 2587db96d56Sopenharmony_ci"\n" 2597db96d56Sopenharmony_ci"If x is already in a, insert it to the left of the leftmost x.\n" 2607db96d56Sopenharmony_ci"\n" 2617db96d56Sopenharmony_ci"Optional args lo (default 0) and hi (default len(a)) bound the\n" 2627db96d56Sopenharmony_ci"slice of a to be searched."); 2637db96d56Sopenharmony_ci 2647db96d56Sopenharmony_ci#define _BISECT_INSORT_LEFT_METHODDEF \ 2657db96d56Sopenharmony_ci {"insort_left", _PyCFunction_CAST(_bisect_insort_left), METH_FASTCALL|METH_KEYWORDS, _bisect_insort_left__doc__}, 2667db96d56Sopenharmony_ci 2677db96d56Sopenharmony_cistatic PyObject * 2687db96d56Sopenharmony_ci_bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x, 2697db96d56Sopenharmony_ci Py_ssize_t lo, Py_ssize_t hi, PyObject *key); 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_cistatic PyObject * 2727db96d56Sopenharmony_ci_bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 2737db96d56Sopenharmony_ci{ 2747db96d56Sopenharmony_ci PyObject *return_value = NULL; 2757db96d56Sopenharmony_ci static const char * const _keywords[] = {"a", "x", "lo", "hi", "key", NULL}; 2767db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "insort_left", 0}; 2777db96d56Sopenharmony_ci PyObject *argsbuf[5]; 2787db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 2797db96d56Sopenharmony_ci PyObject *a; 2807db96d56Sopenharmony_ci PyObject *x; 2817db96d56Sopenharmony_ci Py_ssize_t lo = 0; 2827db96d56Sopenharmony_ci Py_ssize_t hi = -1; 2837db96d56Sopenharmony_ci PyObject *key = Py_None; 2847db96d56Sopenharmony_ci 2857db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf); 2867db96d56Sopenharmony_ci if (!args) { 2877db96d56Sopenharmony_ci goto exit; 2887db96d56Sopenharmony_ci } 2897db96d56Sopenharmony_ci a = args[0]; 2907db96d56Sopenharmony_ci x = args[1]; 2917db96d56Sopenharmony_ci if (!noptargs) { 2927db96d56Sopenharmony_ci goto skip_optional_pos; 2937db96d56Sopenharmony_ci } 2947db96d56Sopenharmony_ci if (args[2]) { 2957db96d56Sopenharmony_ci { 2967db96d56Sopenharmony_ci Py_ssize_t ival = -1; 2977db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[2]); 2987db96d56Sopenharmony_ci if (iobj != NULL) { 2997db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 3007db96d56Sopenharmony_ci Py_DECREF(iobj); 3017db96d56Sopenharmony_ci } 3027db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 3037db96d56Sopenharmony_ci goto exit; 3047db96d56Sopenharmony_ci } 3057db96d56Sopenharmony_ci lo = ival; 3067db96d56Sopenharmony_ci } 3077db96d56Sopenharmony_ci if (!--noptargs) { 3087db96d56Sopenharmony_ci goto skip_optional_pos; 3097db96d56Sopenharmony_ci } 3107db96d56Sopenharmony_ci } 3117db96d56Sopenharmony_ci if (args[3]) { 3127db96d56Sopenharmony_ci if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) { 3137db96d56Sopenharmony_ci goto exit; 3147db96d56Sopenharmony_ci } 3157db96d56Sopenharmony_ci if (!--noptargs) { 3167db96d56Sopenharmony_ci goto skip_optional_pos; 3177db96d56Sopenharmony_ci } 3187db96d56Sopenharmony_ci } 3197db96d56Sopenharmony_ciskip_optional_pos: 3207db96d56Sopenharmony_ci if (!noptargs) { 3217db96d56Sopenharmony_ci goto skip_optional_kwonly; 3227db96d56Sopenharmony_ci } 3237db96d56Sopenharmony_ci key = args[4]; 3247db96d56Sopenharmony_ciskip_optional_kwonly: 3257db96d56Sopenharmony_ci return_value = _bisect_insort_left_impl(module, a, x, lo, hi, key); 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_ciexit: 3287db96d56Sopenharmony_ci return return_value; 3297db96d56Sopenharmony_ci} 3307db96d56Sopenharmony_ci/*[clinic end generated code: output=ee8c32ff8d3d1fac input=a9049054013a1b77]*/ 331