Spaces:
Runtime error
Runtime error
| /////////////// CDivisionWarning.proto /////////////// | |
| static int __Pyx_cdivision_warning(const char *, int); /* proto */ | |
| /////////////// CDivisionWarning /////////////// | |
| static int __Pyx_cdivision_warning(const char *filename, int lineno) { | |
| // avoid compiler warnings | |
| filename++; lineno++; | |
| return PyErr_Warn(PyExc_RuntimeWarning, | |
| "division with oppositely signed operands, C and Python semantics differ"); | |
| return PyErr_WarnExplicit(PyExc_RuntimeWarning, | |
| "division with oppositely signed operands, C and Python semantics differ", | |
| filename, | |
| lineno, | |
| __Pyx_MODULE_NAME, | |
| NULL); | |
| } | |
| /////////////// DivInt.proto /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_div_%(type_name)s(%(type)s, %(type)s); /* proto */ | |
| /////////////// DivInt /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_div_%(type_name)s(%(type)s a, %(type)s b) { | |
| %(type)s q = a / b; | |
| %(type)s r = a - q*b; | |
| q -= ((r != 0) & ((r ^ b) < 0)); | |
| return q; | |
| } | |
| /////////////// ModInt.proto /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s, %(type)s); /* proto */ | |
| /////////////// ModInt /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s a, %(type)s b) { | |
| %(type)s r = a %% b; | |
| r += ((r != 0) & ((r ^ b) < 0)) * b; | |
| return r; | |
| } | |
| /////////////// ModFloat.proto /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s, %(type)s); /* proto */ | |
| /////////////// ModFloat /////////////// | |
| static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s a, %(type)s b) { | |
| %(type)s r = fmod%(math_h_modifier)s(a, b); | |
| r += ((r != 0) & ((r < 0) ^ (b < 0))) * b; | |
| return r; | |
| } | |
| /////////////// IntPow.proto /////////////// | |
| static CYTHON_INLINE %(type)s %(func_name)s(%(type)s, %(type)s); /* proto */ | |
| /////////////// IntPow /////////////// | |
| static CYTHON_INLINE %(type)s %(func_name)s(%(type)s b, %(type)s e) { | |
| %(type)s t = b; | |
| switch (e) { | |
| case 3: | |
| t *= b; | |
| CYTHON_FALLTHROUGH; | |
| case 2: | |
| t *= b; | |
| CYTHON_FALLTHROUGH; | |
| case 1: | |
| return t; | |
| case 0: | |
| return 1; | |
| } | |
| if (unlikely(e<0)) return 0; | |
| t = 1; | |
| while (likely(e)) { | |
| t *= (b * (e&1)) | ((~e)&1); /* 1 or b */ | |
| b *= b; | |
| e >>= 1; | |
| } | |
| return t; | |
| } | |