Average Error: 23.8 → 12.6
Time: 40.2s
Precision: 64
Internal Precision: 128
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
\[\frac{\sqrt[3]{(\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_* \cdot \left((\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_* \cdot \log \left(e^{(\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_*}\right)\right)}}{2.0}\]

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 23.8

    \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
  2. Simplified12.5

    \[\leadsto \color{blue}{\frac{(\left(\frac{\beta - \alpha}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*}{2.0}}\]
  3. Using strategy rm
  4. Applied div-inv12.5

    \[\leadsto \frac{(\color{blue}{\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right)} \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*}{2.0}\]
  5. Using strategy rm
  6. Applied add-cbrt-cube12.6

    \[\leadsto \frac{\color{blue}{\sqrt[3]{\left((\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_* \cdot (\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*\right) \cdot (\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*}}}{2.0}\]
  7. Using strategy rm
  8. Applied add-log-exp12.6

    \[\leadsto \frac{\sqrt[3]{\left(\color{blue}{\log \left(e^{(\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*}\right)} \cdot (\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*\right) \cdot (\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\beta + \alpha}{(2 \cdot i + \alpha)_* + \beta}\right) + 1.0)_*}}{2.0}\]
  9. Final simplification12.6

    \[\leadsto \frac{\sqrt[3]{(\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_* \cdot \left((\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_* \cdot \log \left(e^{(\left(\left(\beta - \alpha\right) \cdot \frac{1}{\left(\beta + 2.0\right) + (2 \cdot i + \alpha)_*}\right) \cdot \left(\frac{\alpha + \beta}{\beta + (2 \cdot i + \alpha)_*}\right) + 1.0)_*}\right)\right)}}{2.0}\]

Reproduce

herbie shell --seed 2019016 +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (> alpha -1) (> beta -1) (> i 0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))

Details

Time bar (total: 38.7s)Debug log

sample94.0ms

Algorithm
intervals
Results
256×(pre true 80)
221×(body real 80)
14×(body real 1280)
11×(body real 640)
(body real 320)
(body real 160)

simplify664.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
664.0ms
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0)

prune14.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 8.2b

localize49.0ms

Local error

Found 4 expressions with local error:

1.1b
(fma (/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
0.0b
(/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha)))
0.0b
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))
0.0b
(+ (fma 2 i alpha) beta)

rewrite35.0ms

Algorithm
rewrite-expression-head
Rules
30×*-un-lft-identity
22×add-cube-cbrt
22×add-sqr-sqrt
21×times-frac
add-exp-log
add-cbrt-cube
associate-/r*
associate-/l*
associate-/l/
add-log-exp
distribute-lft-out
log1p-expm1-u
flip-+
associate-/r/
flip3-+
pow1
expm1-log1p-u
fma-def
div-inv
fma-udef
div-exp
frac-2neg
clear-num
cbrt-undiv
flip--
div-sub
flip3--
associate-+l+
+-commutative
Counts
4 → 97
Calls
4 calls:
Slowest
16.0ms
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))
12.0ms
(/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha)))
5.0ms
(+ (fma 2 i alpha) beta)
0.0ms
(fma (/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)

series260.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
92.0ms
(fma (/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
86.0ms
(/ (- beta alpha) (+ (+ beta 2.0) (fma 2 i alpha)))
60.0ms
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))
21.0ms
(+ (fma 2 i alpha) beta)

simplify3.2s

Counts
81 → 109
Calls
81 calls:
Slowest
336.0ms
(+ (* (+ beta 2.0) (+ beta 2.0)) (- (* (fma 2 i alpha) (fma 2 i alpha)) (* (+ beta 2.0) (fma 2 i alpha))))
190.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
185.0ms
(- (+ (* 4.0 (/ 1 (pow beta 2))) 2.0) (* 2.0 (/ 1 beta)))
170.0ms
(/ (* (* (- beta alpha) (- beta alpha)) (- beta alpha)) (* (* (+ (+ beta 2.0) (fma 2 i alpha)) (+ (+ beta 2.0) (fma 2 i alpha))) (+ (+ beta 2.0) (fma 2 i alpha))))
118.0ms
(- (* 0.5 beta) (+ (* 0.25 (pow beta 2)) (* 0.5 alpha)))

prune1.5s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 8.0b

localize25.0ms

Local error

Found 4 expressions with local error:

2.3b
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
0.1b
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
0.0b
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))
0.0b
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))

rewrite18.0ms

Algorithm
rewrite-expression-head
Rules
17×*-un-lft-identity
15×add-cube-cbrt
15×add-sqr-sqrt
11×add-exp-log
times-frac
add-cbrt-cube
associate-/r*
pow1
associate-/r/
associate-*r*
add-log-exp
log1p-expm1-u
flip-+
flip3-+
expm1-log1p-u
associate-/l*
div-inv
associate-*l*
associate-/l/
flip--
prod-exp
associate-*l/
flip3--
frac-2neg
clear-num
rec-exp
frac-times
inv-pow
distribute-lft-out
pow-flip
fma-udef
cbrt-unprod
*-commutative
un-div-inv
associate-*r/
pow-prod-down
div-exp
cbrt-undiv
Counts
4 → 93
Calls
4 calls:
Slowest
8.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
6.0ms
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))
3.0ms
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))
0.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)

series287.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
118.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
58.0ms
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))
57.0ms
(/ (+ beta alpha) (+ (fma 2 i alpha) beta))
55.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))

simplify4.5s

Counts
68 → 105
Calls
68 calls:
Slowest
418.0ms
(+ (* (+ beta 2.0) (+ beta 2.0)) (- (* (fma 2 i alpha) (fma 2 i alpha)) (* (+ beta 2.0) (fma 2 i alpha))))
373.0ms
(+ (* (+ beta 2.0) (+ beta 2.0)) (- (* (fma 2 i alpha) (fma 2 i alpha)) (* (+ beta 2.0) (fma 2 i alpha))))
340.0ms
(* (* (* (- beta alpha) (- beta alpha)) (- beta alpha)) (* (* (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))))
310.0ms
(* (+ beta alpha) (+ (+ beta 2.0) (fma 2 i alpha)))
309.0ms
(* (- (pow beta 3) (pow alpha 3)) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))

prune1.5s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 8.0b

localize10.0ms

Local error

Found 4 expressions with local error:

2.3b
(+ (* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta))) 1.0)
0.1b
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
0.1b
(* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)))
0.0b
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))

rewrite38.0ms

Algorithm
rewrite-expression-head
Rules
28×add-exp-log
21×associate-*r*
18×add-cbrt-cube
16×*-un-lft-identity
14×add-cube-cbrt
14×add-sqr-sqrt
12×prod-exp
12×associate-*l/
12×pow1
12×frac-times
times-frac
cbrt-unprod
flip--
associate-/r/
flip3--
add-log-exp
log1p-expm1-u
flip-+
associate-*r/
pow-prod-down
associate-*l*
flip3-+
associate-/r*
rec-exp
expm1-log1p-u
div-inv
un-div-inv
div-exp
*-commutative
cbrt-undiv
inv-pow
distribute-lft-out
pow-flip
frac-2neg
fma-def
clear-num
+-commutative
Counts
4 → 114
Calls
4 calls:
Slowest
15.0ms
(* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)))
12.0ms
(+ (* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta))) 1.0)
6.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
3.0ms
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))

series438.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
178.0ms
(* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)))
143.0ms
(+ (* (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta))) 1.0)
59.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
58.0ms
(/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))

simplify15.2s

Counts
87 → 126
Calls
87 calls:
Slowest
708.0ms
(* (+ (+ beta 2.0) (fma 2 i alpha)) (+ (fma 2 i alpha) beta))
706.0ms
(* (* (- (* beta beta) (* alpha alpha)) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (+ beta alpha))
701.0ms
(* (+ (+ beta 2.0) (fma 2 i alpha)) (+ (fma 2 i alpha) beta))
586.0ms
(* (* (- (* beta beta) (* alpha alpha)) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)))
560.0ms
(* (+ (* beta beta) (+ (* alpha alpha) (* beta alpha))) (+ (fma 2 i alpha) beta))

prune1.8s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 8.0b

localize26.0ms

Local error

Found 4 expressions with local error:

2.3b
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
2.3b
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
2.3b
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
0.1b
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
add-exp-log
add-cube-cbrt
associate-*r*
add-cbrt-cube
*-un-lft-identity
pow1
add-sqr-sqrt
add-log-exp
log1p-expm1-u
expm1-log1p-u
fma-udef
associate-*l*
flip--
associate-/r/
prod-exp
associate-*l/
flip3--
frac-times
div-inv
flip-+
cbrt-unprod
*-commutative
un-div-inv
associate-*r/
pow-prod-down
flip3-+
rec-exp
Counts
4 → 59
Calls
4 calls:
Slowest
5.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
0.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
0.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
0.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)

series408.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
126.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
118.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
97.0ms
(fma (* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ (+ beta alpha) (+ (fma 2 i alpha) beta)) 1.0)
67.0ms
(* (- beta alpha) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))

simplify3.9s

Counts
32 → 71
Calls
32 calls:
Slowest
365.0ms
(* (* (* (- beta alpha) (- beta alpha)) (- beta alpha)) (* (* (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha)))))
363.0ms
(+ (* (+ beta 2.0) (+ beta 2.0)) (- (* (fma 2 i alpha) (fma 2 i alpha)) (* (+ beta 2.0) (fma 2 i alpha))))
249.0ms
(* (+ beta alpha) (+ (+ beta 2.0) (fma 2 i alpha)))
245.0ms
(* (- (pow beta 3) (pow alpha 3)) (/ 1 (+ (+ beta 2.0) (fma 2 i alpha))))
236.0ms
(* (- (* beta beta) (* alpha alpha)) 1)

prune1.2s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 8.0b

regimes263.0ms

Accuracy

0% (0.3b remaining)

Error of 12.6b against oracle of 12.3b and baseline of 12.6b

bsearch6.0ms

end0.0ms

sample3.2s

Algorithm
intervals
Results
8000×(pre true 80)
6324×(body real 80)
577×(body real 640)
542×(body real 1280)
363×(body real 320)
194×(body real 160)