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 (inc_x == 1) {
|
||||||
|
|
||||||
if (da == 0.0) {
|
if (da == 0.0 || !isfinite(da)) {
|
||||||
|
if (dummy2 == 0) {
|
||||||
BLASLONG n1 = n & -32;
|
BLASLONG n1 = n & -32;
|
||||||
if (n1 > 0) {
|
if (n1 > 0) {
|
||||||
|
|
||||||
|
@ -109,7 +109,17 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
||||||
x[j] = 0.0;
|
x[j] = 0.0;
|
||||||
j++;
|
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 {
|
} else {
|
||||||
|
|
||||||
BLASLONG n1 = n & -32;
|
BLASLONG n1 = n & -32;
|
||||||
|
@ -126,8 +136,8 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (da == 0.0) {
|
if (da == 0.0 || !isfinite(da)) {
|
||||||
|
if (dummy2 == 0) {
|
||||||
BLASLONG n1 = n & -2;
|
BLASLONG n1 = n & -2;
|
||||||
|
|
||||||
while (j < n1) {
|
while (j < n1) {
|
||||||
|
@ -145,7 +155,18 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
|
||||||
i += inc_x;
|
i += inc_x;
|
||||||
j++;
|
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 {
|
} else {
|
||||||
BLASLONG n1 = n & -2;
|
BLASLONG n1 = n & -2;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue