Handle INF and NAN
This commit is contained in:
parent
37e3c5ff9d
commit
4a226732d8
|
@ -95,8 +95,8 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
|||
|
||||
if (inc_x == 1) {
|
||||
|
||||
if (da == 0.0) {
|
||||
|
||||
if (da == 0.0 || !isfinite(da)) {
|
||||
if (dummy2 == 0) {
|
||||
BLASLONG n1 = n & -32;
|
||||
if (n1 > 0) {
|
||||
|
||||
|
@ -109,7 +109,17 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
|||
x[j] = 0.0;
|
||||
j++;
|
||||
}
|
||||
|
||||
} else {
|
||||
float res = 0.0;
|
||||
if (!isfinite(da)) res = NAN;
|
||||
while (j < n) {
|
||||
if (isfinite(x[i]))
|
||||
x[j] = res;
|
||||
else
|
||||
x[j] = NAN;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
BLASLONG n1 = n & -32;
|
||||
|
@ -126,8 +136,8 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
|||
|
||||
} else {
|
||||
|
||||
if (da == 0.0) {
|
||||
|
||||
if (da == 0.0 || !isfinite(da)) {
|
||||
if (dummy2 == 0) {
|
||||
BLASLONG n1 = n & -2;
|
||||
|
||||
while (j < n1) {
|
||||
|
@ -145,7 +155,18 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
|||
i += inc_x;
|
||||
j++;
|
||||
}
|
||||
|
||||
} else {
|
||||
while (j < n) {
|
||||
float res = 0.0;
|
||||
if (!isfinite(da)) res = NAN;
|
||||
if (isfinite(x[i]))
|
||||
x[i] = res;
|
||||
else
|
||||
x[i] = NAN;
|
||||
i += inc_x;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
BLASLONG n1 = n & -2;
|
||||
|
||||
|
|
Loading…
Reference in New Issue