Average Error: 3.6 → 1.4
Time: 8.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{\sqrt{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}}{\frac{2 + \left(\beta + \alpha\right)}{\sqrt{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\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}}}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt0.2

      \[\leadsto \sqrt{\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}}}{\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}}\]
    6. Applied associate-/l*0.2

      \[\leadsto \sqrt{\frac{\frac{\color{blue}{\frac{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\sqrt{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}}}}}{\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{\sqrt{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}}{\frac{2 + \left(\beta + \alpha\right)}{\sqrt{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\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 
(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.9m)Debug log

sample63.0ms

Algorithm
intervals

simplify663.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune13.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.5b

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

rewrite245.0ms

Algorithm
rewrite-expression-head
Counts
4 → 348
Calls

4 calls. Slowest were:

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

series244.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify1.4m

Counts
524 → 360
Calls

524 calls. Slowest were:

737.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
736.0ms
(+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3))
725.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (sqrt (+ (+ alpha beta) (* 2 1)))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

prune5.8s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 1.3b

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

rewrite247.0ms

Algorithm
rewrite-expression-head
Counts
4 → 406
Calls

4 calls. Slowest were:

65.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
64.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
49.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))

series468.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

181.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
167.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
65.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
56.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

simplify1.1m

Counts
398 → 418
Calls

398 calls. Slowest were:

711.0ms
(sqrt (sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))))
707.0ms
(+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3))
700.0ms
(+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3))

prune9.9s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 1.3b

localize21.0ms

Local error

Found 4 expressions with local error:

15.0b
(sqrt (/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (/ (+ (+ alpha beta) (* 2 1)) (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)))) (+ (+ 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.3b
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

rewrite372.0ms

Algorithm
rewrite-expression-head
Counts
4 → 1600
Calls

4 calls. Slowest were:

123.0ms
(sqrt (/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (/ (+ (+ alpha beta) (* 2 1)) (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
65.0ms
(sqrt (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
35.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

series487.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify5.2m

Counts
1586 → 1612
Calls

1586 calls. Slowest were:

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

prune35.4s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 1.3b

localize77.0ms

Local error

Found 4 expressions with local error:

10.5b
(/ (sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
3.3b
(sqrt (+ (+ 1.0 (+ beta alpha)) (* alpha beta)))
3.3b
(sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0)))
0.7b
(* (sqrt (+ (+ beta alpha) (+ 2 1.0))) (sqrt (+ beta (+ alpha 2))))

rewrite53.0ms

Algorithm
rewrite-expression-head
Counts
4 → 134
Calls

4 calls. Slowest were:

24.0ms
(/ (sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
13.0ms
(* (sqrt (+ (+ beta alpha) (+ 2 1.0))) (sqrt (+ beta (+ alpha 2))))
9.0ms
(sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0)))

series213.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

125.0ms
(/ (sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
35.0ms
(* (sqrt (+ (+ beta alpha) (+ 2 1.0))) (sqrt (+ beta (+ alpha 2))))
27.0ms
(sqrt (+ (+ 1.0 (+ beta alpha)) (* alpha beta)))
26.0ms
(sqrt (+ (+ (* alpha beta) alpha) (+ beta 1.0)))

simplify12.4s

Counts
129 → 146
Calls

129 calls. Slowest were:

452.0ms
(sqrt (- (* (+ 1.0 (+ beta alpha)) (+ 1.0 (+ beta alpha))) (* (* alpha beta) (* alpha beta))))
438.0ms
(sqrt (+ (pow (+ 1.0 (+ beta alpha)) 3) (pow (* alpha beta) 3)))
388.0ms
(* (sqrt (+ (* (+ (pow beta 3) (pow alpha 3)) (+ (* 2 2) (- (* 1.0 1.0) (* 2 1.0)))) (* (+ (* beta beta) (- (* alpha alpha) (* beta alpha))) (+ (pow 2 3) (pow 1.0 3))))) (sqrt (+ (pow beta 3) (pow (+ alpha 2) 3))))

prune2.8s

Pruning

8 alts after pruning (5 fresh and 3 done)

Merged error: 1.3b

regimes194.0ms

Accuracy

89% (0.3b remaining)

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

bsearch5.0ms

end0.0ms

sample1.1s

Algorithm
intervals