Average Error: 16.2 → 6.1
Time: 55.4s
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 31224578.285005733:\\ \;\;\;\;\frac{\log \left(e^{(\beta \cdot \left(\frac{1}{\left(\beta + \alpha\right) + 2.0}\right) + \left(-\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right))_*}\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{(\beta \cdot \left(\frac{1}{\left(\beta + \alpha\right) + 2.0}\right) + \left(-(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(4.0 - \frac{8.0}{\alpha}\right) + \left(-\frac{2.0}{\alpha}\right))_*\right))_*}{2.0}\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 31224578.285005733

    1. Initial program 0.1

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub0.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-0.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 div-inv0.1

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

      \[\leadsto \frac{\color{blue}{(\beta \cdot \left(\frac{1}{\left(\alpha + \beta\right) + 2.0}\right) + \left(-\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right))_*}}{2.0}\]
    8. Using strategy rm
    9. Applied add-log-exp0.1

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

    if 31224578.285005733 < alpha

    1. Initial program 49.5

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

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

      \[\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-inv47.9

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

      \[\leadsto \frac{\color{blue}{(\beta \cdot \left(\frac{1}{\left(\alpha + \beta\right) + 2.0}\right) + \left(-\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right))_*}}{2.0}\]
    8. Taylor expanded around inf 18.7

      \[\leadsto \frac{(\beta \cdot \left(\frac{1}{\left(\alpha + \beta\right) + 2.0}\right) + \left(-\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)}\right))_*}{2.0}\]
    9. Simplified18.7

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

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

Reproduce

herbie shell --seed 2019007 +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: 54.1s)Debug log

sample74.0ms

Algorithm
intervals

simplify67.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

67.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: 14.9b

localize33.0ms

Local error

Found 2 expressions with local error:

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

rewrite43.0ms

Algorithm
rewrite-expression-head
Counts
2 → 62
Calls

2 calls. Slowest were:

31.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
10.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

series79.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

53.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
26.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

simplify2.6s

Counts
51 → 68
Calls

51 calls. Slowest were:

498.0ms
(/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
235.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
209.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta)))

prune575.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 14.1b

localize12.0ms

Local error

Found 4 expressions with local error:

1.8b
(- (/ 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))

rewrite34.0ms

Algorithm
rewrite-expression-head
Counts
4 → 98
Calls

4 calls. Slowest were:

23.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
6.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
2.0ms
(/ alpha (+ (+ alpha beta) 2.0))

series185.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

57.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
49.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
40.0ms
(/ beta (+ (+ alpha beta) 2.0))
39.0ms
(/ alpha (+ (+ alpha beta) 2.0))

simplify9.6s

Counts
76 → 110
Calls

76 calls. Slowest were:

607.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))))
601.0ms
(fma (/ beta (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- (* (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (* (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (cbrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))))
524.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))

prune1.1s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 2.8b

localize12.0ms

Local error

Found 4 expressions with local error:

1.8b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.0b
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))
0.0b
(/ alpha (+ (+ alpha beta) 2.0))
0.0b
(/ 1 (+ (+ alpha beta) 2.0))

rewrite11.0ms

Algorithm
rewrite-expression-head
Counts
4 → 66
Calls

4 calls. Slowest were:

6.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
2.0ms
(/ 1 (+ (+ alpha beta) 2.0))
2.0ms
(/ alpha (+ (+ alpha beta) 2.0))

series155.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

50.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
47.0ms
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))
30.0ms
(/ 1 (+ (+ alpha beta) 2.0))
28.0ms
(/ alpha (+ (+ alpha beta) 2.0))

simplify2.5s

Counts
27 → 78
Calls

27 calls. Slowest were:

577.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
280.0ms
(- (* 0.5 alpha) (+ (* 0.25 (pow alpha 2)) (* 0.25 (* beta alpha))))
224.0ms
(+ (* (+ alpha beta) (+ alpha beta)) (- (* 2.0 2.0) (* (+ alpha beta) 2.0)))

prune823.0ms

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 2.8b

localize51.0ms

Local error

Found 4 expressions with local error:

1.8b
(- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))
0.1b
(* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0)))
0.1b
(pow (/ alpha (+ (+ alpha beta) 2.0)) 3)
0.0b
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (/ (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))))

rewrite48.0ms

Algorithm
rewrite-expression-head
Counts
4 → 190
Calls

4 calls. Slowest were:

30.0ms
(- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))
8.0ms
(* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0)))
3.0ms
(pow (/ alpha (+ (+ alpha beta) 2.0)) 3)

series438.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

269.0ms
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (/ (- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3)) (+ (* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0))) (+ (* 1.0 1.0) (* (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))))
73.0ms
(- (pow (/ alpha (+ (+ alpha beta) 2.0)) 3) (pow 1.0 3))
50.0ms
(* (/ alpha (+ (+ alpha beta) 2.0)) (/ alpha (+ (+ alpha beta) 2.0)))
46.0ms
(pow (/ alpha (+ (+ alpha beta) 2.0)) 3)

simplify30.0s

Counts
244 → 202
Calls

244 calls. Slowest were:

596.0ms
(- (* 24.0 (/ 1 (pow alpha 2))) (+ (* 6.0 (/ 1 alpha)) (* 80.0 (/ 1 (pow alpha 3)))))
531.0ms
(fma (pow alpha 3) (pow (/ 1 (+ (+ alpha beta) 2.0)) 3) (- (* 1.0 (* 1.0 1.0))))
518.0ms
(pow (/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) 3)

prune3.3s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 2.8b

regimes272.0ms

Accuracy

75.9% (3.0b remaining)

Error of 6.1b against oracle of 3.1b and baseline of 15.7b

bsearch90.0ms

end0.0ms

sample2.0s

Algorithm
intervals