Average Error: 3.9 → 2.3
Time: 3.7m
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 2.3447701514638163 \cdot 10^{+160}:\\ \;\;\;\;\frac{\frac{\frac{1}{\left(\beta + \alpha\right) + 2} \cdot \left(1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)\right)}{\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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.3447701514638163e+160

    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 div-inv1.1

      \[\leadsto \frac{\frac{\color{blue}{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right) \cdot \frac{1}{\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}\]

    if 2.3447701514638163e+160 < alpha

    1. Initial program 17.2

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

      \[\leadsto \frac{\frac{\color{blue}{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right) \cdot \frac{1}{\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. Using strategy rm
    5. Applied flip-+18.4

      \[\leadsto \frac{\frac{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right) \cdot \frac{1}{\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}\]
    6. Applied associate-/r/18.4

      \[\leadsto \frac{\color{blue}{\frac{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right) \cdot \frac{1}{\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}\]
    7. Applied associate-/l*18.4

      \[\leadsto \color{blue}{\frac{\frac{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right) \cdot \frac{1}{\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}}}\]
    8. Simplified18.4

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

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

      \[\leadsto \frac{\frac{\color{blue}{0.5 + \left(\beta + \alpha\right) \cdot 0.25}}{-4 + \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{\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 2.3447701514638163 \cdot 10^{+160}:\\ \;\;\;\;\frac{\frac{\frac{1}{\left(\beta + \alpha\right) + 2} \cdot \left(1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)\right)}{\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 
(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: 3.7m)Debug log

start98.0ms

Algorithm
intervals

setup838.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 5.7b

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

rewrite218.0ms

Algorithm
rewrite-expression-head
Counts
4 → 348
Calls

4 calls. Slowest were:

94.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
67.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
38.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))

series238.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))
76.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
53.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
14.0ms
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

simplify1.5m

Counts
524 → 360
Calls

524 calls. Slowest were:

854.0ms
(/ (/ (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
794.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
749.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))) (sqrt (+ (+ (+ alpha beta) (* 2 1)) 1.0)))

prune7.1s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0.7b

localize20.0ms

Local error

Found 4 expressions with local error:

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

rewrite115.0ms

Algorithm
rewrite-expression-head
Counts
4 → 134
Calls

4 calls. Slowest were:

42.0ms
(* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1))))
40.0ms
(/ (/ (* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
29.0ms
(/ (* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1)))

series234.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

85.0ms
(/ (/ (* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
70.0ms
(/ (* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1)))
57.0ms
(* (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (/ 1 (+ (+ alpha beta) (* 2 1))))
22.0ms
(/ 1 (+ (+ alpha beta) (* 2 1)))

simplify26.6s

Counts
136 → 146
Calls

136 calls. Slowest were:

971.0ms
(* (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)) 1)
889.0ms
(* (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)) (/ 1 (+ (+ alpha beta) (* 2 1))))
868.0ms
(* (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)) (/ 1 (+ (+ alpha beta) (* 2 1))))

prune2.3s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.7b

localize55.0ms

Local error

Found 4 expressions with local error:

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

rewrite69.0ms

Algorithm
rewrite-expression-head
Counts
4 → 125
Calls

4 calls. Slowest were:

32.0ms
(/ (+ (/ 1.0 (+ 2 (+ beta alpha))) (/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha)))) (+ -4 (* (+ beta alpha) (+ beta alpha))))
18.0ms
(+ (/ 1.0 (+ 2 (+ beta alpha))) (/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha))))
9.0ms
(/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha)))

series289.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

133.0ms
(/ (+ (/ 1.0 (+ 2 (+ beta alpha))) (/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha)))) (+ -4 (* (+ beta alpha) (+ beta alpha))))
101.0ms
(+ (/ 1.0 (+ 2 (+ beta alpha))) (/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha))))
40.0ms
(/ (+ (* alpha beta) (+ beta alpha)) (+ 2 (+ beta alpha)))
15.0ms
(* (+ beta alpha) (+ beta alpha))

simplify16.5s

Counts
133 → 137
Calls

133 calls. Slowest were:

711.0ms
(* (* (* (+ beta alpha) (+ beta alpha)) (+ beta alpha)) (* (* (+ beta alpha) (+ beta alpha)) (+ beta alpha)))
678.0ms
(/ (+ (/ 1.0 (- (* 2 2) (* (+ beta alpha) (+ beta alpha)))) (/ (+ (* alpha beta) (+ beta alpha)) (- (* 2 2) (* (+ beta alpha) (+ beta alpha))))) (+ -4 (* (+ beta alpha) (+ beta alpha))))
530.0ms
(/ (+ (/ 1.0 (- (* 2 2) (* (+ beta alpha) (+ beta alpha)))) (/ (+ (* alpha beta) (+ beta alpha)) (- (* 2 2) (* (+ beta alpha) (+ beta alpha))))) (cbrt (+ -4 (* (+ beta alpha) (+ beta alpha)))))

prune2.7s

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0.7b

localize89.0ms

Local error

Found 4 expressions with local error:

19.2b
(/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))
19.2b
(/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))
0.1b
(/ (sqrt (/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))) (+ (+ beta alpha) (+ 1.0 2)))
0.1b
(* (sqrt (/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))) (/ (sqrt (/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))) (+ (+ beta alpha) (+ 1.0 2))))

rewrite520.0ms

Algorithm
rewrite-expression-head
Counts
4 → 291
Calls

4 calls. Slowest were:

427.0ms
(/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))
30.0ms
(* (sqrt (/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))) (/ (sqrt (/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))) (+ (+ beta alpha) (+ 1.0 2))))
28.0ms
(/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))

series565.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

288.0ms
(* (sqrt (/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))) (/ (sqrt (/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))) (+ (+ beta alpha) (+ 1.0 2))))
104.0ms
(/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))
90.0ms
(/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (+ (+ beta 2) alpha) (+ (+ beta 2) alpha)))
82.0ms
(/ (sqrt (/ (+ alpha (+ (* alpha beta) (+ beta 1.0))) (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))))) (+ (+ beta alpha) (+ 1.0 2)))

simplify1.1m

Counts
340 → 303
Calls

340 calls. Slowest were:

858.0ms
(/ (sqrt (* (+ (* 2 2) (- (* (+ beta alpha) (+ beta alpha)) (* 2 (+ beta alpha)))) (- 2 (+ beta alpha)))) (cbrt (+ (+ beta alpha) (+ 1.0 2))))
820.0ms
(* (+ (* 2 2) (- (* (+ beta alpha) (+ beta alpha)) (* 2 (+ beta alpha)))) (+ (* 2 2) (- (* (+ beta alpha) (+ beta alpha)) (* 2 (+ beta alpha)))))
737.0ms
(sqrt (/ (+ (* alpha beta) (+ (+ beta 1.0) alpha)) (* (- (* (+ beta 2) (+ beta 2)) (* alpha alpha)) (- (* (+ beta 2) (+ beta 2)) (* alpha alpha)))))

prune7.0s

Pruning

6 alts after pruning (3 fresh and 3 done)

Merged error: 0.7b

regimes135.0ms

Accuracy

60.9% (1.0b remaining)

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

bsearch164.0ms