Average Error: 3.6 → 1.4
Time: 6.9m
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.08431434392158774:\\ \;\;\;\;\sqrt{\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}} \cdot \sqrt{\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.08431434392158774

    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}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt0.2

      \[\leadsto \color{blue}{\sqrt{\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}} \cdot \sqrt{\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.08431434392158774 < (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

    1. Initial program 61.3

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

      \[\leadsto \color{blue}{0}\]
  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.08431434392158774:\\ \;\;\;\;\sqrt{\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}} \cdot \sqrt{\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 2019007 +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: 6.9m)Debug log

sample66.0ms

Algorithm
intervals

simplify859.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

859.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

prune22.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.5b

localize55.0ms

Local error

Found 4 expressions with local error:

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

rewrite260.0ms

Algorithm
rewrite-expression-head
Counts
4 → 359
Calls

4 calls. Slowest were:

104.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
73.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
55.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))

series270.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify1.9m

Counts
526 → 371
Calls

526 calls. Slowest were:

1.2s
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))) 1)
1.0s
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)
956.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)

prune6.1s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 1.3b

localize7.0ms

Local error

Found 4 expressions with local error:

15.0b
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
15.0b
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
3.4b
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
3.4b
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

rewrite200.0ms

Algorithm
rewrite-expression-head
Counts
4 → 414
Calls

4 calls. Slowest were:

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

series471.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

197.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
183.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
52.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
39.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

simplify1.4m

Counts
398 → 426
Calls

398 calls. Slowest were:

1.2s
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))) 1))
1.1s
(- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0))
1.0s
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))) 1))

prune9.1s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 1.3b

localize48.0ms

Local error

Found 4 expressions with local error:

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

rewrite173.0ms

Algorithm
rewrite-expression-head
Counts
4 → 757
Calls

4 calls. Slowest were:

63.0ms
(* (sqrt (/ (/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2))) (+ beta (+ alpha 2)))) (/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta))))
24.0ms
(/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta)))
21.0ms
(/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2)))

series509.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

268.0ms
(* (sqrt (/ (/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2))) (+ beta (+ alpha 2)))) (/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta))))
97.0ms
(/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta)))
78.0ms
(/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha))
66.0ms
(/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2)))

simplify2.1m

Counts
994 → 769
Calls

994 calls. Slowest were:

732.0ms
(/ (sqrt (/ (/ (* (cbrt (+ (+ beta 1.0) (fma beta alpha alpha))) (cbrt (+ (+ beta 1.0) (fma beta alpha alpha)))) (* (cbrt (+ (+ 2 beta) alpha)) (cbrt (+ (+ 2 beta) alpha)))) 1)) (sqrt (+ (+ 1.0 alpha) (+ 2 beta))))
625.0ms
(* (+ (* 1.0 1.0) (- (* alpha alpha) (* 1.0 alpha))) (+ (* 2 2) (- (* beta beta) (* 2 beta))))
581.0ms
(/ (sqrt (/ (+ (* (+ 2 beta) (+ 2 beta)) (- (* alpha alpha) (* (+ 2 beta) alpha))) (cbrt (+ (+ 2 beta) alpha)))) (+ (+ 1.0 alpha) (+ 2 beta)))

prune11.1s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 1.3b

localize20.0ms

Local error

Found 4 expressions with local error:

13.0b
(/ (* (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.6b
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))
3.6b
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))
3.6b
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

rewrite53.0ms

Algorithm
rewrite-expression-head
Counts
4 → 235
Calls

4 calls. Slowest were:

36.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)))))
7.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
2.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))

series939.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

815.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)))))
41.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))
41.0ms
(cbrt (+ (fma beta alpha alpha) (+ beta 1.0)))
41.0ms
(cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

simplify45.8s

Counts
282 → 247
Calls

282 calls. Slowest were:

764.0ms
(cbrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))
487.0ms
(cbrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
433.0ms
(/ (cbrt (+ (fma beta alpha alpha) (+ beta 1.0))) (/ (+ (+ alpha beta) (* 2 1)) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1)))))

prune3.1s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 1.3b

regimes147.0ms

Accuracy

89.3% (0.3b remaining)

Error of 1.4b against oracle of 1.2b and baseline of 3.7b

bsearch7.0ms

end0.0ms

sample1.1s

Algorithm
intervals