1
0
python-pythran/numpy-2.1-interval.patch

34 lines
1.3 KiB
Diff

From 6b61e8a6b3dddab13b88e51309cbdf2f28247960 Mon Sep 17 00:00:00 2001
From: serge-sans-paille <serge.guelton@telecom-bretagne.eu>
Date: Thu, 22 Aug 2024 08:20:25 +0200
Subject: [PATCH] Fix docstring and implementation of Interval.power
This makes the code more resilient to future numpy changes.
---
pythran/interval.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/pythran/interval.py b/pythran/interval.py
index 4e5dff8fd..b8ef42e69 100644
--- a/pythran/interval.py
+++ b/pythran/interval.py
@@ -196,13 +196,15 @@ def __pow__(range1, range2):
>>> Interval(1, 5) ** Interval(-5, -4)
Interval(low=1.0, high=1.0)
>>> Interval(-1, 5) ** Interval(-5, 3)
- Interval(low=-1.0, high=125.0)
+ Interval(low=-1.0, high=125)
>>> Interval(1, 5) ** Interval(3, 8)
- Interval(low=1.0, high=390625.0)
+ Interval(low=1, high=390625)
"""
res = [v1 ** v2 for v1, v2 in
itertools.product(range1.bounds(), range2.bounds())]
- return Interval(numpy.ceil(min(res)), numpy.floor(max(res)))
+ minres, maxres = min(res), max(res)
+ return Interval(type(minres)(numpy.ceil(minres)),
+ type(maxres)(numpy.floor(maxres)))
def __lshift__(range1, range2):
"""