


Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
if (* (sin (fma y.im (log (hypot x.re x.im)) (* y.re (atan2 x.im x.re)))) (/ (pow (hypot x.re x.im) y.re) (+ 1 (+ (* (atan2 x.im x.re) y.im) (* 1/2 (* (pow (atan2 x.im x.re) 2) (pow y.im 2))))))) < -3.7995546046766e-310 or 5.04453420843053e-310 < (* (sin (fma y.im (log (hypot x.re x.im)) (* y.re (atan2 x.im x.re)))) (/ (pow (hypot x.re x.im) y.re) (+ 1 (+ (* (atan2 x.im x.re) y.im) (* 1/2 (* (pow (atan2 x.im x.re) 2) (pow y.im 2))))))) < 5.1933809191100916e+269Initial program 34.2
Applied simplify5.3
rmApplied add-cube-cbrt5.3
Applied unpow-prod-down5.3
rmApplied expm1-log1p-u5.3
rmApplied expm1-log1p-u5.3
if -3.7995546046766e-310 < (* (sin (fma y.im (log (hypot x.re x.im)) (* y.re (atan2 x.im x.re)))) (/ (pow (hypot x.re x.im) y.re) (+ 1 (+ (* (atan2 x.im x.re) y.im) (* 1/2 (* (pow (atan2 x.im x.re) 2) (pow y.im 2))))))) < 5.04453420843053e-310Initial program 31.4
Applied simplify6.9
Taylor expanded around 0 0
if 5.1933809191100916e+269 < (* (sin (fma y.im (log (hypot x.re x.im)) (* y.re (atan2 x.im x.re)))) (/ (pow (hypot x.re x.im) y.re) (+ 1 (+ (* (atan2 x.im x.re) y.im) (* 1/2 (* (pow (atan2 x.im x.re) 2) (pow y.im 2))))))) Initial program 39.8
Time bar (total: 54.1s)Debug logProfile
herbie shell --seed 2020178 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
:name "powComplex, imaginary part"
(* (exp (- (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.re) (* (atan2 x.im x.re) y.im))) (sin (+ (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.im) (* (atan2 x.im x.re) y.re)))))