Average Error: 16.6 → 6.2
Time: 47.0s
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 7440267031188.264:\\ \;\;\;\;\frac{\frac{\frac{\beta}{\sqrt{2.0 + \left(\beta + \alpha\right)}}}{\sqrt{2.0 + \left(\beta + \alpha\right)}} - (\left(\frac{\alpha}{\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) - 2.0 \cdot 2.0}\right) \cdot \left(\left(\beta + \alpha\right) - 2.0\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 < 7440267031188.264

    1. Initial program 0.2

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

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

      \[\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-sqr-sqrt0.3

      \[\leadsto \frac{\frac{\beta}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt{\left(\alpha + \beta\right) + 2.0}}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\]
    7. Applied associate-/r*0.3

      \[\leadsto \frac{\color{blue}{\frac{\frac{\beta}{\sqrt{\left(\alpha + \beta\right) + 2.0}}}{\sqrt{\left(\alpha + \beta\right) + 2.0}}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\]
    8. Using strategy rm
    9. Applied flip-+0.3

      \[\leadsto \frac{\frac{\frac{\beta}{\sqrt{\left(\alpha + \beta\right) + 2.0}}}{\sqrt{\left(\alpha + \beta\right) + 2.0}} - \left(\frac{\alpha}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2.0 \cdot 2.0}{\left(\alpha + \beta\right) - 2.0}}} - 1.0\right)}{2.0}\]
    10. Applied associate-/r/0.3

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

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

    if 7440267031188.264 < alpha

    1. Initial program 50.3

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 7440267031188.264:\\ \;\;\;\;\frac{\frac{\frac{\beta}{\sqrt{2.0 + \left(\beta + \alpha\right)}}}{\sqrt{2.0 + \left(\beta + \alpha\right)}} - (\left(\frac{\alpha}{\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) - 2.0 \cdot 2.0}\right) \cdot \left(\left(\beta + \alpha\right) - 2.0\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 2018365 +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: 41.7s)Debug log

start136.0ms

Algorithm
intervals

setup92.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 15.8b

localize23.0ms

Local error

Found 2 expressions with local error:

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

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
2 → 62
Calls

2 calls. Slowest were:

16.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
9.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

series85.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

60.0ms
(+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0)
25.0ms
(/ (- beta alpha) (+ (+ alpha beta) 2.0))

simplify2.6s

Counts
51 → 68
Calls

51 calls. Slowest were:

493.0ms
(/ (- beta alpha) (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
251.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
243.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))

prune850.0ms

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 15.2b

localize25.0ms

Local error

Found 4 expressions with local error:

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

rewrite56.0ms

Algorithm
rewrite-expression-head
Counts
4 → 98
Calls

4 calls. Slowest were:

34.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
13.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
3.0ms
(/ beta (+ (+ alpha beta) 2.0))

series189.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

66.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
56.0ms
(- (/ beta (+ (+ alpha beta) 2.0)) (- (/ alpha (+ (+ alpha beta) 2.0)) 1.0))
34.0ms
(/ alpha (+ (+ alpha beta) 2.0))
33.0ms
(/ beta (+ (+ alpha beta) 2.0))

simplify10.3s

Counts
76 → 110
Calls

76 calls. Slowest were:

786.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))))
676.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)))))
599.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))))))

prune1.4s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 1.9b

localize17.0ms

Local error

Found 4 expressions with local error:

0.9b
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
0.4b
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
0.2b
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
0.0b
(/ alpha (+ (+ alpha beta) 2.0))

rewrite37.0ms

Algorithm
rewrite-expression-head
Counts
4 → 121
Calls

4 calls. Slowest were:

14.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)))

series195.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

68.0ms
(- (/ alpha (+ (+ alpha beta) 2.0)) 1.0)
67.0ms
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
37.0ms
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
24.0ms
(/ alpha (+ (+ alpha beta) 2.0))

simplify11.0s

Counts
115 → 133
Calls

115 calls. Slowest were:

970.0ms
(/ alpha (+ (pow (+ alpha beta) 3) (pow 2.0 3)))
614.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (sqrt (* (cbrt (+ (+ alpha beta) 2.0)) (cbrt (+ (+ alpha beta) 2.0)))))
605.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) 1)

prune2.1s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 1.9b

localize41.0ms

Local error

Found 4 expressions with local error:

16.0b
(fma (/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- 1.0))
9.0b
(/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0)))
0.4b
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
0.2b
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
4 → 113
Calls

4 calls. Slowest were:

8.0ms
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))
4.0ms
(/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0)))
2.0ms
(/ beta (sqrt (+ (+ alpha beta) 2.0)))

series198.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

83.0ms
(fma (/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0))) (- (+ alpha beta) 2.0) (- 1.0))
46.0ms
(/ alpha (- (* (+ alpha beta) (+ alpha beta)) (* 2.0 2.0)))
39.0ms
(/ beta (sqrt (+ (+ alpha beta) 2.0)))
30.0ms
(/ (/ beta (sqrt (+ (+ alpha beta) 2.0))) (sqrt (+ (+ alpha beta) 2.0)))

simplify9.9s

Counts
112 → 125
Calls

112 calls. Slowest were:

667.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) 1)
591.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (sqrt 1))
580.0ms
(/ (/ beta (sqrt (+ (pow (+ alpha beta) 3) (pow 2.0 3)))) (* (cbrt (sqrt (+ (+ alpha beta) 2.0))) (cbrt (sqrt (+ (+ alpha beta) 2.0)))))

prune2.1s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 1.9b

regimes155.0ms

Accuracy

78.1% (3.0b remaining)

Error of 6.2b against oracle of 3.2b and baseline of 16.9b

bsearch195.0ms