Average Error: 29.0 → 0.1
Time: 19.6s
Precision: 64
Internal Precision: 128
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -9416.721535543154 \lor \neg \left(x \le 12753.559648949982\right):\\ \;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\ \mathbf{else}:\\ \;\;\;\;\log \left(\sqrt{e^{\frac{x}{1 + x} - \frac{1 + x}{x - 1}}}\right) + \left(\log \left(\sqrt{e^{\frac{-\left(1 + x\right)}{x - 1}}}\right) + \log \left(\sqrt{e^{\frac{x}{1 + x}}}\right)\right)\\ \end{array}\]

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -9416.721535543154 or 12753.559648949982 < x

    1. Initial program 59.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Taylor expanded around inf 0.3

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

      \[\leadsto \color{blue}{\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}}\]

    if -9416.721535543154 < x < 12753.559648949982

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-log-exp0.1

      \[\leadsto \color{blue}{\log \left(e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}\right)}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt0.1

      \[\leadsto \log \color{blue}{\left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}} \cdot \sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right)}\]
    6. Applied log-prod0.1

      \[\leadsto \color{blue}{\log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right) + \log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right)}\]
    7. Using strategy rm
    8. Applied sub-neg0.1

      \[\leadsto \log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right) + \log \left(\sqrt{e^{\color{blue}{\frac{x}{x + 1} + \left(-\frac{x + 1}{x - 1}\right)}}}\right)\]
    9. Applied exp-sum0.1

      \[\leadsto \log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right) + \log \left(\sqrt{\color{blue}{e^{\frac{x}{x + 1}} \cdot e^{-\frac{x + 1}{x - 1}}}}\right)\]
    10. Applied sqrt-prod0.1

      \[\leadsto \log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right) + \log \color{blue}{\left(\sqrt{e^{\frac{x}{x + 1}}} \cdot \sqrt{e^{-\frac{x + 1}{x - 1}}}\right)}\]
    11. Applied log-prod0.1

      \[\leadsto \log \left(\sqrt{e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\right) + \color{blue}{\left(\log \left(\sqrt{e^{\frac{x}{x + 1}}}\right) + \log \left(\sqrt{e^{-\frac{x + 1}{x - 1}}}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -9416.721535543154 \lor \neg \left(x \le 12753.559648949982\right):\\ \;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\ \mathbf{else}:\\ \;\;\;\;\log \left(\sqrt{e^{\frac{x}{1 + x} - \frac{1 + x}{x - 1}}}\right) + \left(\log \left(\sqrt{e^{\frac{-\left(1 + x\right)}{x - 1}}}\right) + \log \left(\sqrt{e^{\frac{x}{1 + x}}}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019022 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))

Details

Time bar (total: 18.9s)Debug log

sample69.0ms

Algorithm
intervals
Results
24.0ms51×body1280valid
13.0ms134×body80valid
11.0ms31×body640valid
8.0ms26×body320valid
3.0ms14×body160valid

simplify13.0ms

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

prune4.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 28.8b

localize23.0ms

Local error

Found 3 expressions with local error:

4.1b
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
0.0b
(/ (+ x 1) (- x 1))
0.0b
(/ x (+ x 1))

rewrite42.0ms

Algorithm
rewrite-expression-head
Rules
17×add-sqr-sqrt
14×*-un-lft-identity
12×add-cube-cbrt
10×times-frac
associate-/r*
add-log-exp
add-exp-log
add-cbrt-cube
associate-/r/
associate-/l*
pow1
associate-/l/
difference-of-squares
flip--
div-inv
flip-+
flip3--
flip3-+
frac-2neg
clear-num
distribute-lft-out--
frac-sub
div-exp
diff-log
sub-neg
cbrt-undiv
Counts
3 → 62
Calls
3 calls:
Slowest
35.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
5.0ms
(/ (+ x 1) (- x 1))
1.0ms
(/ x (+ x 1))

series59.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
34.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
14.0ms
(/ x (+ x 1))
11.0ms
(/ (+ x 1) (- x 1))

simplify2.1s

Counts
51 → 71
Calls
51 calls:
Slowest
420.0ms
(- (* x (- x 1)) (* (+ x 1) (+ x 1)))
321.0ms
(/ (* (* (+ x 1) (+ x 1)) (+ x 1)) (* (* (- x 1) (- x 1)) (- x 1)))
276.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))
223.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))
200.0ms
(- (+ (* 2 x) (+ (* 2 (pow x 2)) 1)))

prune557.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.1b

localize12.0ms

Local error

Found 4 expressions with local error:

4.1b
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
4.1b
(log (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))))
0.0b
(/ (+ x 1) (- x 1))
0.0b
(exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))

rewrite80.0ms

Algorithm
rewrite-expression-head
Rules
30×add-sqr-sqrt
21×*-un-lft-identity
15×add-cube-cbrt
12×times-frac
12×exp-prod
add-log-exp
log-pow
difference-of-squares
add-exp-log
add-cbrt-cube
log-prod
pow1
exp-sum
distribute-lft-out--
associate-/l*
sub-neg
associate-/r*
associate-/l/
rem-exp-log
flip--
associate-/r/
diff-log
exp-diff
flip3--
div-inv
flip-+
frac-sub
rem-log-exp
div-exp
flip3-+
frac-2neg
clear-num
log-div
cbrt-undiv
Counts
4 → 86
Calls
4 calls:
Slowest
34.0ms
(log (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))))
27.0ms
(exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))
12.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
6.0ms
(/ (+ x 1) (- x 1))

series109.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
41.0ms
(exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))
30.0ms
(log (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))))
28.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
10.0ms
(/ (+ x 1) (- x 1))

simplify2.9s

Counts
73 → 98
Calls
73 calls:
Slowest
421.0ms
(- (* x (- x 1)) (* (+ x 1) (+ x 1)))
370.0ms
(/ (* (* (+ x 1) (+ x 1)) (+ x 1)) (* (* (- x 1) (- x 1)) (- x 1)))
255.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))
232.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))
217.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))

prune784.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize9.0ms

Local error

Found 4 expressions with local error:

4.1b
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
4.1b
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
4.1b
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
4.1b
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))

rewrite33.0ms

Algorithm
rewrite-expression-head
Rules
18×add-sqr-sqrt
16×log-prod
12×*-un-lft-identity
10×sqrt-prod
add-log-exp
add-cube-cbrt
add-exp-log
pow1
difference-of-squares
log-pow
exp-sum
add-cbrt-cube
sub-neg
distribute-lft-out--
flip--
frac-sub
rem-log-exp
diff-log
sqrt-div
exp-diff
pow1/2
flip3--
times-frac
log-div
Counts
4 → 70
Calls
4 calls:
Slowest
11.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
9.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
6.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
6.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))

series261.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
98.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
90.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
42.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
31.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))

simplify3.3s

Counts
48 → 82
Calls
48 calls:
Slowest
399.0ms
(- (* x (- x 1)) (* (+ x 1) (+ x 1)))
392.0ms
(- (* x (- x 1)) (* (+ x 1) (+ x 1)))
285.0ms
(- (+ (* 3/2 (/ 1 (pow x 3))) (+ (* 1/2 (/ 1 (pow x 2))) (* 3/2 (/ 1 x)))))
254.0ms
(- (+ (* 3/2 (/ 1 (pow x 3))) (+ (* 1/2 (/ 1 (pow x 2))) (* 3/2 (/ 1 x)))))
253.0ms
(- (+ (* 3/2 (/ 1 (pow x 3))) (+ (* 1/2 (/ 1 (pow x 2))) (* 3/2 (/ 1 x)))))

prune867.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.0b

localize24.0ms

Local error

Found 4 expressions with local error:

4.1b
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
4.1b
(+ (log (sqrt (exp (/ x (+ x 1))))) (log (sqrt (exp (- (/ (+ x 1) (- x 1)))))))
4.1b
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
3.3b
(log (sqrt (exp (/ x (+ x 1)))))

rewrite36.0ms

Algorithm
rewrite-expression-head
Rules
26×log-prod
18×*-un-lft-identity
17×add-sqr-sqrt
14×sqrt-prod
12×add-cube-cbrt
10×log-pow
10×pow1
add-log-exp
add-exp-log
associate-+r+
associate-+l+
distribute-lft-out
pow1/2
add-cbrt-cube
sqrt-div
log-div
difference-of-squares
exp-sum
rem-log-exp
exp-diff
sub-neg
associate-+r-
distribute-lft-out--
flip--
flip-+
frac-sub
diff-log
flip3--
times-frac
flip3-+
sum-log
+-commutative
exp-neg
neg-sub0
Counts
4 → 81
Calls
4 calls:
Slowest
14.0ms
(+ (log (sqrt (exp (/ x (+ x 1))))) (log (sqrt (exp (- (/ (+ x 1) (- x 1)))))))
11.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
6.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))
3.0ms
(log (sqrt (exp (/ x (+ x 1)))))

series357.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
120.0ms
(+ (log (sqrt (exp (/ x (+ x 1))))) (log (sqrt (exp (- (/ (+ x 1) (- x 1)))))))
109.0ms
(log (sqrt (exp (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))))
74.0ms
(log (sqrt (exp (/ x (+ x 1)))))
54.0ms
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1)))

simplify3.2s

Counts
57 → 93
Calls
57 calls:
Slowest
448.0ms
(- (* x (- x 1)) (* (+ x 1) (+ x 1)))
413.0ms
(- (+ (* 1/2 x) (* 1/2 (pow x 3))) (* 1/2 (pow x 2)))
285.0ms
(- (+ (* 3/2 (/ 1 (pow x 3))) (+ (* 1/2 (/ 1 (pow x 2))) (* 3/2 (/ 1 x)))))
269.0ms
(- (+ (* 3 (/ 1 (pow x 3))) (+ (/ 1 (pow x 2)) (* 3 (/ 1 x)))))
256.0ms
(- (+ (log (sqrt (exp -1))) (log (sqrt E))) (+ (* 1/2 (/ 1 (pow x 2))) (* 3/2 (/ 1 x))))

prune1.4s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

regimes137.0ms

Accuracy

99.9% (0.0b remaining)

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

bsearch122.0ms

end0.0ms

sample2.4s

Algorithm
intervals
Results
1.2s1718×body1280valid
428.0ms4131×body80valid
412.0ms1151×body640valid
188.0ms658×body320valid
71.0ms342×body160valid