Merge pull request #4235 from angsch/develop
Fix division by zero in [z]rotg
This commit is contained in:
commit
4a0f86397b
|
@ -66,13 +66,8 @@ void CNAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
|
||||||
c = da / r;
|
c = da / r;
|
||||||
s = db / r;
|
s = db / r;
|
||||||
z = ONE;
|
z = ONE;
|
||||||
if (da != ZERO) {
|
if (ada > adb) z = s;
|
||||||
if (ada > adb){
|
if ((ada <= adb) && (c != ZERO)) z = ONE / c;
|
||||||
z = s;
|
|
||||||
} else {
|
|
||||||
z = ONE / c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*C = c;
|
*C = c;
|
||||||
*S = s;
|
*S = s;
|
||||||
|
|
|
@ -64,13 +64,13 @@ void CNAME(void *VDA, void *VDB, FLOAT *C, void *VS) {
|
||||||
*C = ZERO;
|
*C = ZERO;
|
||||||
if (db_r == ZERO) {
|
if (db_r == ZERO) {
|
||||||
(*DA) = fabsl(db_i);
|
(*DA) = fabsl(db_i);
|
||||||
*S = *S1 /da_r;
|
*S = *S1 /(*DA);
|
||||||
*(S+1) = *(S1+1) /da_r;
|
*(S+1) = *(S1+1) /(*DA);
|
||||||
return;
|
return;
|
||||||
} else if ( db_i == ZERO) {
|
} else if ( db_i == ZERO) {
|
||||||
*DA = fabsl(db_r);
|
*DA = fabsl(db_r);
|
||||||
*S = *S1 /da_r;
|
*S = *S1 /(*DA);
|
||||||
*(S+1) = *(S1+1) /da_r;
|
*(S+1) = *(S1+1) /(*DA);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
long double g1 = MAX( fabsl(db_r), fabsl(db_i));
|
long double g1 = MAX( fabsl(db_r), fabsl(db_i));
|
||||||
|
|
Loading…
Reference in New Issue