aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Doc/whatsnew/3.14.rst6
-rw-r--r--Include/pymath.h3
-rw-r--r--Misc/NEWS.d/next/C API/2024-05-29-09-21-37.gh-issue-119613.J2xfrC.rst2
3 files changed, 11 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst
index 15216479cc6..bc7fe64e68b 100644
--- a/Doc/whatsnew/3.14.rst
+++ b/Doc/whatsnew/3.14.rst
@@ -231,6 +231,12 @@ Porting to Python 3.14
Deprecated
----------
+* Macros :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY`
+ and :c:macro:`!Py_IS_FINITE` are :term:`soft deprecated`,
+ use instead :c:macro:`!isnan`, :c:macro:`!isinf` and
+ :c:macro:`!isfinite` available from :file:`math.h`
+ since C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)
+
Removed
-------
diff --git a/Include/pymath.h b/Include/pymath.h
index 4c1e3d99848..d8f763f808d 100644
--- a/Include/pymath.h
+++ b/Include/pymath.h
@@ -29,14 +29,17 @@
// Py_IS_NAN(X)
// Return 1 if float or double arg is a NaN, else 0.
+// Soft deprecated since Python 3.14, use isnan() instead.
#define Py_IS_NAN(X) isnan(X)
// Py_IS_INFINITY(X)
// Return 1 if float or double arg is an infinity, else 0.
+// Soft deprecated since Python 3.14, use isinf() instead.
#define Py_IS_INFINITY(X) isinf(X)
// Py_IS_FINITE(X)
// Return 1 if float or double arg is neither infinite nor NAN, else 0.
+// Soft deprecated since Python 3.14, use isfinite() instead.
#define Py_IS_FINITE(X) isfinite(X)
// Py_INFINITY: Value that evaluates to a positive double infinity.
diff --git a/Misc/NEWS.d/next/C API/2024-05-29-09-21-37.gh-issue-119613.J2xfrC.rst b/Misc/NEWS.d/next/C API/2024-05-29-09-21-37.gh-issue-119613.J2xfrC.rst
new file mode 100644
index 00000000000..196a4722a98
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2024-05-29-09-21-37.gh-issue-119613.J2xfrC.rst
@@ -0,0 +1,2 @@
+Macros ``Py_IS_NAN``, ``Py_IS_INFINITY`` and ``Py_IS_FINITE``
+are :term:`soft deprecated`.