cpython/Include
Tim Peters 47e52ee0c5 SF patch 936813: fast modular exponentiation
This checkin is adapted from part 2 (of 3) of Trevor Perrin's patch set.

BACKWARD INCOMPATIBILITY:  SHIFT must now be divisible by 5.  AFAIK,
nobody will care.  long_pow() could be complicated to worm around that,
if necessary.

long_pow():
  - BUGFIX:  This leaked the base and power when the power was negative
    (and so the computation delegated to float pow).
  - Instead of doing right-to-left exponentiation, do left-to-right.  This
    is more efficient for small bases, which is the common case.
  - In addition, if the exponent is large (more than FIVEARY_CUTOFF
    digits), precompute [a**i % c for i in range(32)], and go left to
    right 5 bits at a time.
l_divmod():
  - The signature changed so that callers who don't want the quotient,
    or don't want the remainder, can pass NULL in the slot they don't
    want.  This saves them from having to declare a vrbl for unwanted
    stuff, and remembering to decref it.
long_mod(), long_div(), long_classic_div():
  - Adjust to new l_divmod() signature, and simplified as a result.
2004-08-30 02:44:38 +00:00
..
abstract.h Make PySequence_Fast_ITEMS public. (Thanks Skip.) 2004-03-12 16:38:17 +00:00
bitset.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
boolobject.h SF bug 994255: Py_RETURN_NONE causes too much warnings 2004-07-22 01:46:43 +00:00
bufferobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
cellobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
ceval.h Patch #966493: Cleanup generator/eval_frame exposure. 2004-06-27 15:43:12 +00:00
classobject.h Typo repair. 2003-04-08 18:47:21 +00:00
cobject.h Make CObjects mutable. Fixes #477441. 2003-10-19 18:30:01 +00:00
codecs.h PEP 293 implemention (from SF patch http://www.python.org/sf/432401) 2002-09-02 13:14:32 +00:00
compile.h This is my patch #876198 plus a NEWS entry and a header frob. 2004-02-12 15:28:27 +00:00
complexobject.h SF # 607253, header file problems by Ralf W. Grosse-Kunstleve 2002-10-04 12:43:02 +00:00
cStringIO.h SF bug #670229: doc improvement for cStringIO.h 2003-01-19 00:45:01 +00:00
datetime.h Add missing backslash for PyDateTimeAPI->Delta_FromDelta() macro. 2004-06-28 00:48:30 +00:00
descrobject.h SF 548651: Fix the METH_CLASS implementation. 2002-12-09 22:56:13 +00:00
dictobject.h Fix name problem in previous checkin: Dict not List 2003-12-26 17:17:49 +00:00
enumobject.h Implement and apply PEP 322, reverse iteration 2003-11-06 14:06:48 +00:00
errcode.h provide less mysterious error messages when seeing end-of-line in 2002-08-15 01:20:16 +00:00
eval.h - New function sys.call_tracing() allows pdb to debug code 2003-04-09 19:06:21 +00:00
fileobject.h Add weakref support to array.array and file objects. 2004-05-31 00:35:52 +00:00
floatobject.h New private API functions _PyFloat_{Pack,Unpack}(4,8}. This is a 2003-03-20 20:53:32 +00:00
frameobject.h SF Bug #215126: Over restricted type checking on eval() function 2004-07-02 06:41:07 +00:00
funcobject.h Provide __module__ attributes for functions defined in C and Python. 2003-01-31 18:33:18 +00:00
genobject.h Patch #966493: Cleanup generator/eval_frame exposure. 2004-06-27 15:43:12 +00:00
graminit.h PEP-0318, @decorator-style. In Guido's words: 2004-08-02 06:10:11 +00:00
grammar.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
import.h Excise DL_IMPORT/EXPORT from object.h, and related files. This patch 2002-07-29 13:42:14 +00:00
intobject.h SF # 595026: support for masks in getargs.c. 2003-04-17 18:55:45 +00:00
intrcheck.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
iterobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
listobject.h Fix typo in comment 2004-08-01 22:45:27 +00:00
longintrepr.h SF patch 936813: fast modular exponentiation 2004-08-30 02:44:38 +00:00
longobject.h SF # 595026: support for masks in getargs.c. 2003-04-17 18:55:45 +00:00
marshal.h Patch #923098: Share interned strings in marshal. 2004-06-27 16:51:46 +00:00
metagrammar.h REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
methodobject.h * Added a new method flag, METH_COEXIST. 2003-12-13 11:26:12 +00:00
modsupport.h Add PyArg_VaParseTupleAndKeywords(). Document this function and 2004-07-10 22:20:32 +00:00
moduleobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
node.h PEP-0318, @decorator-style. In Guido's words: 2004-08-02 06:10:11 +00:00
object.h SF bug 994255: Py_RETURN_NONE causes too much warnings 2004-07-22 01:46:43 +00:00
objimpl.h Formalize that the Py_VISIT macro requires that the tp_traverse 2004-07-15 04:05:59 +00:00
opcode.h Install two code generation optimizations that depend on NOP. 2004-06-21 16:31:15 +00:00
osdefs.h Getting rid of all the code inside #ifdef macintosh too. 2003-11-20 01:44:59 +00:00
parsetok.h Changes from Jonathan Riehl to allow his pgen extension (PEP 269) to 2003-04-17 14:55:42 +00:00
patchlevel.h on to a2! 2004-08-03 15:57:39 +00:00
pgen.h Changes from Jonathan Riehl to allow his pgen extension (PEP 269) to 2003-04-17 14:55:42 +00:00
pgenheaders.h Use Py_GCC_ATTRIBUTE instead of __attribute__. Compilers other than GCC 2002-09-15 14:09:54 +00:00
py_curses.h FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions 2003-06-29 15:46:21 +00:00
pydebug.h Update comment, QnewFlag will go away in 3.0, not 2.3 2003-01-13 16:08:56 +00:00
pyerrors.h Stop producing or using OverflowWarning. PEP 237 thought this would 2004-08-25 02:14:08 +00:00
pyfpe.h Some patches to Lee Busby's fpectl mods that accidentally didn't make it 1997-10-20 23:50:01 +00:00
pygetopt.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
pymactoolbox.h Moved PyMac_GetScript() to _localemodule, which is the only place where 2004-07-15 13:31:39 +00:00
pymem.h Remove MALLOC_ZERO_RETURNS_NULL. 2002-11-23 09:13:40 +00:00
pyport.h Add a workaround for a problem that UTF-8 strings can be corrupted 2004-08-04 06:33:51 +00:00
pystate.h Patch #510695: Add TSC profiling for the VM. 2004-06-08 08:17:44 +00:00
pystrtod.h Patch #1006003: Cygwin standard module build problems 2004-08-09 15:02:30 +00:00
Python.h Use intptr_t/uintptr_t on Windows 2004-07-27 15:57:24 +00:00
pythonrun.h Patch #900727: Add Py_InitializeEx to allow embedding without signals. 2004-08-19 11:31:58 +00:00
pythread.h New PyGILState_ API - implements pep 311, from patch 684256. 2003-04-19 15:41:53 +00:00
rangeobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
setobject.h Make sets and deques weak referencable. 2004-05-30 07:26:47 +00:00
sliceobject.h Excise DL_EXPORT from Include. 2002-08-12 07:21:58 +00:00
stringobject.h Use appropriate macros not the deprecated DL_IMPORT/DL_EXPORT macros 2003-07-01 20:15:21 +00:00
structmember.h remove support for missing ANSI C header files (limits.h, stddef.h, etc). 2004-02-10 16:50:21 +00:00
structseq.h Clean up some whitespace to be consistent with Python's C style. 2002-10-17 19:48:27 +00:00
symtable.h SF patch #872326: Generator expression implementation 2004-05-19 08:20:33 +00:00
sysmodule.h Use Py_GCC_ATTRIBUTE instead of __attribute__. Compilers other than GCC 2002-09-15 14:09:54 +00:00
timefuncs.h Bug 975996: Add _PyTime_DoubleToTimet to C API 2004-06-20 02:50:16 +00:00
token.h PEP-0318, @decorator-style. In Guido's words: 2004-08-02 06:10:11 +00:00
traceback.h Moved tracebackobject to traceback.h, Closes SF Bug #497067 2004-03-21 18:37:23 +00:00
tupleobject.h Extended tuple's C API to include a new function, PyTuple_Pack() that is 2003-10-12 18:24:34 +00:00
ucnhash.h refactored the unicodeobject/ucnhash interface, to hide the 2001-01-19 09:45:02 +00:00
unicodeobject.h SF #989185: Drop unicode.iswide() and unicode.width() and add 2004-08-04 07:38:35 +00:00
weakrefobject.h Make weak references subclassable: 2004-07-02 18:57:45 +00:00