| @@ -74,14 +74,38 @@ static void sscal_kernel_16_zero( BLASLONG n, FLOAT *x ) | |||||
| for( i=0; i<n; i+=8 ) | for( i=0; i<n; i+=8 ) | ||||
| { | { | ||||
| x[0] = alpha; | |||||
| x[1] = alpha; | |||||
| x[2] = alpha; | |||||
| x[3] = alpha; | |||||
| x[4] = alpha; | |||||
| x[5] = alpha; | |||||
| x[6] = alpha; | |||||
| x[7] = alpha; | |||||
| if (isfinite(x[0])) | |||||
| x[0] = alpha; | |||||
| else | |||||
| x[0] = NAN; | |||||
| if (isfinite(x[1])) | |||||
| x[1] = alpha; | |||||
| else | |||||
| x[1] = NAN; | |||||
| if (isfinite(x[2])) | |||||
| x[2] = alpha; | |||||
| else | |||||
| x[2] = NAN; | |||||
| if (isfinite(x[3])) | |||||
| x[3] = alpha; | |||||
| else | |||||
| x[3] = NAN; | |||||
| if (isfinite(x[4])) | |||||
| x[4] = alpha; | |||||
| else | |||||
| x[4] = NAN; | |||||
| if (isfinite(x[5])) | |||||
| x[5] = alpha; | |||||
| else | |||||
| x[5] = NAN; | |||||
| if (isfinite(x[6])) | |||||
| x[6] = alpha; | |||||
| else | |||||
| x[6] = NAN; | |||||
| if (isfinite(x[7])) | |||||
| x[7] = alpha; | |||||
| else | |||||
| x[7] = NAN; | |||||
| x+=8; | x+=8; | ||||
| } | } | ||||
| @@ -109,7 +133,10 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| { | { | ||||
| BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | BLASLONG align = ((32 - ((uintptr_t)x & (uintptr_t)0x1F)) >> 2) & 0x7; | ||||
| for (j = 0; j < align; j++) { | 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) & -32; | BLASLONG n1 = (n-j) & -32; | ||||
| @@ -129,8 +156,10 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| while(j < n) | while(j < n) | ||||
| { | { | ||||
| x[j]=0.0; | |||||
| if (isfinite(x[j])) | |||||
| x[j]=0.0; | |||||
| else | |||||
| x[j]=NAN; | |||||
| j++; | j++; | ||||
| } | } | ||||
| @@ -178,8 +207,10 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS | |||||
| while(j < n) | while(j < n) | ||||
| { | { | ||||
| x[i]=0.0; | |||||
| if (isfinite(x[i])) | |||||
| x[i]=0.0; | |||||
| else | |||||
| x[i]=NAN; | |||||
| i += inc_x ; | i += inc_x ; | ||||
| j++; | j++; | ||||
| } | } | ||||