



Bits error versus re




Bits error versus im
| Original | 37.5 |
|---|---|
| Target | 32.8 |
| Herbie | 16.1 |
if (* 2.0 (+ im re)) < -7.842605776201258e+158Initial program 61.8
rmApplied flip-+61.8
Applied associate-*r/61.8
Applied sqrt-div61.8
Applied simplify55.5
rmApplied sqrt-prod55.5
Applied simplify56.2
Taylor expanded around -inf 32.1
Applied simplify32.1
if -7.842605776201258e+158 < (* 2.0 (+ im re)) < 5.255538043449715e-251Initial program 32.8
rmApplied flip-+32.9
Applied associate-*r/32.9
Applied sqrt-div33.1
Applied simplify19.6
rmApplied sqrt-prod19.7
Applied simplify8.0
rmApplied add-sqr-sqrt8.1
if 5.255538043449715e-251 < (* 2.0 (+ im re)) < 5.653739089360909e-149 or 1.6383255164296062e+148 < (* 2.0 (+ im re)) < 9.558010746694755e+219 or 3.38018246578394e+290 < (* 2.0 (+ im re)) Initial program 56.1
Taylor expanded around 0 25.2
if 5.653739089360909e-149 < (* 2.0 (+ im re)) < 1.6383255164296062e+148Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied sqrt-prod0.1
if 9.558010746694755e+219 < (* 2.0 (+ im re)) < 3.38018246578394e+290Initial program 61.2
Taylor expanded around inf 30.0
Time bar (total: 1.3m)Debug logProfile
herbie shell --seed '#(1071119240 1686926585 3481876196 78132896 2080707795 3185793749)'
(FPCore (re im)
:name "math.sqrt on complex, real part"
:herbie-target
(if (< re 0) (* 0.5 (* (sqrt 2) (sqrt (/ (* im im) (- (sqrt (+ (* re re) (* im im))) re))))) (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))
(* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))