Browse Source

Merge pull request #3202 from martin-frbg/issue3201

Fix division by zero in the non-x86 codepath of C/ZROTG
tags/v0.3.15
Martin Kroeker GitHub 5 years ago
parent
commit
171c20e3b6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 5 deletions
  1. +12
    -5
      interface/zrotg.c

+ 12
- 5
interface/zrotg.c View File

@@ -79,8 +79,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
aa_i = fabs(da_r);
}

scale = (aa_i / aa_r);
ada = aa_r * sqrt(ONE + scale * scale);
if (aa_r == ZERO) {
ada = 0.;
} else {
scale = (aa_i / aa_r);
ada = aa_r * sqrt(ONE + scale * scale);
}

bb_r = fabs(db_r);
bb_i = fabs(db_i);
@@ -90,9 +94,12 @@ void NAME(FLOAT *DA, FLOAT *DB, FLOAT *C, FLOAT *S){
bb_i = fabs(bb_r);
}

scale = (bb_i / bb_r);
adb = bb_r * sqrt(ONE + scale * scale);

if (bb_r == ZERO) {
adb = 0.;
} else {
scale = (bb_i / bb_r);
adb = bb_r * sqrt(ONE + scale * scale);
}
scale = ada + adb;

aa_r = da_r / scale;


Loading…
Cancel
Save