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;
|
||||
s = db / r;
|
||||
z = ONE;
|
||||
if (da != ZERO) {
|
||||
if (ada > adb){
|
||||
z = s;
|
||||
} else {
|
||||
z = ONE / c;
|
||||
}
|
||||
}
|
||||
if (ada > adb) z = s;
|
||||
if ((ada <= adb) && (c != ZERO)) z = ONE / c;
|
||||
|
||||
*C = c;
|
||||
*S = s;
|
||||
|
|
|
@ -64,13 +64,13 @@ void CNAME(void *VDA, void *VDB, FLOAT *C, void *VS) {
|
|||
*C = ZERO;
|
||||
if (db_r == ZERO) {
|
||||
(*DA) = fabsl(db_i);
|
||||
*S = *S1 /da_r;
|
||||
*(S+1) = *(S1+1) /da_r;
|
||||
*S = *S1 /(*DA);
|
||||
*(S+1) = *(S1+1) /(*DA);
|
||||
return;
|
||||
} else if ( db_i == ZERO) {
|
||||
*DA = fabsl(db_r);
|
||||
*S = *S1 /da_r;
|
||||
*(S+1) = *(S1+1) /da_r;
|
||||
*S = *S1 /(*DA);
|
||||
*(S+1) = *(S1+1) /(*DA);
|
||||
return;
|
||||
} else {
|
||||
long double g1 = MAX( fabsl(db_r), fabsl(db_i));
|
||||
|
|
Loading…
Reference in New Issue