Average Error: 3.9 → 2.3
Time: 9.6m
Precision: 64
Internal Precision: 128
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 6.066386997084555 \cdot 10^{+159}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt{\left(\beta + 1.0\right) + (\alpha \cdot \beta + \alpha)_*}}{\sqrt{\left(\beta + \alpha\right) + 2}}}{\frac{\left(\beta + \alpha\right) + 2}{\frac{\sqrt{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}}{\sqrt{\left(\beta + \alpha\right) + 2}}}}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{(\left(\beta + \alpha\right) \cdot 0.25 + 0.5)_*}{(\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) + -4)_*}}{\frac{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}{\left(\beta + \alpha\right) - 2}}\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 6.066386997084555e+159

    1. Initial program 1.1

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt1.7

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied add-sqr-sqrt1.7

      \[\leadsto \frac{\frac{\frac{\color{blue}{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0} \cdot \sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied times-frac1.7

      \[\leadsto \frac{\frac{\color{blue}{\frac{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}} \cdot \frac{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    6. Applied associate-/l*1.2

      \[\leadsto \frac{\color{blue}{\frac{\frac{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\frac{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    7. Simplified1.2

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

    if 6.066386997084555e+159 < alpha

    1. Initial program 17.1

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied flip-+18.4

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}{\left(\alpha + \beta\right) - 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied associate-/r/18.4

      \[\leadsto \frac{\color{blue}{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied associate-/l*18.4

      \[\leadsto \color{blue}{\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}}\]
    6. Simplified18.4

      \[\leadsto \frac{\color{blue}{\frac{\frac{(\alpha \cdot \beta + 1.0)_* + \left(\beta + \alpha\right)}{\left(\alpha + 2\right) + \beta}}{(\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) + -4)_*}}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}\]
    7. Taylor expanded around 0 7.7

      \[\leadsto \frac{\frac{\color{blue}{0.25 \cdot \alpha + \left(0.25 \cdot \beta + 0.5\right)}}{(\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) + -4)_*}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}\]
    8. Simplified7.7

      \[\leadsto \frac{\frac{\color{blue}{(\left(\alpha + \beta\right) \cdot 0.25 + 0.5)_*}}{(\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) + -4)_*}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 6.066386997084555 \cdot 10^{+159}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt{\left(\beta + 1.0\right) + (\alpha \cdot \beta + \alpha)_*}}{\sqrt{\left(\beta + \alpha\right) + 2}}}{\frac{\left(\beta + \alpha\right) + 2}{\frac{\sqrt{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}}{\sqrt{\left(\beta + \alpha\right) + 2}}}}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{(\left(\beta + \alpha\right) \cdot 0.25 + 0.5)_*}{(\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) + -4)_*}}{\frac{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}{\left(\beta + \alpha\right) - 2}}\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 9.5m)Debug log

start101.0ms

Algorithm
intervals

setup951.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 5.7b

localize28.0ms

Local error

Found 4 expressions with local error:

5.5b
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
0.1b
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
0.0b
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
0.0b
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

rewrite190.0ms

Algorithm
rewrite-expression-head
Counts
4 → 359
Calls

4 calls. Slowest were:

89.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
44.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
36.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

series230.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

95.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
85.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
40.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
10.0ms
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

simplify2.0m

Counts
526 → 371
Calls

526 calls. Slowest were:

1.3s
(/ (/ (/ 1 (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
1.0s
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)
992.0ms
(/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

prune6.9s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.7b

localize67.0ms

Local error

Found 4 expressions with local error:

5.4b
(sqrt (+ (fma alpha beta alpha) (+ beta 1.0)))
5.4b
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
0.5b
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
0.5b
(/ (sqrt (+ (fma alpha beta alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))

rewrite110.0ms

Algorithm
rewrite-expression-head
Counts
4 → 175
Calls

4 calls. Slowest were:

53.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
26.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
18.0ms
(/ (sqrt (+ (fma alpha beta alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))

series241.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

91.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
64.0ms
(/ (sqrt (+ (fma alpha beta alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))
44.0ms
(sqrt (+ (fma alpha beta alpha) (+ beta 1.0)))
42.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

simplify23.7s

Counts
219 → 187
Calls

219 calls. Slowest were:

1.1s
(sqrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
768.0ms
(sqrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))
762.0ms
(sqrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))

prune4.6s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0.7b

localize25.0ms

Local error

Found 4 expressions with local error:

5.4b
(sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))
5.4b
(sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))
0.2b
(* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta)))
0.1b
(/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta))

rewrite55.0ms

Algorithm
rewrite-expression-head
Counts
4 → 139
Calls

4 calls. Slowest were:

23.0ms
(* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta)))
21.0ms
(/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta))
4.0ms
(sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))

series217.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

88.0ms
(/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta))
44.0ms
(sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))
44.0ms
(* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta)))
40.0ms
(sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))

simplify12.6s

Counts
130 → 151
Calls

130 calls. Slowest were:

735.0ms
(* (* (* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (* (* (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta)) (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta))) (/ (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (+ (+ alpha 2) beta))))
296.0ms
(* (* (* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (/ (* (* (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (sqrt (+ (fma beta alpha beta) (+ 1.0 alpha)))) (* (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)) (+ (+ alpha 2) beta))))
268.0ms
(sqrt (- (* (fma beta alpha beta) (fma beta alpha beta)) (* (+ 1.0 alpha) (+ 1.0 alpha))))

prune2.6s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0.7b

localize38.0ms

Local error

Found 4 expressions with local error:

5.5b
(/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta))
1.0b
(/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4))
0.0b
(/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1)))
0.0b
(/ (/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4)) (/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1))))

rewrite242.0ms

Algorithm
rewrite-expression-head
Counts
4 → 1131
Calls

4 calls. Slowest were:

61.0ms
(/ (/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4)) (/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1))))
41.0ms
(/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4))
31.0ms
(/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1)))

series400.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

182.0ms
(/ (/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4)) (/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1))))
130.0ms
(/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4))
48.0ms
(/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta))
39.0ms
(/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (+ alpha beta) (* 2 1)))

simplify6.3m

Counts
2035 → 1143
Calls

2035 calls. Slowest were:

928.0ms
(/ (sqrt (/ (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)) (fma (+ beta alpha) (+ beta alpha) -4))) (/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))))
859.0ms
(/ (/ (/ (* (cbrt (+ (fma alpha beta 1.0) (+ beta alpha))) (cbrt (+ (fma alpha beta 1.0) (+ beta alpha)))) (* (cbrt (+ (+ alpha 2) beta)) (cbrt (+ (+ alpha 2) beta)))) (* (cbrt (fma (+ beta alpha) (+ beta alpha) -4)) (cbrt (fma (+ beta alpha) (+ beta alpha) -4)))) (/ (sqrt (+ (+ (+ alpha beta) (* 2 1)) 1.0)) (* (cbrt (- (+ alpha beta) (* 2 1))) (cbrt (- (+ alpha beta) (* 2 1))))))
738.0ms
(/ (/ (* (cbrt (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta))) (cbrt (/ (+ (fma alpha beta 1.0) (+ beta alpha)) (+ (+ alpha 2) beta)))) (sqrt (fma (+ beta alpha) (+ beta alpha) -4))) (/ (+ (+ (+ alpha beta) (* 2 1)) 1.0) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))))

prune20.6s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 0.7b

regimes128.0ms

Accuracy

60% (1.1b remaining)

Error of 2.3b against oracle of 1.2b and baseline of 3.9b

bsearch127.0ms