Average Error: 3.5 → 1.7
Time: 8.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}\;\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}:\\ \;\;\;\;0\\ \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. Taylor expanded around inf 24.6

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.7

    \[\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}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

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

start86.0ms

Algorithm
intervals

setup907.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.2b

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

rewrite204.0ms

Algorithm
rewrite-expression-head
Counts
4 → 359
Calls

4 calls. Slowest were:

68.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
67.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
33.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

series269.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

106.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
91.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
57.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
14.0ms
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

simplify2.1m

Counts
526 → 371
Calls

526 calls. Slowest were:

1.1s
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)
1.1s
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)
1.1s
(/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

prune6.7s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0.4b

localize51.0ms

Local error

Found 4 expressions with local error:

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

rewrite87.0ms

Algorithm
rewrite-expression-head
Counts
4 → 235
Calls

4 calls. Slowest were:

62.0ms
(/ (* (cbrt (+ (fma beta alpha alpha) (+ beta 1.0))) (cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))
11.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
4.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))

series1.4s

Counts
4 → 12
Calls

4 calls. Slowest were:

1.2s
(/ (* (cbrt (+ (fma beta alpha alpha) (+ beta 1.0))) (cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))
67.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
59.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))
47.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))

simplify1.3m

Counts
282 → 247
Calls

282 calls. Slowest were:

853.0ms
(cbrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))
746.0ms
(cbrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
727.0ms
(/ (cbrt (+ (fma beta alpha alpha) (+ beta 1.0))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))

prune5.5s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0.4b

localize40.0ms

Local error

Found 4 expressions with local error:

3.1b
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))
3.1b
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))
0.6b
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
0.6b
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))

rewrite161.0ms

Algorithm
rewrite-expression-head
Counts
4 → 1140
Calls

4 calls. Slowest were:

32.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
31.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
19.0ms
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))

series454.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

179.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
165.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha)))) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
63.0ms
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))
46.0ms
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))

simplify4.6m

Counts
2004 → 1152
Calls

2004 calls. Slowest were:

952.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ (pow 2 3) (pow (+ beta alpha) 3))) 1)) (sqrt 1))
700.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ (pow 2 3) (pow (+ beta alpha) 3))) 1)) (sqrt 1))
698.0ms
(/ (sqrt (/ (/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ (pow 2 3) (pow (+ beta alpha) 3))) 1)) (sqrt 1))

prune20.7s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 0.4b

localize65.0ms

Local error

Found 4 expressions with local error:

3.4b
(cbrt (+ (+ alpha 1.0) (fma beta alpha beta)))
3.4b
(cbrt (+ (+ 1.0 alpha) (fma beta alpha beta)))
3.1b
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))
0.7b
(cbrt (+ beta (+ alpha 2)))

rewrite18.0ms

Algorithm
rewrite-expression-head
Counts
4 → 84
Calls

4 calls. Slowest were:

11.0ms
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))
2.0ms
(cbrt (+ (+ alpha 1.0) (fma beta alpha beta)))
2.0ms
(cbrt (+ (+ 1.0 alpha) (fma beta alpha beta)))

series183.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

61.0ms
(cbrt (+ beta (+ alpha 2)))
42.0ms
(cbrt (+ (+ 1.0 alpha) (fma beta alpha beta)))
42.0ms
(cbrt (+ (+ alpha 1.0) (fma beta alpha beta)))
38.0ms
(/ (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ 2 (+ beta alpha)))

simplify5.8s

Counts
64 → 96
Calls

64 calls. Slowest were:

426.0ms
(cbrt (- (* beta beta) (* (+ alpha 2) (+ alpha 2))))
264.0ms
(cbrt (+ (pow beta 3) (pow (+ alpha 2) 3)))
203.0ms
(/ (* (* (+ (+ 1.0 alpha) (fma beta alpha beta)) (+ (+ 1.0 alpha) (fma beta alpha beta))) (+ (+ 1.0 alpha) (fma beta alpha beta))) (* (* (+ 2 (+ beta alpha)) (+ 2 (+ beta alpha))) (+ 2 (+ beta alpha))))

prune2.4s

Pruning

7 alts after pruning (3 fresh and 4 done)

Merged error: 0.4b

regimes437.0ms

Accuracy

73.7% (0.7b remaining)

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

bsearch5.0ms