@@ -69,16 +69,16 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha , FLOAT *x )
69
69
70
70
for ( i = 0 ; i < n ; i += 4 )
71
71
{
72
- t0 = da_r * x [0 ] - da_i * x [1 ];
73
- t1 = da_r * x [2 ] - da_i * x [3 ];
74
- t2 = da_r * x [4 ] - da_i * x [5 ];
75
- t3 = da_r * x [6 ] - da_i * x [7 ];
72
+ t0 = da_r * x [0 ] - da_i * x [1 ];
73
+ t1 = da_r * x [2 ] - da_i * x [3 ];
74
+ t2 = da_r * x [4 ] - da_i * x [5 ];
75
+ t3 = da_r * x [6 ] - da_i * x [7 ];
76
76
77
77
x [1 ] = da_r * x [1 ] + da_i * x [0 ];
78
78
x [3 ] = da_r * x [3 ] + da_i * x [2 ];
79
79
x [5 ] = da_r * x [5 ] + da_i * x [4 ];
80
80
x [7 ] = da_r * x [7 ] + da_i * x [6 ];
81
-
81
+
82
82
x [0 ] = t0 ;
83
83
x [2 ] = t1 ;
84
84
x [4 ] = t2 ;
@@ -99,16 +99,16 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha , FLOAT *x )
99
99
100
100
for ( i = 0 ; i < n ; i += 4 )
101
101
{
102
- t0 = - da_i * x [1 ];
103
- t1 = - da_i * x [3 ];
104
- t2 = - da_i * x [5 ];
105
- t3 = - da_i * x [7 ];
102
+ t0 = - da_i * x [1 ];
103
+ t1 = - da_i * x [3 ];
104
+ t2 = - da_i * x [5 ];
105
+ t3 = - da_i * x [7 ];
106
106
107
107
x [1 ] = da_i * x [0 ];
108
108
x [3 ] = da_i * x [2 ];
109
109
x [5 ] = da_i * x [4 ];
110
110
x [7 ] = da_i * x [6 ];
111
-
111
+
112
112
x [0 ] = t0 ;
113
113
x [2 ] = t1 ;
114
114
x [4 ] = t2 ;
@@ -129,16 +129,16 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha , FLOAT *x )
129
129
130
130
for ( i = 0 ; i < n ; i += 4 )
131
131
{
132
- t0 = da_r * x [0 ];
133
- t1 = da_r * x [2 ];
134
- t2 = da_r * x [4 ];
135
- t3 = da_r * x [6 ];
132
+ t0 = da_r * x [0 ];
133
+ t1 = da_r * x [2 ];
134
+ t2 = da_r * x [4 ];
135
+ t3 = da_r * x [6 ];
136
136
137
137
x [1 ] = da_r * x [1 ];
138
138
x [3 ] = da_r * x [3 ];
139
139
x [5 ] = da_r * x [5 ];
140
140
x [7 ] = da_r * x [7 ];
141
-
141
+
142
142
x [0 ] = t0 ;
143
143
x [2 ] = t1 ;
144
144
x [4 ] = t2 ;
@@ -157,14 +157,14 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha , FLOAT *x )
157
157
BLASLONG i ;
158
158
for ( i = 0 ; i < n ; i += 4 )
159
159
{
160
- x [0 ] = 0.0 ;
161
- x [1 ] = 0.0 ;
162
- x [2 ] = 0.0 ;
163
- x [3 ] = 0.0 ;
164
- x [4 ] = 0.0 ;
165
- x [5 ] = 0.0 ;
166
- x [6 ] = 0.0 ;
167
- x [7 ] = 0.0 ;
160
+ x [0 ] = 0.0 ;
161
+ x [1 ] = 0.0 ;
162
+ x [2 ] = 0.0 ;
163
+ x [3 ] = 0.0 ;
164
+ x [4 ] = 0.0 ;
165
+ x [5 ] = 0.0 ;
166
+ x [6 ] = 0.0 ;
167
+ x [7 ] = 0.0 ;
168
168
x += 8 ;
169
169
}
170
170
@@ -186,10 +186,10 @@ static void zscal_kernel_inc_8(BLASLONG n, FLOAT *alpha, FLOAT *x, BLASLONG inc_
186
186
187
187
for ( i = 0 ; i < n ; i += 4 )
188
188
{
189
- t0 = da_r * x [0 ] - da_i * x [1 ];
190
- t1 = da_r * x [inc_x ] - da_i * x [inc_x + 1 ];
191
- t2 = da_r * x [inc_x2 ] - da_i * x [inc_x2 + 1 ];
192
- t3 = da_r * x [inc_x3 ] - da_i * x [inc_x3 + 1 ];
189
+ t0 = da_r * x [0 ] - da_i * x [1 ];
190
+ t1 = da_r * x [inc_x ] - da_i * x [inc_x + 1 ];
191
+ t2 = da_r * x [inc_x2 ] - da_i * x [inc_x2 + 1 ];
192
+ t3 = da_r * x [inc_x3 ] - da_i * x [inc_x3 + 1 ];
193
193
194
194
x [1 ] = da_i * x [0 ] + da_r * x [1 ];
195
195
x [inc_x + 1 ] = da_i * x [inc_x ] + da_r * x [inc_x + 1 ];
@@ -228,7 +228,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
228
228
{
229
229
while (j < n1 )
230
230
{
231
-
231
+
232
232
x [i ]= 0.0 ;
233
233
x [i + 1 ]= 0.0 ;
234
234
x [i + inc_x ]= 0.0 ;
@@ -240,7 +240,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
240
240
241
241
while (j < n )
242
242
{
243
-
243
+
244
244
x [i ]= 0.0 ;
245
245
x [i + 1 ]= 0.0 ;
246
246
i += inc_x ;
@@ -253,11 +253,17 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
253
253
{
254
254
while (j < n1 )
255
255
{
256
-
257
- temp0 = - da_i * x [i + 1 ];
256
+
257
+ if (isnan (x [i ]) || isinf (x [i ]))
258
+ temp0 = NAN ;
259
+ else
260
+ temp0 = - da_i * x [i + 1 ];
258
261
x [i + 1 ] = da_i * x [i ];
259
262
x [i ] = temp0 ;
260
- temp1 = - da_i * x [i + 1 + inc_x ];
263
+ if (isnan (x [i + inc_x ]) || isinf (x [i + inc_x ]))
264
+ temp1 = NAN ;
265
+ else
266
+ temp1 = - da_i * x [i + 1 + inc_x ];
261
267
x [i + 1 + inc_x ] = da_i * x [i + inc_x ];
262
268
x [i + inc_x ] = temp1 ;
263
269
i += 2 * inc_x ;
@@ -267,8 +273,11 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
267
273
268
274
while (j < n )
269
275
{
270
-
271
- temp0 = - da_i * x [i + 1 ];
276
+
277
+ if (isnan (x [i ]) || isinf (x [i ]))
278
+ temp0 = NAN ;
279
+ else
280
+ temp0 = - da_i * x [i + 1 ];
272
281
x [i + 1 ] = da_i * x [i ];
273
282
x [i ] = temp0 ;
274
283
i += inc_x ;
@@ -291,7 +300,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
291
300
292
301
while (j < n1 )
293
302
{
294
-
303
+
295
304
temp0 = da_r * x [i ];
296
305
x [i + 1 ] = da_r * x [i + 1 ];
297
306
x [i ] = temp0 ;
@@ -305,7 +314,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
305
314
306
315
while (j < n )
307
316
{
308
-
317
+
309
318
temp0 = da_r * x [i ];
310
319
x [i + 1 ] = da_r * x [i + 1 ];
311
320
x [i ] = temp0 ;
@@ -368,7 +377,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
368
377
}
369
378
i = n1 << 1 ;
370
379
j = n1 ;
371
-
380
+
372
381
if ( da_r == 0.0 || da_r != da_r )
373
382
{
374
383
if ( da_i == 0.0 )
@@ -385,7 +394,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
385
394
}
386
395
387
396
}
388
- else if (da_r < - FLT_MAX || da_r > FLT_MAX ) {
397
+ else if (da_r < - FLT_MAX || da_r > FLT_MAX ) {
389
398
while (j < n )
390
399
{
391
400
x [i ]= NAN ;
@@ -404,7 +413,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
404
413
if (x [i ] < - FLT_MAX || x [i ] > FLT_MAX )
405
414
temp0 = NAN ;
406
415
x [i + 1 ] = da_i * x [i ];
407
- if ( x [i ] == x [i ]) //preserve NaN
416
+ if ( x [i ] == x [i ]) //preserve NaN
408
417
x [i ] = temp0 ;
409
418
i += 2 ;
410
419
j ++ ;
@@ -420,7 +429,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
420
429
{
421
430
while (j < n )
422
431
{
423
-
432
+
424
433
temp0 = da_r * x [i ];
425
434
x [i + 1 ] = da_r * x [i + 1 ];
426
435
x [i ] = temp0 ;
@@ -442,7 +451,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
442
451
443
452
}
444
453
445
- }
454
+ }
446
455
447
456
}
448
457
0 commit comments