From ad2b5c67c8508d568e142f4fa6593a7fb90eb3a3 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 31 May 2024 01:06:58 +0200 Subject: [PATCH] fix another corner case involving infinity --- kernel/x86_64/zscal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/x86_64/zscal.c b/kernel/x86_64/zscal.c index 075b6091f..05114c7fa 100644 --- a/kernel/x86_64/zscal.c +++ b/kernel/x86_64/zscal.c @@ -278,7 +278,9 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i, temp0 = NAN; else temp0 = -da_i * x[i+1]; - x[i+1] = da_i * x[i]; + if (!isinf(x[i+1])) + x[i+1] = da_i * x[i]; + else x[i+1] = NAN; x[i] = temp0; i += inc_x ; j++; @@ -412,7 +414,9 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i, temp0 = -da_i * x[i+1]; if (isinf(x[i])) temp0 = NAN; - x[i+1] = da_i * x[i]; + if (!isinf(x[i+1])) + x[i+1] = da_i * x[i]; + else x[i+1] = NAN; if ( x[i] == x[i]) //preserve NaN x[i] = temp0; i += 2 ;