From f1248b849d11d6a436a6e19983c9c6695c143bc7 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 22 Jun 2024 15:55:29 +0200 Subject: [PATCH] handle INF and NAN in input --- kernel/power/dscal.c | 57 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/kernel/power/dscal.c b/kernel/power/dscal.c index 96c4e51bc..2bbc1ea6d 100644 --- a/kernel/power/dscal.c +++ b/kernel/power/dscal.c @@ -73,14 +73,38 @@ static void dscal_kernel_8_zero (BLASLONG n, FLOAT *x) for( i=0; i> 3) & 0x3; for (j = 0; j < align; j++) { - x[j] = 0.0; + if (isfinite(x[j])) + x[j] = 0.0; + else + x[j] = NAN; } } BLASLONG n1 = (n-j) & -16; @@ -127,8 +154,10 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS while(j < n) { - - x[j]=0.0; + if (!isfinite(x[j])) + x[j]=NAN; + else + x[j]=0.0; j++; } @@ -176,8 +205,10 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS while(j < n) { - - x[i]=0.0; + if (!isfinite(x[i])) + x[i]=NAN; + else + x[i]=0.0; i += inc_x ; j++; }