Average Error: 3.5 → 1.4
Time: 5.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}\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \le 0.08333335457534242:\\ \;\;\;\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.3333333333333333 + \left(\beta + \alpha\right) \cdot 0.2222222222222222}{\left(\left(\alpha + 2\right) + \beta\right) \cdot \left(\left(\alpha + 2\right) + \beta\right)}\\ \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 beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)) < 0.08333335457534242

    1. Initial program 0.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}\]

    if 0.08333335457534242 < (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

    1. Initial program 53.9

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

      \[\leadsto \frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{\left(2 + \beta\right) + \left(1.0 + \alpha\right)}}{\left(\left(\alpha + 2\right) + \beta\right) \cdot \left(\left(\alpha + 2\right) + \beta\right)}\]
    3. Taylor expanded around 0 19.6

      \[\leadsto \frac{\color{blue}{0.2222222222222222 \cdot \alpha + \left(0.2222222222222222 \cdot \beta + 0.3333333333333333\right)}}{\left(\left(\alpha + 2\right) + \beta\right) \cdot \left(\left(\alpha + 2\right) + \beta\right)}\]
    4. Simplified19.6

      \[\leadsto \frac{\color{blue}{0.3333333333333333 + 0.2222222222222222 \cdot \left(\alpha + \beta\right)}}{\left(\left(\alpha + 2\right) + \beta\right) \cdot \left(\left(\alpha + 2\right) + \beta\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \le 0.08333335457534242:\\ \;\;\;\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.3333333333333333 + \left(\beta + \alpha\right) \cdot 0.2222222222222222}{\left(\left(\alpha + 2\right) + \beta\right) \cdot \left(\left(\alpha + 2\right) + \beta\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2018362 
(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: 5.5m)Debug log

start73.0ms

Algorithm
intervals

setup624.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.2b

localize50.0ms

Local error

Found 4 expressions with local error:

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

rewrite206.0ms

Algorithm
rewrite-expression-head
Counts
4 → 348
Calls

4 calls. Slowest were:

82.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
47.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)))

series297.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

108.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
106.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
68.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
15.0ms
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

simplify1.5m

Counts
524 → 360
Calls

524 calls. Slowest were:

904.0ms
(/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
866.0ms
(/ (/ (/ (cbrt (+ (+ (+ 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) (cbrt (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1))) (sqrt (+ (+ (+ alpha beta) (* 2 1)) 1.0)))

prune7.5s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.4b

localize59.0ms

Local error

Found 4 expressions with local error:

15.2b
(/ (* (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha)))) (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))
3.4b
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
3.4b
(cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))
3.4b
(cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))

rewrite73.0ms

Algorithm
rewrite-expression-head
Counts
4 → 225
Calls

4 calls. Slowest were:

42.0ms
(/ (* (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha)))) (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))
13.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
4.0ms
(cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))

series788.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

599.0ms
(/ (* (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha)))) (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))
68.0ms
(cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))
63.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
59.0ms
(cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha))))

simplify56.5s

Counts
280 → 237
Calls

280 calls. Slowest were:

786.0ms
(* (cbrt (+ (* alpha beta) (+ beta (+ 1.0 alpha)))) (cbrt (+ (pow (* alpha beta) 3) (pow (+ beta (+ 1.0 alpha)) 3))))
732.0ms
(cbrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
719.0ms
(cbrt (+ (pow (* alpha beta) 3) (pow (+ beta (+ 1.0 alpha)) 3)))

prune5.5s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 0.4b

localize25.0ms

Local error

Found 4 expressions with local error:

3.1b
(/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha)))
2.0b
(/ (/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha))) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
0.0b
(* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta))
0.0b
(+ (+ 2 beta) (+ 1.0 alpha))

rewrite62.0ms

Algorithm
rewrite-expression-head
Counts
4 → 159
Calls

4 calls. Slowest were:

30.0ms
(/ (/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha))) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
16.0ms
(/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha)))
10.0ms
(* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta))

series169.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

85.0ms
(/ (/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha))) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
63.0ms
(/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (+ 2 beta) (+ 1.0 alpha)))
13.0ms
(* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta))
8.0ms
(+ (+ 2 beta) (+ 1.0 alpha))

simplify28.3s

Counts
170 → 171
Calls

170 calls. Slowest were:

923.0ms
(* (+ (pow (+ alpha 2) 3) (pow beta 3)) (- (* (+ alpha 2) (+ alpha 2)) (* beta beta)))
858.0ms
(/ (+ 1.0 (+ (* alpha beta) (+ beta alpha))) (+ (* (- (* 2 2) (* beta beta)) (- 1.0 alpha)) (* (- 2 beta) (- (* 1.0 1.0) (* alpha alpha)))))
844.0ms
(* (- (* (+ alpha 2) (+ alpha 2)) (* beta beta)) (- (* (+ alpha 2) (+ alpha 2)) (* beta beta)))

prune2.9s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0.4b

localize25.0ms

Local error

Found 4 expressions with local error:

20.0b
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
20.0b
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
0.6b
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))) (sqrt (+ (+ beta 1.0) (+ alpha 2))))
0.6b
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))) (sqrt (+ (+ beta 1.0) (+ alpha 2))))

rewrite167.0ms

Algorithm
rewrite-expression-head
Counts
4 → 404
Calls

4 calls. Slowest were:

52.0ms
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
38.0ms
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
37.0ms
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))) (sqrt (+ (+ beta 1.0) (+ alpha 2))))

series516.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

168.0ms
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))) (sqrt (+ (+ beta 1.0) (+ alpha 2))))
153.0ms
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))) (sqrt (+ (+ beta 1.0) (+ alpha 2))))
110.0ms
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))
85.0ms
(/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (+ (+ alpha 2) beta)))

simplify2.1m

Counts
630 → 416
Calls

630 calls. Slowest were:

1.2s
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (- (* (+ alpha 2) (+ alpha 2)) (* beta beta)) (- (* (+ alpha 2) (+ alpha 2)) (* beta beta))))) (sqrt (sqrt (+ (+ beta 1.0) (+ alpha 2)))))
1.0s
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (- (* (+ alpha 2) (+ alpha 2)) (* beta beta)) (- (* (+ alpha 2) (+ alpha 2)) (* beta beta))))) (sqrt (* (cbrt (+ (+ beta 1.0) (+ alpha 2))) (cbrt (+ (+ beta 1.0) (+ alpha 2))))))
911.0ms
(/ (sqrt (/ (+ (+ (+ beta 1.0) (* alpha beta)) alpha) (* (+ (+ alpha 2) beta) (- (* (+ alpha 2) (+ alpha 2)) (* beta beta))))) 1)

prune9.4s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 0.4b

regimes269.0ms

Accuracy

86.7% (0.3b remaining)

Error of 1.4b against oracle of 1.0b and baseline of 3.5b

bsearch6.0ms