Average Error: 15.2 → 6.0
Time: 21.3s
Precision: 64
Internal Precision: 128
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 4.141367796861846 \cdot 10^{+16}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - (\alpha \cdot \left(\frac{1}{2.0 + \left(\beta + \alpha\right)}\right) + \left(-1.0\right))_*}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - (\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(4.0 - \frac{8.0}{\alpha}\right) + \left(-\frac{2.0}{\alpha}\right))_*}{2.0}\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 4.141367796861846e+16

    1. Initial program 0.4

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub0.4

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-0.4

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied div-inv0.4

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\color{blue}{\alpha \cdot \frac{1}{\left(\alpha + \beta\right) + 2.0}} - 1.0\right)}{2.0}\]
    7. Applied fma-neg0.4

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{(\alpha \cdot \left(\frac{1}{\left(\alpha + \beta\right) + 2.0}\right) + \left(-1.0\right))_*}}{2.0}\]

    if 4.141367796861846e+16 < alpha

    1. Initial program 49.4

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub49.4

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-47.8

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied clear-num47.8

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\color{blue}{\frac{1}{\frac{\left(\alpha + \beta\right) + 2.0}{\alpha}}} - 1.0\right)}{2.0}\]
    7. Taylor expanded around inf 18.8

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(4.0 \cdot \frac{1}{{\alpha}^{2}} - \left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2.0}\]
    8. Simplified18.8

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(4.0 - \frac{8.0}{\alpha}\right) + \left(-\frac{2.0}{\alpha}\right))_*}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 4.141367796861846 \cdot 10^{+16}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - (\alpha \cdot \left(\frac{1}{2.0 + \left(\beta + \alpha\right)}\right) + \left(-1.0\right))_*}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - (\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(4.0 - \frac{8.0}{\alpha}\right) + \left(-\frac{2.0}{\alpha}\right))_*}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/1"
  :pre (and (> alpha -1) (> beta -1))
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))

Details

Time bar (total: 20.1s)Debug log

sample45.0ms

Algorithm
intervals

simplify107.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
107.0ms
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0)

prune7.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 18.0b

localize16.0ms

Local error

Found 2 expressions with local error:

1.9b
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
0.0b
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

rewrite43.0ms

Algorithm
rewrite-expression-head
Rules
18×times-frac
17×add-cube-cbrt
17×*-un-lft-identity
17×add-sqr-sqrt
15×fma-def
associate-/r/
add-exp-log
add-cbrt-cube
associate-/l*
flip-+
flip3-+
associate-/r*
associate-/l/
add-log-exp
div-inv
log1p-expm1-u
div-sub
pow1
expm1-log1p-u
flip--
associate-+l-
div-exp
flip3--
frac-2neg
clear-num
+-commutative
cbrt-undiv
Counts
2 → 62
Calls
2 calls:
Slowest
32.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
10.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

series94.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
55.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
40.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

simplify2.5s

Counts
51 → 68
Calls
51 calls:
Slowest
497.0ms
(/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
231.0ms
(+ (* (+ alpha beta) (+ alpha beta)) (- (* 2.0 2.0) (* (+ alpha beta) 2.0)))
186.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.5 alpha)))
185.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta)))
177.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta)))

prune713.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 17.1b

localize27.0ms

Local error

Found 4 expressions with local error:

1.9b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.0b
(/ beta (+ (+ alpha beta) 2.0))
0.0b
(/ alpha (+ (+ alpha beta) 2.0))
0.0b
(/ (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) 2.0)

rewrite68.0ms

Algorithm
rewrite-expression-head
Rules
10×*-un-lft-identity
10×add-sqr-sqrt
add-cube-cbrt
associate-/r/
fma-neg
associate-/r*
associate-/l*
associate-/l/
add-log-exp
div-inv
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
expm1-log1p-u
flip--
flip-+
flip3--
flip3-+
frac-2neg
clear-num
frac-sub
difference-of-squares
distribute-lft-out--
div-sub
sub-neg
Counts
4 → 75
Calls
4 calls:
Slowest
53.0ms
(/ (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) 2.0)
11.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
2.0ms
(/ alpha (+ (+ alpha beta) 2.0))
2.0ms
(/ beta (+ (+ alpha beta) 2.0))

series152.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
50.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
43.0ms
(/ (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) 2.0)
33.0ms
(/ alpha (+ (+ alpha beta) 2.0))
26.0ms
(/ beta (+ (+ alpha beta) 2.0))

simplify4.0s

Counts
34 → 87
Calls
34 calls:
Slowest
684.0ms
(- (* beta (+ (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (+ (+ alpha beta) 2.0) (- (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (* 1.0 1.0))))
429.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.25 (* beta alpha))))
408.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
238.0ms
(- (pow (/ beta (+ (+ alpha beta) 2.0)) 3) (pow (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0) 3))
220.0ms
(+ (* (+ alpha beta) (+ alpha beta)) (- (* 2.0 2.0) (* (+ alpha beta) 2.0)))

prune860.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 3.5b

localize13.0ms

Local error

Found 4 expressions with local error:

1.9b
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
0.3b
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))
0.0b
(/ beta (+ (+ alpha beta) 2.0))
0.0b
(/ (+ (+ alpha beta) 2.0) alpha)

rewrite20.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
associate-/r*
div-inv
add-exp-log
fma-neg
pow1
add-log-exp
log1p-expm1-u
associate-/r/
add-cbrt-cube
expm1-log1p-u
associate-/l*
frac-2neg
clear-num
associate-/l/
flip-+
flip3-+
inv-pow
flip--
pow-flip
flip3--
sub-neg
rec-exp
Counts
4 → 72
Calls
4 calls:
Slowest
11.0ms
(/ (+ (+ alpha beta) 2.0) alpha)
4.0ms
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
2.0ms
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))
2.0ms
(/ beta (+ (+ alpha beta) 2.0))

series143.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
66.0ms
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
29.0ms
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))
29.0ms
(/ beta (+ (+ alpha beta) 2.0))
19.0ms
(/ (+ (+ alpha beta) 2.0) alpha)

simplify2.1s

Counts
29 → 84
Calls
29 calls:
Slowest
454.0ms
(+ (pow (+ alpha beta) 3) (pow 2.0 3))
396.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.25 (* beta alpha))))
250.0ms
(- (* 0.5 alpha) (+ (* 0.25 (pow alpha 2)) (* 0.25 (* beta alpha))))
221.0ms
(- (* 4.0 (/ 1 (pow alpha 2))) (+ (* 2.0 (/ 1 alpha)) (* 8.0 (/ 1 (pow alpha 3)))))
187.0ms
(- (* 4.0 (/ 1 (pow alpha 2))) (+ (* 2.0 (/ 1 alpha)) (* 8.0 (/ 1 (pow alpha 3)))))

prune850.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 3.5b

localize21.0ms

Local error

Found 4 expressions with local error:

6.5b
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
6.5b
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
6.5b
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
1.9b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)

rewrite12.0ms

Algorithm
rewrite-expression-head
Rules
18×cbrt-prod
add-cube-cbrt
associate-/r/
*-un-lft-identity
add-sqr-sqrt
fma-neg
add-log-exp
div-inv
log1p-expm1-u
flip-+
add-exp-log
add-cbrt-cube
flip3-+
pow1
expm1-log1p-u
pow1/3
cbrt-div
flip--
flip3--
sub-neg
Counts
4 → 70
Calls
4 calls:
Slowest
8.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
1.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
1.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
1.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))

series463.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
160.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
120.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
120.0ms
(cbrt (/ beta (+ (+ alpha beta) 2.0)))
63.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)

simplify4.4s

Counts
37 → 82
Calls
37 calls:
Slowest
537.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
449.0ms
(cbrt (/ beta (+ (pow (+ alpha beta) 3) (pow 2.0 3))))
429.0ms
(cbrt (/ beta (+ (pow (+ alpha beta) 3) (pow 2.0 3))))
418.0ms
(cbrt (/ beta (+ (pow (+ alpha beta) 3) (pow 2.0 3))))
206.0ms
(- (+ (* (cbrt -1) (pow -1 1/3)) (* 0.8888888888888888 (* (/ (cbrt -1) (pow beta 2)) (pow -1 1/3)))) (* 0.6666666666666666 (* (/ (cbrt -1) beta) (pow -1 1/3))))

prune923.0ms

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 3.5b

regimes263.0ms

Accuracy

73.5% (3.2b remaining)

Error of 6.0b against oracle of 2.8b and baseline of 14.8b

bsearch91.0ms

end0.0ms

sample2.2s

Algorithm
intervals