Average Error: 3.7 → 1.1
Time: 3.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}\;\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{\color{blue}{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}\]
    4. Applied associate-/l*1.2

      \[\leadsto \frac{\color{blue}{\frac{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{\color{blue}{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}\]
    4. Applied associate-/l*16.9

      \[\leadsto \frac{\color{blue}{\frac{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}\]
    5. 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 +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: 3.6m)Debug log

sample69.0ms

Algorithm
intervals

simplify850.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

850.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: 5.2b

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

rewrite181.0ms

Algorithm
rewrite-expression-head
Counts
4 → 360
Calls

4 calls. Slowest were:

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

series241.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify1.9m

Counts
526 → 372
Calls

526 calls. Slowest were:

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

prune5.7s

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

rewrite109.0ms

Algorithm
rewrite-expression-head
Counts
4 → 226
Calls

4 calls. Slowest were:

39.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
27.0ms
(/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))
23.0ms
(/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))))

series335.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

117.0ms
(/ (/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
101.0ms
(/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))
66.0ms
(/ 1 (/ (+ (+ alpha beta) (* 2 1)) (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))))
50.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

simplify46.7s

Counts
250 → 238
Calls

250 calls. Slowest were:

751.0ms
(- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0))
691.0ms
(+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3))
581.0ms
(/ (* (cbrt (+ (+ alpha beta) (* 2 1))) (cbrt (+ (+ alpha beta) (* 2 1)))) (* (cbrt (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))) (cbrt (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))))))

prune3.4s

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 (+ (fma beta alpha alpha) (+ beta 1.0)))
5.0b
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
0.5b
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
0.5b
(/ (sqrt (+ (fma beta alpha alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))

rewrite56.0ms

Algorithm
rewrite-expression-head
Counts
4 → 175
Calls

4 calls. Slowest were:

27.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
13.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))
9.0ms
(/ (sqrt (+ (fma beta alpha alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))

series177.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

58.0ms
(/ (sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1))))
53.0ms
(/ (sqrt (+ (fma beta alpha alpha) (+ beta 1.0))) (sqrt (+ 2 (+ beta alpha))))
35.0ms
(sqrt (+ (fma beta alpha alpha) (+ beta 1.0)))
30.0ms
(sqrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0))

simplify24.9s

Counts
219 → 187
Calls

219 calls. Slowest were:

1.3s
(sqrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))
834.0ms
(sqrt (- (* (+ (+ alpha beta) (* beta alpha)) (+ (+ alpha beta) (* beta alpha))) (* 1.0 1.0)))
732.0ms
(sqrt (+ (pow (+ (+ alpha beta) (* beta alpha)) 3) (pow 1.0 3)))

prune4.0s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize56.0ms

Local error

Found 4 expressions with local error:

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

rewrite50.0ms

Algorithm
rewrite-expression-head
Counts
4 → 100
Calls

4 calls. Slowest were:

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

series239.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

88.0ms
(/ (+ 2 (+ beta alpha)) (+ (+ beta alpha) (fma alpha beta 1.0)))
75.0ms
(cbrt (/ (sqrt (+ (+ beta alpha) (fma alpha beta 1.0))) (* (/ (+ 2 (+ beta alpha)) (+ (+ beta alpha) (fma alpha beta 1.0))) (sqrt (+ 2 (+ beta alpha))))))
42.0ms
(sqrt (+ (+ beta alpha) (fma alpha beta 1.0)))
32.0ms
(sqrt (+ (fma beta alpha alpha) (+ beta 1.0)))

simplify9.3s

Counts
81 → 112
Calls

81 calls. Slowest were:

472.0ms
(cbrt (/ (sqrt (+ (+ beta alpha) (fma alpha beta 1.0))) (* (+ 2 (+ beta alpha)) (sqrt (+ (pow 2 3) (pow (+ beta alpha) 3))))))
455.0ms
(- (* 2 2) (* (+ beta alpha) (+ beta alpha)))
454.0ms
(cbrt (/ 1 (/ (+ 2 (+ beta alpha)) (+ (+ beta alpha) (fma alpha beta 1.0)))))

prune2.4s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

regimes116.0ms

Accuracy

72.1% (1.0b remaining)

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

bsearch62.0ms

end0.0ms

sample2.2s

Algorithm
intervals