



Bits error versus i




Bits error versus n
Results
| Original | 43.0 |
|---|---|
| Target | 42.5 |
| Herbie | 19.3 |
if i < -9.11800110956222e-12Initial program 28.7
rmApplied associate-/r/29.2
Applied associate-*r*29.2
Taylor expanded around inf 62.9
Simplified19.9
if -9.11800110956222e-12 < i < 20.06814573380243Initial program 50.6
rmApplied associate-/r/50.8
Applied associate-*r*50.8
Taylor expanded around 0 16.5
Simplified16.5
rmApplied add-exp-log16.5
if 20.06814573380243 < i Initial program 33.3
Taylor expanded around 0 31.1
Final simplification19.3
herbie shell --seed 2019016
(FPCore (i n)
:name "Compound Interest"
:herbie-target
(* 100 (/ (- (exp (* n (if (== (+ 1 (/ i n)) 1) (/ i n) (/ (* (/ i n) (log (+ 1 (/ i n)))) (- (+ (/ i n) 1) 1))))) 1) (/ i n)))
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))))
Time bar (total: 28.0s)Debug log
| 391× | (pre true 80) |
| 94× | (body real 80) |
| 89× | (body nan 80) |
| 80× | (body real 1280) |
| 62× | (body real 640) |
| 36× | (body real 2560) |
| 18× | (body real 320) |
| 12× | (body real 160) |
| 195.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 42.9b
Found 4 expressions with local error:
| 10.9b | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
| 5.8b | (pow (+ 1 (/ i n)) n) |
| 2.0b | (- (pow (+ 1 (/ i n)) n) 1) |
| 0.1b | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
| 46× | add-sqr-sqrt |
| 40× | times-frac |
| 26× | add-cube-cbrt |
| 26× | *-un-lft-identity |
| 25× | associate-*r* |
| 20× | difference-of-sqr-1 |
| 13× | div-inv |
| 13× | unpow-prod-down |
| 7× | add-exp-log |
| 6× | add-cbrt-cube |
| 5× | associate-/l* |
| 5× | pow1 |
| 4× | add-log-exp |
| 4× | associate-/r* |
| 2× | associate-/l/ |
| 2× | flip-- |
| 2× | associate-/r/ |
| 2× | flip3-- |
| 1× | *-commutative |
| 1× | associate-*r/ |
| 1× | pow-exp |
| 1× | div-exp |
| 1× | div-sub |
| 1× | frac-2neg |
| 1× | pow-pow |
| 1× | sub-neg |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 1× | pow-to-exp |
| 18.0ms | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
| 16.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
| 8.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 1.0ms | (pow (+ 1 (/ i n)) n) |
| 194.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))) |
| 184.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 179.0ms | (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)) |
| 126.0ms | (pow (+ 1 (/ i n)) n) |
| 283.0ms | (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i) |
| 240.0ms | (* 100 (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)) |
| 234.0ms | (/ (* (* (- (pow (+ 1 (/ i n)) n) 1) (- (pow (+ 1 (/ i n)) n) 1)) (- (pow (+ 1 (/ i n)) n) 1)) (* (* (/ i n) (/ i n)) (/ i n))) |
| 217.0ms | (* 100 (/ (* n (- (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))) 1)) i)) |
| 179.0ms | (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 21.1b
Found 4 expressions with local error:
| 10.9b | (/ (log (exp (- (pow (+ 1 (/ i n)) n) 1))) (/ i n)) |
| 5.8b | (pow (+ 1 (/ i n)) n) |
| 2.0b | (- (pow (+ 1 (/ i n)) n) 1) |
| 2.0b | (log (exp (- (pow (+ 1 (/ i n)) n) 1))) |
| 41× | add-sqr-sqrt |
| 36× | log-pow |
| 36× | times-frac |
| 30× | exp-prod |
| 27× | add-cube-cbrt |
| 27× | *-un-lft-identity |
| 14× | difference-of-sqr-1 |
| 11× | div-inv |
| 11× | pow1 |
| 10× | unpow-prod-down |
| 9× | associate-/l* |
| 7× | add-exp-log |
| 6× | add-cbrt-cube |
| 5× | log-prod |
| 4× | add-log-exp |
| 4× | associate-/r* |
| 2× | exp-sum |
| 2× | exp-diff |
| 2× | sub-neg |
| 2× | log-div |
| 1× | flip-- |
| 1× | associate-/r/ |
| 1× | pow-exp |
| 1× | rem-log-exp |
| 1× | div-exp |
| 1× | div-sub |
| 1× | flip3-- |
| 1× | frac-2neg |
| 1× | pow-pow |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 1× | pow-to-exp |
| 71.0ms | (/ (log (exp (- (pow (+ 1 (/ i n)) n) 1))) (/ i n)) |
| 32.0ms | (log (exp (- (pow (+ 1 (/ i n)) n) 1))) |
| 12.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 1.0ms | (pow (+ 1 (/ i n)) n) |
| 178.0ms | (/ (log (exp (- (pow (+ 1 (/ i n)) n) 1))) (/ i n)) |
| 127.0ms | (pow (+ 1 (/ i n)) n) |
| 120.0ms | (log (exp (- (pow (+ 1 (/ i n)) n) 1))) |
| 119.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 408.0ms | (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i) |
| 391.0ms | (/ (* (* (log (exp (- (pow (+ 1 (/ i n)) n) 1))) (log (exp (- (pow (+ 1 (/ i n)) n) 1)))) (log (exp (- (pow (+ 1 (/ i n)) n) 1)))) (* (* (/ i n) (/ i n)) (/ i n))) |
| 177.0ms | (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) |
| 164.0ms | (- (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))) 1) |
| 153.0ms | (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 21.1b
Found 4 expressions with local error:
| 5.8b | (pow (+ 1 (/ i n)) n) |
| 2.0b | (- (pow (+ 1 (/ i n)) n) 1) |
| 0.0b | (* (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) n) |
| 0.0b | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) |
| 8× | add-sqr-sqrt |
| 6× | add-cube-cbrt |
| 6× | *-un-lft-identity |
| 5× | add-exp-log |
| 5× | pow1 |
| 4× | add-log-exp |
| 4× | associate-*r* |
| 4× | add-cbrt-cube |
| 4× | unpow-prod-down |
| 2× | *-commutative |
| 2× | associate-*r/ |
| 2× | difference-of-sqr-1 |
| 1× | flip-- |
| 1× | div-inv |
| 1× | pow-exp |
| 1× | associate-*l/ |
| 1× | associate-*l* |
| 1× | flip3-- |
| 1× | pow-pow |
| 1× | sub-neg |
| 1× | pow-to-exp |
| 16.0ms | (* (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) n) |
| 11.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) |
| 9.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 1.0ms | (pow (+ 1 (/ i n)) n) |
| 221.0ms | (* (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) n) |
| 141.0ms | (- (pow (+ 1 (/ i n)) n) 1) |
| 101.0ms | (pow (+ 1 (/ i n)) n) |
| 97.0ms | (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) i)) |
| 296.0ms | (* -1 (/ (- 100 (* 100 (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))))) i)) |
| 285.0ms | (* 100 (/ (* n (- (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))) 1)) i)) |
| 267.0ms | (/ (- (* 100 (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n))) 100) i) |
| 231.0ms | (* 100 (/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)) |
| 169.0ms | (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 10.4b
Found 4 expressions with local error:
| 4.2b | (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i) |
| 2.6b | (* (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) n) |
| 0.3b | (* 1/6 i) |
| 0.1b | (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) |
| 6× | add-cube-cbrt |
| 6× | *-un-lft-identity |
| 6× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | add-exp-log |
| 4× | associate-*r* |
| 4× | add-cbrt-cube |
| 4× | pow1 |
| 3× | associate-/l* |
| 3× | *-commutative |
| 2× | associate-/l/ |
| 2× | div-inv |
| 2× | associate-*r/ |
| 1× | flip-+ |
| 1× | associate-*l/ |
| 1× | associate-*l* |
| 1× | flip3-+ |
| 1× | frac-2neg |
| 1× | clear-num |
| 10.0ms | (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i) |
| 7.0ms | (* (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) n) |
| 2.0ms | (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) |
| 0.0ms | (* 1/6 i) |
| 48.0ms | (* (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) n) |
| 29.0ms | (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i) |
| 21.0ms | (* 100 (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) |
| 12.0ms | (* 1/6 i) |
| 234.0ms | (* (* 100 (+ i (* (* i i) (+ (* 1/6 i) 1/2)))) n) |
| 140.0ms | (sqrt (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) |
| 125.0ms | (* (cbrt (+ i (* (* i i) (+ (* 1/6 i) 1/2)))) (cbrt (+ i (* (* i i) (+ (* 1/6 i) 1/2))))) |
| 114.0ms | (cbrt (/ (+ i (* (* i i) (+ (* 1/6 i) 1/2))) i)) |
| 111.0ms | (+ (* 50/3 (* (pow i 2) n)) (+ (* 100 n) (* 50 (* i n)))) |
14 alts after pruning (13 fresh and 1 done)
Merged error: 10.4b
57.7% (10.3b remaining)
Error of 19.3b against oracle of 9.0b and baseline of 33.3b
| 11576× | (pre true 80) |
| 3005× | (body real 80) |
| 2527× | (body real 1280) |
| 2159× | (body nan 80) |
| 1632× | (body real 640) |
| 910× | (body real 2560) |
| 877× | (body real 320) |
| 458× | (body real 160) |
| 8× | (body real 5120) |