Average Error: 16.2 → 6.4
Time: 28.9s
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 3.2376133163816985 \cdot 10^{+43}:\\ \;\;\;\;e^{\log \left(\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)}{2.0}\right)}\\ \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 < 3.2376133163816985e+43

    1. Initial program 2.1

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

      \[\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-2.1

      \[\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 add-exp-log2.1

      \[\leadsto \color{blue}{e^{\log \left(\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\right)}}\]

    if 3.2376133163816985e+43 < alpha

    1. Initial program 52.0

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

      \[\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-50.3

      \[\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-num50.4

      \[\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 17.2

      \[\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. Simplified17.2

      \[\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.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 3.2376133163816985 \cdot 10^{+43}:\\ \;\;\;\;e^{\log \left(\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)}{2.0}\right)}\\ \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 2019002 +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: 27.9s)Debug log

sample81.0ms

Algorithm
intervals

simplify70.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

70.0ms
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0)

prune17.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 16.8b

localize34.0ms

Local error

Found 2 expressions with local error:

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

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
2 → 62
Calls

2 calls. Slowest were:

17.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
5.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

series103.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

56.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
48.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

simplify2.9s

Counts
51 → 68
Calls

51 calls. Slowest were:

573.0ms
(/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
224.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
221.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta)))

prune695.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 16.2b

localize28.0ms

Local error

Found 4 expressions with local error:

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

rewrite93.0ms

Algorithm
rewrite-expression-head
Counts
4 → 75
Calls

4 calls. Slowest were:

68.0ms
(/ (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) 2.0)
18.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
4.0ms
(/ alpha (+ (+ alpha beta) 2.0))

series187.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

57.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
54.0ms
(/ (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) 2.0)
39.0ms
(/ beta (+ (+ alpha beta) 2.0))
37.0ms
(/ alpha (+ (+ alpha beta) 2.0))

simplify4.0s

Counts
34 → 87
Calls

34 calls. Slowest were:

605.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))))
535.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
448.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.25 (* beta alpha))))

prune952.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 3.1b

localize21.0ms

Local error

Found 4 expressions with local error:

1.4b
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
0.5b
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))
0.0b
(/ (+ (+ alpha beta) 2.0) alpha)
0.0b
(/ beta (+ (+ alpha beta) 2.0))

rewrite19.0ms

Algorithm
rewrite-expression-head
Counts
4 → 72
Calls

4 calls. Slowest were:

8.0ms
(/ (+ (+ alpha beta) 2.0) alpha)
4.0ms
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
2.0ms
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))

series149.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

50.0ms
(- (/ 1 (/ (+ (+ alpha beta) 2.0) alpha)) 1.0)
40.0ms
(/ 1 (/ (+ (+ alpha beta) 2.0) alpha))
37.0ms
(/ beta (+ (+ alpha beta) 2.0))
21.0ms
(/ (+ (+ alpha beta) 2.0) alpha)

simplify2.6s

Counts
29 → 84
Calls

29 calls. Slowest were:

626.0ms
(+ (pow (+ alpha beta) 3) (pow 2.0 3))
495.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.25 (* beta alpha))))
319.0ms
(- (* 0.5 alpha) (+ (* 0.25 (pow alpha 2)) (* 0.25 (* beta alpha))))

prune771.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 3.1b

localize35.0ms

Local error

Found 4 expressions with local error:

1.4b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.4b
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
0.3b
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
0.0b
(/ alpha (+ (+ alpha beta) 2.0))

rewrite39.0ms

Algorithm
rewrite-expression-head
Counts
4 → 121
Calls

4 calls. Slowest were:

15.0ms
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
13.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
4.0ms
(/ beta (sqrt (+ (+ alpha beta) 2.0)))

series186.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

55.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
51.0ms
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
40.0ms
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
39.0ms
(/ alpha (+ (+ alpha beta) 2.0))

simplify10.6s

Counts
115 → 133
Calls

115 calls. Slowest were:

595.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (sqrt (sqrt (+ (+ alpha beta) 2.0))))
587.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (* (cbrt (sqrt (+ (+ alpha beta) 2.0))) (cbrt (sqrt (+ (+ alpha beta) 2.0)))))
564.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (sqrt (* (cbrt (+ (+ alpha beta) 2.0)) (cbrt (+ (+ alpha beta) 2.0)))))

prune1.6s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 3.1b

regimes224.0ms

Accuracy

73.1% (3.5b remaining)

Error of 6.4b against oracle of 2.9b and baseline of 15.8b

bsearch118.0ms

end0.0ms

sample2.3s

Algorithm
intervals