PyIntCompare */
| 27220 | |
| 27221 | /* PyIntCompare */ |
| 27222 | static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) { |
| 27223 | CYTHON_MAYBE_UNUSED_VAR(intval); |
| 27224 | CYTHON_UNUSED_VAR(inplace); |
| 27225 | if (op1 == op2) { |
| 27226 | return 1; |
| 27227 | } |
| 27228 | #if PY_MAJOR_VERSION < 3 |
| 27229 | if (likely(PyInt_CheckExact(op1))) { |
| 27230 | const long b = intval; |
| 27231 | long a = PyInt_AS_LONG(op1); |
| 27232 | return (a == b); |
| 27233 | } |
| 27234 | #endif |
| 27235 | #if CYTHON_USE_PYLONG_INTERNALS |
| 27236 | if (likely(PyLong_CheckExact(op1))) { |
| 27237 | int unequal; |
| 27238 | unsigned long uintval; |
| 27239 | Py_ssize_t size = __Pyx_PyLong_DigitCount(op1); |
| 27240 | const digit* digits = __Pyx_PyLong_Digits(op1); |
| 27241 | if (intval == 0) { |
| 27242 | return (__Pyx_PyLong_IsZero(op1) == 1); |
| 27243 | } else if (intval < 0) { |
| 27244 | if (__Pyx_PyLong_IsNonNeg(op1)) |
| 27245 | return 0; |
| 27246 | intval = -intval; |
| 27247 | } else { |
| 27248 | if (__Pyx_PyLong_IsNeg(op1)) |
| 27249 | return 0; |
| 27250 | } |
| 27251 | uintval = (unsigned long) intval; |
| 27252 | #if PyLong_SHIFT * 4 < SIZEOF_LONG*8 |
| 27253 | if (uintval >> (PyLong_SHIFT * 4)) { |
| 27254 | unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) |
| 27255 | | (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)); |
| 27256 | } else |
| 27257 | #endif |
| 27258 | #if PyLong_SHIFT * 3 < SIZEOF_LONG*8 |
| 27259 | if (uintval >> (PyLong_SHIFT * 3)) { |
| 27260 | unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) |
| 27261 | | (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)); |
| 27262 | } else |
| 27263 | #endif |
| 27264 | #if PyLong_SHIFT * 2 < SIZEOF_LONG*8 |
| 27265 | if (uintval >> (PyLong_SHIFT * 2)) { |
| 27266 | unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) |
| 27267 | | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); |
| 27268 | } else |
| 27269 | #endif |
| 27270 | #if PyLong_SHIFT * 1 < SIZEOF_LONG*8 |
| 27271 | if (uintval >> (PyLong_SHIFT * 1)) { |
| 27272 | unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) |
| 27273 | | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); |
| 27274 | } else |
| 27275 | #endif |
| 27276 | unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); |
| 27277 | return (unequal == 0); |
| 27278 | } |
| 27279 | #endif |
no test coverage detected