Average Error: 58.6 → 0.2
Time: 19.2s
Precision: 64
Internal Precision: 128
\[\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\]
\[\left(\frac{-2}{5} \cdot {\varepsilon}^{5} + {\varepsilon}^{3} \cdot \frac{-2}{3}\right) + \varepsilon \cdot -2\]

Error

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original58.6
Target0.2
Herbie0.2
\[-2 \cdot \left(\left(\varepsilon + \frac{{\varepsilon}^{3}}{3}\right) + \frac{{\varepsilon}^{5}}{5}\right)\]

Derivation

  1. Initial program 58.6

    \[\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\]
  2. Initial simplification58.6

    \[\leadsto \log \left(\frac{1 - \varepsilon}{\varepsilon + 1}\right)\]
  3. Taylor expanded around 0 0.2

    \[\leadsto \color{blue}{-\left(\frac{2}{3} \cdot {\varepsilon}^{3} + \left(\frac{2}{5} \cdot {\varepsilon}^{5} + 2 \cdot \varepsilon\right)\right)}\]
  4. Using strategy rm
  5. Applied associate-+r+0.2

    \[\leadsto -\color{blue}{\left(\left(\frac{2}{3} \cdot {\varepsilon}^{3} + \frac{2}{5} \cdot {\varepsilon}^{5}\right) + 2 \cdot \varepsilon\right)}\]
  6. Final simplification0.2

    \[\leadsto \left(\frac{-2}{5} \cdot {\varepsilon}^{5} + {\varepsilon}^{3} \cdot \frac{-2}{3}\right) + \varepsilon \cdot -2\]

Reproduce

herbie shell --seed 2018362 
(FPCore (eps)
  :name "logq (problem 3.4.3)"

  :herbie-target
  (* -2 (+ (+ eps (/ (pow eps 3) 3)) (/ (pow eps 5) 5)))

  (log (/ (- 1 eps) (+ 1 eps))))

Details

Time bar (total: 10.7s)Debug log

start220.0ms

Algorithm
intervals

setup66.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 58.9b

localize11.0ms

Local error

Found 2 expressions with local error:

7.2b
(log (/ (- 1 eps) (+ eps 1)))
0.0b
(/ (- 1 eps) (+ eps 1))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
2 → 58
Calls

2 calls. Slowest were:

3.0ms
(/ (- 1 eps) (+ eps 1))
2.0ms
(log (/ (- 1 eps) (+ eps 1)))

series95.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

77.0ms
(log (/ (- 1 eps) (+ eps 1)))
18.0ms
(/ (- 1 eps) (+ eps 1))

simplify1.7s

Counts
54 → 64
Calls

54 calls. Slowest were:

419.0ms
(/ (* (* (- 1 eps) (- 1 eps)) (- 1 eps)) (* (* (+ eps 1) (+ eps 1)) (+ eps 1)))
157.0ms
(- (+ (* 2/3 (pow eps 3)) (+ (* 2/5 (pow eps 5)) (* 2 eps))))
138.0ms
(- (* 2 (/ 1 eps)) (+ (* 2 (/ 1 (pow eps 2))) 1))

prune549.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize27.0ms

Local error

Found 3 expressions with local error:

0.1b
(* 2/3 (pow eps 3))
0.1b
(* 2/5 (pow eps 5))
0.0b
(+ (* 2/3 (pow eps 3)) (+ (* 2/5 (pow eps 5)) (* 2 eps)))

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
3 → 37
Calls

3 calls. Slowest were:

6.0ms
(+ (* 2/3 (pow eps 3)) (+ (* 2/5 (pow eps 5)) (* 2 eps)))
1.0ms
(* 2/3 (pow eps 3))
1.0ms
(* 2/5 (pow eps 5))

series61.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

24.0ms
(+ (* 2/3 (pow eps 3)) (+ (* 2/5 (pow eps 5)) (* 2 eps)))
21.0ms
(* 2/5 (pow eps 5))
15.0ms
(* 2/3 (pow eps 3))

simplify425.0ms

Counts
19 → 46
Calls

19 calls. Slowest were:

169.0ms
(* (exp (* 2/3 (pow eps 3))) (* (exp (* 2/5 (pow eps 5))) (exp (* 2 eps))))
135.0ms
(* (exp (* 2/3 (pow eps 3))) (exp (+ (* 2/5 (pow eps 5)) (* 2 eps))))
29.0ms
(+ (* 2/3 (pow eps 3)) (+ (* 2 eps) (* 2/5 (pow eps 5))))

prune619.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0b

localize8.0ms

Local error

Found 3 expressions with local error:

0.1b
(* 2/3 (pow eps 3))
0.1b
(* 2/5 (pow eps 5))
0.0b
(+ (* 2/3 (pow eps 3)) (* 2/5 (pow eps 5)))

rewrite6.0ms

Algorithm
rewrite-expression-head
Counts
3 → 35
Calls

3 calls. Slowest were:

3.0ms
(+ (* 2/3 (pow eps 3)) (* 2/5 (pow eps 5)))
1.0ms
(* 2/3 (pow eps 3))
1.0ms
(* 2/5 (pow eps 5))

series136.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

74.0ms
(+ (* 2/3 (pow eps 3)) (* 2/5 (pow eps 5)))
36.0ms
(* 2/5 (pow eps 5))
26.0ms
(* 2/3 (pow eps 3))

simplify123.0ms

Counts
17 → 44
Calls

17 calls. Slowest were:

27.0ms
(* (exp (* 2/3 (pow eps 3))) (exp (* 2/5 (pow eps 5))))
19.0ms
(+ (* 2/3 (pow eps 3)) (* 2/5 (pow eps 5)))
11.0ms
(+ (* 2/3 (pow eps 3)) (* 2/5 (pow eps 5)))

prune757.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0b

localize24.0ms

Local error

Found 4 expressions with local error:

7.0b
(log (cbrt (/ (- 1 eps) (+ eps 1))))
7.0b
(log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1)))))
0.0b
(+ (log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1))))) (log (cbrt (/ (- 1 eps) (+ eps 1)))))
0.0b
(cbrt (/ (- 1 eps) (+ eps 1)))

rewrite60.0ms

Algorithm
rewrite-expression-head
Counts
4 → 124
Calls

4 calls. Slowest were:

39.0ms
(+ (log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1))))) (log (cbrt (/ (- 1 eps) (+ eps 1)))))
13.0ms
(log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1)))))
3.0ms
(log (cbrt (/ (- 1 eps) (+ eps 1))))

series971.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

412.0ms
(+ (log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1))))) (log (cbrt (/ (- 1 eps) (+ eps 1)))))
305.0ms
(log (* (cbrt (/ (- 1 eps) (+ eps 1))) (cbrt (/ (- 1 eps) (+ eps 1)))))
189.0ms
(log (cbrt (/ (- 1 eps) (+ eps 1))))
65.0ms
(cbrt (/ (- 1 eps) (+ eps 1)))

simplify3.8s

Counts
105 → 136
Calls

105 calls. Slowest were:

434.0ms
(+ (log (* (/ (- 1 eps) (+ eps 1)) (/ (- 1 eps) (+ eps 1)))) (log (/ (- 1 eps) (+ eps 1))))
277.0ms
(- (+ (* 2/9 (* (/ 1 (pow eps 2)) (pow -1 1/3))) (pow -1 1/3)) (* 2/3 (* (/ 1 eps) (pow -1 1/3))))
248.0ms
(- (+ (* 2/9 (* (/ 1 (pow eps 2)) (pow -1 1/3))) (pow -1 1/3)) (* 2/3 (* (/ 1 eps) (pow -1 1/3))))

prune949.0ms

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0b

regimes19.0ms

Accuracy

0% (0.2b remaining)

Error of 0.2b against oracle of 0.0b and baseline of 0.2b

bsearch6.0ms