From 03a53b1859d964d808d59e33a110d51fde2fffae Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Mon, 7 Feb 2022 05:42:50 -0600 Subject: [PATCH] Fixed type in utility `_memory_overlap`. To intervals [B1..E1) and [B2..E2) do not overlap when E1 <= B2 || E2 <= B1 <=> B1 >= E2 || B2 >= E1. Hence the overlap may occur is (B1 < E2) and (B2 < E1). --- dpctl/tensor/_copy_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dpctl/tensor/_copy_utils.py b/dpctl/tensor/_copy_utils.py index 87c7179dcc..cb3d434689 100644 --- a/dpctl/tensor/_copy_utils.py +++ b/dpctl/tensor/_copy_utils.py @@ -75,7 +75,8 @@ def _has_memory_overlap(x1, x2): p1_end = p1_beg + m1.nbytes p2_beg = m2._pointer p2_end = p2_beg + m2.nbytes - return p1_beg > p2_end or p2_beg < p1_end + # may intersect if not ((p1_beg >= p2_end) or (p2_beg >= p2_end)) + return (p1_beg < p2_end) and (p2_beg < p1_end) else: return False else: