annotate Modules/_math.h @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 08418369da7b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57866
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
1 double _Py_acosh(double x);
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
2 double _Py_asinh(double x);
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
3 double _Py_atanh(double x);
57758
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
4 double _Py_expm1(double x);
57866
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
5 double _Py_log1p(double x);
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
6
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
7 #ifdef HAVE_ACOSH
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
8 #define m_acosh acosh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
9 #else
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
10 /* if the system doesn't have acosh, use the substitute
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
11 function defined in Modules/_math.c. */
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
12 #define m_acosh _Py_acosh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
13 #endif
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
14
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
15 #ifdef HAVE_ASINH
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
16 #define m_asinh asinh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
17 #else
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
18 /* if the system doesn't have asinh, use the substitute
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
19 function defined in Modules/_math.c. */
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
20 #define m_asinh _Py_asinh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
21 #endif
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
22
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
23 #ifdef HAVE_ATANH
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
24 #define m_atanh atanh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
25 #else
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
26 /* if the system doesn't have atanh, use the substitute
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
27 function defined in Modules/_math.c. */
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
28 #define m_atanh _Py_atanh
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
29 #endif
57758
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
30
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
31 #ifdef HAVE_EXPM1
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
32 #define m_expm1 expm1
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
33 #else
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
34 /* if the system doesn't have expm1, use the substitute
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
35 function defined in Modules/_math.c. */
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
36 #define m_expm1 _Py_expm1
b45ca11b9a3e Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff changeset
37 #endif
57866
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
38
78640
08418369da7b Issue #15477: Add workaround for log1p(-0.0) on platforms where it's broken.
Mark Dickinson <mdickinson@enthought.com>
parents: 57866
diff changeset
39 /* Use the substitute from _math.c on all platforms:
08418369da7b Issue #15477: Add workaround for log1p(-0.0) on platforms where it's broken.
Mark Dickinson <mdickinson@enthought.com>
parents: 57866
diff changeset
40 it includes workarounds for buggy handling of zeros. */
57866
9751ddcc1882 Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 57758
diff changeset
41 #define m_log1p _Py_log1p