Average Error: 60.7 → 0.5
Time: 34.0s
Precision: 64
Internal Precision: 128
\[\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\]
\[\left(-1 - x\right) - x \cdot \left(\frac{1}{2} \cdot x\right)\]

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original60.7
Target0.4
Herbie0.5
\[-\left(\left(\left(1 + x\right) + \frac{x \cdot x}{2}\right) + \frac{5}{12} \cdot {x}^{3}\right)\]

Derivation

  1. Initial program 60.7

    \[\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\]
  2. Taylor expanded around 0 0.5

    \[\leadsto \color{blue}{-\left(x + \left(\frac{1}{2} \cdot {x}^{2} + 1\right)\right)}\]
  3. Simplified0.5

    \[\leadsto \color{blue}{\left(-1 - x\right) - x \cdot \left(x \cdot \frac{1}{2}\right)}\]
  4. Final simplification0.5

    \[\leadsto \left(-1 - x\right) - x \cdot \left(\frac{1}{2} \cdot x\right)\]

Reproduce

herbie shell --seed 323378853 
(FPCore (x)
  :name "qlog (example 3.10)"
  :pre (and (< -1 x) (< x 1))

  :herbie-target
  (- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 5/12 (pow x 3))))

  (/ (log (- 1 x)) (log (+ 1 x))))

Details

Time bar (total: 32.9s)Debug log

sample395.0ms

Algorithm
intervals
Results
227.0ms112×body1280valid
92.0ms79×body640valid
38.0ms36×body320valid
11.0ms256×pre80true
9.0ms23×body160valid
1.0msbody80valid

simplify10.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
10.0ms
(/ (log (- 1 x)) (log (+ 1 x)))

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 61.3b

localize36.0ms

Local error

Found 3 expressions with local error:

5.7b
(log (+ 1 x))
5.6b
(log (- 1 x))
0.0b
(/ (log (- 1 x)) (log (+ 1 x)))

rewrite18.0ms

Algorithm
rewrite-expression-head
Rules
16×times-frac
15×add-cube-cbrt
15×*-un-lft-identity
15×pow1
15×add-sqr-sqrt
12×log-pow
add-exp-log
log-prod
log-div
add-cbrt-cube
associate-/l*
associate-/r*
add-log-exp
flip--
rem-log-exp
div-sub
flip3--
div-inv
flip-+
div-exp
flip3-+
frac-2neg
clear-num
cbrt-undiv
Counts
3 → 66
Calls
3 calls:
Slowest
12.0ms
(/ (log (- 1 x)) (log (+ 1 x)))
2.0ms
(log (+ 1 x))
2.0ms
(log (- 1 x))

series222.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
119.0ms
(/ (log (- 1 x)) (log (+ 1 x)))
56.0ms
(log (- 1 x))
46.0ms
(log (+ 1 x))

simplify3.4s

Counts
63 → 75
Calls
63 calls:
Slowest
420.0ms
(- (+ (/ 1 x) (log -1)) (+ (log (/ -1 x)) (* 1/2 (/ 1 (pow x 2)))))
400.0ms
(log (- (pow 1 3) (pow x 3)))
354.0ms
(- (log -1) (+ (log (/ 1 x)) (+ (* 1/2 (/ 1 (pow x 2))) (/ 1 x))))
263.0ms
(- (+ x (+ (* 1/3 (pow x 3)) (* 1/2 (pow x 2)))))
263.0ms
(- (+ (/ (log (/ -1 x)) (* x (pow (- (log -1) (log (/ -1 x))) 2))) (/ 1 (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (+ (/ (log (/ -1 x)) (- (log -1) (log (/ -1 x)))) (+ (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 3))) (+ (/ 1 (* x (- (log -1) (log (/ -1 x))))) (+ (* 1/2 (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (* 1/2 (/ 1 (* (pow x 2) (- (log -1) (log (/ -1 x)))))))))))

prune1.1s

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize29.0ms

Local error

Found 0 expressions with local error:

rewrite0.0ms

Algorithm
rewrite-expression-head
Rules
Counts
0 → 0
Calls
0 calls:
Slowest

series0.0ms

Counts
0 → 0
Calls
0 calls:
Slowest

simplify0.0ms

Counts
0 → 0
Calls
0 calls:
Slowest

prune23.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

localize78.0ms

Local error

Found 4 expressions with local error:

5.7b
(log (+ (* 1 1) (+ (* x x) (* 1 x))))
5.7b
(log (+ 1 x))
1.2b
(log (- 1 (pow x 3)))
0.0b
(/ (- (log (- 1 (pow x 3))) (log (+ (* 1 1) (+ (* x x) (* 1 x))))) (log (+ 1 x)))

rewrite57.0ms

Algorithm
rewrite-expression-head
Rules
42×*-un-lft-identity
36×pow1
32×log-pow
32×times-frac
31×add-sqr-sqrt
21×add-cube-cbrt
20×distribute-lft-out--
10×log-prod
add-exp-log
associate-/l*
add-cbrt-cube
log-div
difference-of-squares
add-log-exp
associate-/r*
rem-log-exp
associate-/l/
flip--
flip-+
flip3--
flip3-+
distribute-lft-out
div-inv
div-exp
div-sub
frac-2neg
clear-num
cbrt-undiv
Counts
4 → 102
Calls
4 calls:
Slowest
39.0ms
(/ (- (log (- 1 (pow x 3))) (log (+ (* 1 1) (+ (* x x) (* 1 x))))) (log (+ 1 x)))
9.0ms
(log (+ (* 1 1) (+ (* x x) (* 1 x))))
2.0ms
(log (- 1 (pow x 3)))
2.0ms
(log (+ 1 x))

series799.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
516.0ms
(log (- 1 (pow x 3)))
183.0ms
(/ (- (log (- 1 (pow x 3))) (log (+ (* 1 1) (+ (* x x) (* 1 x))))) (log (+ 1 x)))
54.0ms
(log (+ (* 1 1) (+ (* x x) (* 1 x))))
46.0ms
(log (+ 1 x))

simplify7.1s

Counts
107 → 114
Calls
107 calls:
Slowest
419.0ms
(- (+ (/ 1 x) (log -1)) (+ (log (/ -1 x)) (* 1/2 (/ 1 (pow x 2)))))
390.0ms
(- (log -1) (+ (* 3 (log (/ 1 x))) (+ (/ 1 (pow x 3)) (* 1/2 (/ 1 (pow x 6))))))
314.0ms
(- (+ (* 3 (log (/ -1 x))) (+ (/ 1 (pow x 3)) (* 1/2 (/ 1 (pow x 6))))))
269.0ms
(log (- (* (* 1 1) (* 1 1)) (* (+ (* x x) (* 1 x)) (+ (* x x) (* 1 x)))))
255.0ms
(- (+ (/ (log (/ -1 x)) (* x (pow (- (log -1) (log (/ -1 x))) 2))) (/ 1 (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (+ (/ (log (/ -1 x)) (- (log -1) (log (/ -1 x)))) (+ (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 3))) (+ (/ 1 (* x (- (log -1) (log (/ -1 x))))) (+ (* 1/2 (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (* 1/2 (/ 1 (* (pow x 2) (- (log -1) (log (/ -1 x)))))))))))

prune1.7s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

localize15.0ms

Local error

Found 4 expressions with local error:

5.7b
(log (+ 1 x))
5.6b
(log (- 1 x))
0.0b
(/ (log (+ 1 x)) (log (- 1 x)))
0.0b
(/ 1 (/ (log (+ 1 x)) (log (- 1 x))))

rewrite23.0ms

Algorithm
rewrite-expression-head
Rules
32×times-frac
25×add-cube-cbrt
25×*-un-lft-identity
25×pow1
25×add-sqr-sqrt
24×associate-/r*
20×log-pow
11×add-exp-log
add-cbrt-cube
log-prod
log-div
add-log-exp
associate-/l*
div-inv
flip-+
rem-log-exp
div-exp
div-sub
flip3-+
frac-2neg
clear-num
rec-exp
inv-pow
flip--
pow-flip
associate-/r/
flip3--
cbrt-undiv
Counts
4 → 101
Calls
4 calls:
Slowest
12.0ms
(/ (log (+ 1 x)) (log (- 1 x)))
4.0ms
(/ 1 (/ (log (+ 1 x)) (log (- 1 x))))
2.0ms
(log (+ 1 x))
2.0ms
(log (- 1 x))

series336.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
121.0ms
(/ 1 (/ (log (+ 1 x)) (log (- 1 x))))
119.0ms
(/ (log (+ 1 x)) (log (- 1 x)))
49.0ms
(log (+ 1 x))
46.0ms
(log (- 1 x))

simplify3.8s

Counts
88 → 113
Calls
88 calls:
Slowest
423.0ms
(- (+ (/ 1 x) (log -1)) (+ (log (/ -1 x)) (* 1/2 (/ 1 (pow x 2)))))
362.0ms
(- (log -1) (+ (log (/ 1 x)) (+ (* 1/2 (/ 1 (pow x 2))) (/ 1 x))))
270.0ms
(- (+ x (+ (* 1/3 (pow x 3)) (* 1/2 (pow x 2)))))
264.0ms
(- (+ (log (/ -1 x)) (+ (* 1/2 (/ 1 (pow x 2))) (/ 1 x))))
264.0ms
(- (+ (/ (log (/ -1 x)) (* x (pow (- (log -1) (log (/ -1 x))) 2))) (/ 1 (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (+ (/ (log (/ -1 x)) (- (log -1) (log (/ -1 x)))) (+ (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 3))) (+ (/ 1 (* x (- (log -1) (log (/ -1 x))))) (+ (* 1/2 (/ (log (/ -1 x)) (* (pow x 2) (pow (- (log -1) (log (/ -1 x))) 2)))) (* 1/2 (/ 1 (* (pow x 2) (- (log -1) (log (/ -1 x)))))))))))

prune1.3s

Pruning

5 alts after pruning (2 fresh and 3 done)

Merged error: 0.0b

regimes72.0ms

Accuracy

0% (0.5b remaining)

Error of 0.5b against oracle of 0.1b and baseline of 0.5b

bsearch2.0ms

end0.0ms

sample12.3s

Algorithm
intervals
Results
7.7s3422×body1280valid
3.0s2452×body640valid
903.0ms1261×body320valid
314.0ms8000×pre80true
256.0ms621×body160valid
45.0ms244×body80valid