Average Error: 3.7 → 1.1
Time: 5.1m
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 4.480908365391594 \cdot 10^{+160}:\\ \;\;\;\;\frac{\frac{1}{\frac{2 + \left(\alpha + \beta\right)}{\frac{1.0 + \left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right)}{2 + \left(\alpha + \beta\right)}}}}{\left(2 + \left(\alpha + \beta\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\frac{\beta}{\alpha} + \left(\frac{\alpha}{\beta} + 2\right)}}{\left(2 + \left(\alpha + \beta\right)\right) + 1.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 < 4.480908365391594e+160

    1. Initial program 1.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 *-un-lft-identity1.2

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied *-un-lft-identity1.2

      \[\leadsto \frac{\frac{\frac{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right)}}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied times-frac1.2

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{1} \cdot \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*1.2

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

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

    if 4.480908365391594e+160 < alpha

    1. Initial program 16.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. Using strategy rm
    3. Applied *-un-lft-identity16.9

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied *-un-lft-identity16.9

      \[\leadsto \frac{\frac{\frac{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right)}}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied times-frac16.9

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{1} \cdot \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*16.9

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

      \[\leadsto \frac{\frac{\color{blue}{1}}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\frac{\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}\]
    8. Taylor expanded around -inf 0.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 4.480908365391594 \cdot 10^{+160}:\\ \;\;\;\;\frac{\frac{1}{\frac{2 + \left(\alpha + \beta\right)}{\frac{1.0 + \left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right)}{2 + \left(\alpha + \beta\right)}}}}{\left(2 + \left(\alpha + \beta\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\frac{\beta}{\alpha} + \left(\frac{\alpha}{\beta} + 2\right)}}{\left(2 + \left(\alpha + \beta\right)\right) + 1.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019005 
(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.1m)Debug log

sample75.0ms

Algorithm
intervals

simplify637.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune12.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 5.2b

localize61.0ms

Local error

Found 4 expressions with local error:

5.0b
(/ (+ (+ (+ 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) (* beta alpha))

rewrite266.0ms

Algorithm
rewrite-expression-head
Counts
4 → 349
Calls

4 calls. Slowest were:

124.0ms
(/ (/ (/ (+ (+ (+ 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)))
62.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))

series296.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

115.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
98.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
65.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
17.0ms
(+ (+ alpha beta) (* beta alpha))

simplify1.5m

Counts
524 → 361
Calls

524 calls. Slowest were:

1.0s
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
776.0ms
(/ (/ (/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
730.0ms
(- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0))

prune5.3s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 2.1b

localize9.0ms

Local error

Found 4 expressions with local error:

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

rewrite125.0ms

Algorithm
rewrite-expression-head
Counts
4 → 218
Calls

4 calls. Slowest were:

46.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
29.0ms
(/ (/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
27.0ms
(/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))

series312.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

106.0ms
(/ (/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
95.0ms
(/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))
69.0ms
(/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))))
43.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

simplify34.3s

Counts
250 → 230
Calls

250 calls. Slowest were:

654.0ms
(+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3))
602.0ms
(/ (/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
579.0ms
(/ (sqrt (+ (+ alpha beta) (* 2 1))) (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))))

prune3.2s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.0b

localize57.0ms

Local error

Found 4 expressions with local error:

5.0b
(sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha)))
5.0b
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
0.5b
(/ (sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha))) (sqrt (+ (+ alpha 2) beta)))
0.5b
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))

rewrite74.0ms

Algorithm
rewrite-expression-head
Counts
4 → 158
Calls

4 calls. Slowest were:

25.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
20.0ms
(/ (sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha))) (sqrt (+ (+ alpha 2) beta)))
17.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

series201.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

70.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
69.0ms
(/ (sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha))) (sqrt (+ (+ alpha 2) beta)))
34.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
28.0ms
(sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha)))

simplify18.2s

Counts
204 → 170
Calls

204 calls. Slowest were:

800.0ms
(sqrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))
746.0ms
(sqrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
674.0ms
(sqrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))

prune3.6s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize66.0ms

Local error

Found 4 expressions with local error:

5.0b
(/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2)))
5.0b
(sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta))))
5.0b
(sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha)))
1.1b
(cbrt (/ (/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta)))))))

rewrite80.0ms

Algorithm
rewrite-expression-head
Counts
4 → 703
Calls

4 calls. Slowest were:

17.0ms
(/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2)))
9.0ms
(sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha)))
8.0ms
(cbrt (/ (/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta)))))))

series216.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

70.0ms
(cbrt (/ (/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta)))))))
54.0ms
(sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta))))
53.0ms
(/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (+ beta (+ alpha 2)))
39.0ms
(sqrt (+ (* alpha beta) (+ (+ beta 1.0) alpha)))

simplify2.1m

Counts
689 → 715
Calls

689 calls. Slowest were:

768.0ms
(cbrt (/ (/ (* (cbrt (+ beta (+ (+ 1.0 alpha) (* alpha beta)))) (cbrt (+ beta (+ (+ 1.0 alpha) (* alpha beta))))) (sqrt (+ beta (+ alpha 2)))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ (pow beta 3) (pow (+ (+ 1.0 alpha) (* alpha beta)) 3))))))
712.0ms
(cbrt (/ (/ (sqrt (+ beta (+ (+ 1.0 alpha) (* alpha beta)))) (sqrt (+ beta (+ alpha 2)))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ (pow beta 3) (pow (+ (+ 1.0 alpha) (* alpha beta)) 3))))))
711.0ms
(cbrt (/ (+ beta (+ (+ 1.0 alpha) (* alpha beta))) (/ (sqrt (+ beta (+ alpha 2))) (sqrt (+ (pow beta 3) (pow (+ (+ 1.0 alpha) (* alpha beta)) 3))))))

prune22.5s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

regimes117.0ms

Accuracy

72.1% (1.0b remaining)

Error of 1.1b against oracle of 0.0b and baseline of 3.7b

bsearch96.0ms

end0.0ms

sample1.7s

Algorithm
intervals