Average Error: 16.3 → 6.6
Time: 35.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 2.352416918038036 \cdot 10^{+32}:\\ \;\;\;\;\frac{e^{\log \left((\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{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - (\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 < 2.352416918038036e+32

    1. Initial program 1.5

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

      \[\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-log1.5

      \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}}}{2.0}\]
    7. Using strategy rm
    8. Applied div-inv1.5

      \[\leadsto \frac{e^{\log \left(\color{blue}{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2.0}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}}{2.0}\]
    9. Applied fma-neg1.5

      \[\leadsto \frac{e^{\log \color{blue}{\left((\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 2.352416918038036e+32 < alpha

    1. Initial program 50.8

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

      \[\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-49.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. Taylor expanded around -inf 18.3

      \[\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}\]
    6. Simplified18.3

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

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

sample49.0ms

Algorithm
intervals

simplify51.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 13.7b

localize21.0ms

Local error

Found 2 expressions with local error:

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

rewrite28.0ms

Algorithm
rewrite-expression-head
Counts
2 → 62
Calls

2 calls. Slowest were:

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

series88.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

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

simplify2.4s

Counts
51 → 68
Calls

51 calls. Slowest were:

469.0ms
(/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
191.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
175.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 1) (* 2.0 (/ 1 beta)))

prune628.0ms

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 13.2b

localize13.0ms

Local error

Found 4 expressions with local error:

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

rewrite30.0ms

Algorithm
rewrite-expression-head
Counts
4 → 98
Calls

4 calls. Slowest were:

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

series142.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

43.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
37.0ms
(/ alpha (+ (+ alpha beta) 2.0))
34.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
28.0ms
(/ beta (+ (+ alpha beta) 2.0))

simplify9.7s

Counts
76 → 110
Calls

76 calls. Slowest were:

961.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))))
546.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))))))
511.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))

prune1.1s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 2.3b

localize9.0ms

Local error

Found 4 expressions with local error:

10.7b
(log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))
1.2b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.5b
(exp (log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))
0.0b
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))

rewrite85.0ms

Algorithm
rewrite-expression-head
Counts
4 → 107
Calls

4 calls. Slowest were:

33.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
24.0ms
(exp (log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))
17.0ms
(log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))

series214.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

80.0ms
(log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))
48.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
43.0ms
(exp (log (- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))
43.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))

simplify12.1s

Counts
90 → 119
Calls

90 calls. Slowest were:

722.0ms
(exp (log (- (* 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))))))
668.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))))
615.0ms
(fma (/ beta (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- (* (sqrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)) (sqrt (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))

prune1.5s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 2.3b

localize35.0ms

Local error

Found 4 expressions with local error:

10.7b
(log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))
1.2b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.5b
(exp (log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))
0.0b
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))

rewrite25.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

13.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
4.0ms
(exp (log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))
2.0ms
(log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))

series246.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

87.0ms
(log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))))
60.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
58.0ms
(exp (log (fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))))
41.0ms
(fma beta (/ 1 (+ (+ alpha beta) 2.0)) (- (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)))

simplify2.9s

Counts
27 → 72
Calls

27 calls. Slowest were:

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

prune1.0s

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 2.3b

regimes211.0ms

Accuracy

72.6% (3.5b remaining)

Error of 6.6b against oracle of 3.1b and baseline of 15.9b

bsearch116.0ms

end0.0ms

sample2.1s

Algorithm
intervals