


Bits error versus re



Bits error versus im



Bits error versus base
Results
if im < -4.83216196722596e+96 or -4.822064075697262e-20 < im < 2.0164282822791598e-135Initial program 33.3
Simplified33.3
rmApplied times-frac33.2
Simplified33.2
Taylor expanded around -inf 22.7
Simplified22.7
if -4.83216196722596e+96 < im < -4.822064075697262e-20Initial program 15.6
Simplified15.6
rmApplied times-frac15.5
Simplified15.5
rmApplied add-cube-cbrt15.5
rmApplied pow1/315.5
rmApplied add-sqr-sqrt15.5
Applied sqrt-prod15.5
if 2.0164282822791598e-135 < im < 3.401373965950837e+105Initial program 15.0
Simplified15.0
rmApplied times-frac14.9
Simplified14.9
rmApplied add-cube-cbrt14.9
if 3.401373965950837e+105 < im Initial program 51.3
Simplified51.3
Taylor expanded around 0 8.8
Final simplification18.3
herbie shell --seed 2019005
(FPCore (re im base)
:name "math.log/2 on complex, real part"
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))))
Time bar (total: 53.8s)Debug log
1 calls. Slowest were:
| 12.0ms | (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 29.8b
Found 4 expressions with local error:
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (* (log base) (log base)) |
| 0.4b | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 0.4b | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
4 calls. Slowest were:
| 10.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 4.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 4.0ms | (* (log base) (log base)) |
4 calls. Slowest were:
| 161.0ms | (* (log base) (log base)) |
| 72.0ms | (/ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (log base) (log base))) |
| 68.0ms | (* (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
49 calls. Slowest were:
| 387.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (log (* (log base) (log base)))) |
| 361.0ms | (* -1 (* (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
| 310.0ms | (- (+ (log (log (sqrt (+ (* re re) (* im im))))) (log (log base))) (+ (log (log base)) (log (log base)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 8.2b
Found 2 expressions with local error:
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 0.3b | (/ (log (sqrt (+ (* re re) (* im im)))) (log base)) |
2 calls. Slowest were:
| 8.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
2 calls. Slowest were:
| 102.0ms | (/ (log (sqrt (+ (* re re) (* im im)))) (log base)) |
| 23.0ms | (sqrt (+ (* re re) (* im im))) |
51 calls. Slowest were:
| 165.0ms | (/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log base)) |
| 158.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 117.0ms | (* -1 (/ (log (/ -1 re)) (- (log -1) (log (/ -1 base))))) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 8.2b
Found 4 expressions with local error:
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 0.5b | (cbrt (sqrt (+ (* re re) (* im im)))) |
4 calls. Slowest were:
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
| 4.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 117.0ms | (cbrt (sqrt (+ (* re re) (* im im)))) |
| 37.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
| 31.0ms | (sqrt (+ (* re re) (* im im))) |
38 calls. Slowest were:
| 153.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 142.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 129.0ms | (cbrt (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) |
14 alts after pruning (13 fresh and 1 done)
Merged error: 8.2b
Found 4 expressions with local error:
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 28.6b | (sqrt (+ (* re re) (* im im))) |
| 5.0b | (pow (sqrt (+ (* re re) (* im im))) 1/3) |
4 calls. Slowest were:
| 3.0ms | (pow (sqrt (+ (* re re) (* im im))) 1/3) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
| 2.0ms | (sqrt (+ (* re re) (* im im))) |
4 calls. Slowest were:
| 88.0ms | (pow (sqrt (+ (* re re) (* im im))) 1/3) |
| 28.0ms | (sqrt (+ (* re re) (* im im))) |
| 28.0ms | (sqrt (+ (* re re) (* im im))) |
| 19.0ms | (sqrt (+ (* re re) (* im im))) |
39 calls. Slowest were:
| 160.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 138.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
| 124.0ms | (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im)))) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 8.2b
53.5% (10.8b remaining)
Error of 18.3b against oracle of 7.5b and baseline of 30.8b