MCPcopy Create free account
hub / github.com/OpenDriveLab/OpenLane / __Pyx_PyInt_EqObjC

Function __Pyx_PyInt_EqObjC

eval/CIPO_evaluation/pycocotools/_mask.c:11477–11541  ·  view source on GitHub ↗

PyIntCompare */

Source from the content-addressed store, hash-verified

11475
11476/* PyIntCompare */
11477static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
11478 if (op1 == op2) {
11479 Py_RETURN_TRUE;
11480 }
11481 #if PY_MAJOR_VERSION < 3
11482 if (likely(PyInt_CheckExact(op1))) {
11483 const long b = intval;
11484 long a = PyInt_AS_LONG(op1);
11485 if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
11486 }
11487 #endif
11488 #if CYTHON_USE_PYLONG_INTERNALS
11489 if (likely(PyLong_CheckExact(op1))) {
11490 int unequal;
11491 unsigned long uintval;
11492 Py_ssize_t size = Py_SIZE(op1);
11493 const digit* digits = ((PyLongObject*)op1)->ob_digit;
11494 if (intval == 0) {
11495 if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
11496 } else if (intval < 0) {
11497 if (size >= 0)
11498 Py_RETURN_FALSE;
11499 intval = -intval;
11500 size = -size;
11501 } else {
11502 if (size <= 0)
11503 Py_RETURN_FALSE;
11504 }
11505 uintval = (unsigned long) intval;
11506#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
11507 if (uintval >> (PyLong_SHIFT * 4)) {
11508 unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
11509 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
11510 } else
11511#endif
11512#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
11513 if (uintval >> (PyLong_SHIFT * 3)) {
11514 unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
11515 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
11516 } else
11517#endif
11518#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
11519 if (uintval >> (PyLong_SHIFT * 2)) {
11520 unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
11521 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
11522 } else
11523#endif
11524#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
11525 if (uintval >> (PyLong_SHIFT * 1)) {
11526 unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
11527 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
11528 } else
11529#endif
11530 unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
11531 if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
11532 }
11533 #endif
11534 if (PyFloat_CheckExact(op1)) {

Calls

no outgoing calls

Tested by

no test coverage detected