Merge pull request #2272 from seberg/thread-sqrt-of-negative
Avoid taking root of negative number in symv_thread.c
This commit is contained in:
commit
c07d78b9e9
|
@ -166,7 +166,11 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG i
|
|||
if (nthreads - num_cpu > 1) {
|
||||
|
||||
double di = (double)i;
|
||||
width = ((BLASLONG)(sqrt(di * di + dnum) - di) + mask) & ~mask;
|
||||
if (di * di - dnum > 0) {
|
||||
width = ((BLASLONG)(-sqrt(di * di - dnum) + di) + mask) & ~mask;
|
||||
} else {
|
||||
width = m - i;
|
||||
}
|
||||
|
||||
if (width < 4) width = 4;
|
||||
if (width > m - i) width = m - i;
|
||||
|
@ -212,9 +216,9 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG i
|
|||
|
||||
double di = (double)(m - i);
|
||||
if (di * di - dnum > 0) {
|
||||
width = ((BLASLONG)(-sqrt(di * di - dnum) + di) + mask) & ~mask;
|
||||
width = ((BLASLONG)(-sqrt(di * di - dnum) + di) + mask) & ~mask;
|
||||
} else {
|
||||
width = m - i;
|
||||
width = m - i;
|
||||
}
|
||||
|
||||
if (width < 4) width = 4;
|
||||
|
|
Loading…
Reference in New Issue