Average Error: 12.2 → 0.4
Time: 31.8s
Precision: 64
Internal Precision: 128
\[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
\[(\left(0.125 \cdot \sqrt[3]{\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot \left(\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right)}\right) \cdot \left(-\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) + \left(\frac{\frac{2}{r}}{r} + \left(\left(-4.5\right) + 3\right)\right))_*\]

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.2

    \[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
  2. Simplified0.4

    \[\leadsto \color{blue}{\left(3 + \frac{2}{r \cdot r}\right) - (\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt1.0

    \[\leadsto \left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*} \cdot \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}}\]
  5. Applied *-un-lft-identity1.0

    \[\leadsto \color{blue}{1 \cdot \left(3 + \frac{2}{r \cdot r}\right)} - \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*} \cdot \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\]
  6. Applied prod-diff1.0

    \[\leadsto \color{blue}{(1 \cdot \left(3 + \frac{2}{r \cdot r}\right) + \left(-\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*} \cdot \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right))_* + (\left(-\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right) \cdot \left(\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right) + \left(\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*} \cdot \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right))_*}\]
  7. Simplified0.4

    \[\leadsto \color{blue}{(\left(0.125 \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right) \cdot \left(-\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + \left(\left(\left(-4.5\right) + 3\right) + \frac{\frac{2}{r}}{r}\right))_*} + (\left(-\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right) \cdot \left(\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right) + \left(\sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*} \cdot \sqrt{(\left(\frac{(-2 \cdot v + 3)_*}{\frac{1 - v}{0.125}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*}\right))_*\]
  8. Simplified0.4

    \[\leadsto (\left(0.125 \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right) \cdot \left(-\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + \left(\left(\left(-4.5\right) + 3\right) + \frac{\frac{2}{r}}{r}\right))_* + \color{blue}{0}\]
  9. Using strategy rm
  10. Applied add-cbrt-cube0.4

    \[\leadsto (\left(0.125 \cdot \color{blue}{\sqrt[3]{\left(\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right) \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}}}\right) \cdot \left(-\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + \left(\left(\left(-4.5\right) + 3\right) + \frac{\frac{2}{r}}{r}\right))_* + 0\]
  11. Final simplification0.4

    \[\leadsto (\left(0.125 \cdot \sqrt[3]{\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot \left(\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right)}\right) \cdot \left(-\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) + \left(\frac{\frac{2}{r}}{r} + \left(\left(-4.5\right) + 3\right)\right))_*\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  (- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))

Details

Time bar (total: 30.2s)Debug log

sample445.0ms

Algorithm
intervals

simplify107.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
106.0ms
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5)

prune50.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.3b

localize72.0ms

Local error

Found 4 expressions with local error:

0.4b
(* (* w r) (* w r))
0.3b
(/ 2 (* r r))
0.0b
(fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)
0.0b
(- (+ 3 (/ 2 (* r r))) (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5))

rewrite43.0ms

Algorithm
rewrite-expression-head
Rules
13×*-un-lft-identity
13×add-sqr-sqrt
11×add-cube-cbrt
prod-diff
pow1
add-log-exp
add-exp-log
add-cbrt-cube
log1p-expm1-u
expm1-log1p-u
fma-neg
fma-udef
difference-of-squares
distribute-lft-out--
associate--r+
flip--
div-inv
cbrt-unprod
pow-prod-up
*-commutative
associate--l+
prod-exp
pow-prod-down
associate-*l*
associate-*r*
diff-log
flip3--
pow-plus
frac-2neg
sub-neg
associate-/r*
clear-num
pow2
Counts
4 → 71
Calls
4 calls:
Slowest
15.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5))
9.0ms
(* (* w r) (* w r))
1.0ms
(/ 2 (* r r))
0.0ms
(fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)

series558.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
439.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5))
59.0ms
(fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)
40.0ms
(* (* w r) (* w r))
19.0ms
(/ 2 (* r r))

simplify6.8s

Counts
42 → 83
Calls
42 calls:
Slowest
562.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
478.0ms
(- (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
469.0ms
(+ (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
413.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
393.0ms
(- (* 0.25 (* (pow r 2) (pow w 2))) (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))))

prune1.2s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 0.0b

localize27.0ms

Local error

Found 4 expressions with local error:

0.4b
(* (* w r) (* w r))
0.2b
(/ (/ 2 r) r)
0.0b
(fma (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
0.0b
(/ (fma -2 v 3) (- 1 v))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
13×add-cube-cbrt
13×*-un-lft-identity
13×add-sqr-sqrt
times-frac
pow1
add-exp-log
add-cbrt-cube
associate-/l*
add-log-exp
log1p-expm1-u
expm1-log1p-u
div-inv
associate-/r*
associate-/r/
frac-2neg
clear-num
associate-/l/
flip--
fma-udef
cbrt-unprod
pow-prod-up
*-commutative
prod-exp
pow-prod-down
associate-*l*
associate-*r*
div-exp
flip3--
pow-plus
cbrt-undiv
pow2
Counts
4 → 76
Calls
4 calls:
Slowest
4.0ms
(/ (fma -2 v 3) (- 1 v))
3.0ms
(* (* w r) (* w r))
2.0ms
(/ (/ 2 r) r)
0.0ms
(fma (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))

series209.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
151.0ms
(fma (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
20.0ms
(/ (fma -2 v 3) (- 1 v))
19.0ms
(* (* w r) (* w r))
18.0ms
(/ (/ 2 r) r)

simplify2.2s

Counts
47 → 88
Calls
47 calls:
Slowest
644.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
431.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
341.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
186.0ms
(/ (* (* (fma -2 v 3) (fma -2 v 3)) (fma -2 v 3)) (* (* (- 1 v) (- 1 v)) (- 1 v)))
57.0ms
(- 2 (+ (/ 1 v) (/ 1 (pow v 2))))

prune1.4s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 0.0b

localize9.0ms

Local error

Found 4 expressions with local error:

0.4b
(* (* w r) (* w r))
0.2b
(/ (/ 2 r) r)
0.1b
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
0.0b
(/ (fma -2 v 3) (- 1 v))

rewrite31.0ms

Algorithm
rewrite-expression-head
Rules
14×add-cube-cbrt
14×*-un-lft-identity
14×add-sqr-sqrt
11×pow1
10×add-exp-log
10×add-cbrt-cube
times-frac
associate-/l*
associate-*r*
add-log-exp
log1p-expm1-u
expm1-log1p-u
div-inv
associate-/r*
cbrt-unprod
*-commutative
associate-/r/
prod-exp
pow-prod-down
associate-*l*
frac-2neg
clear-num
associate-/l/
flip--
distribute-rgt-neg-out
pow-prod-up
associate-*r/
associate-*l/
div-exp
flip3--
pow-plus
distribute-rgt-neg-in
neg-mul-1
cbrt-undiv
distribute-lft-neg-in
pow2
Counts
4 → 88
Calls
4 calls:
Slowest
16.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
6.0ms
(/ (fma -2 v 3) (- 1 v))
4.0ms
(* (* w r) (* w r))
2.0ms
(/ (/ 2 r) r)

series125.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
58.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
28.0ms
(* (* w r) (* w r))
21.0ms
(/ (fma -2 v 3) (- 1 v))
18.0ms
(/ (/ 2 r) r)

simplify4.0s

Counts
57 → 100
Calls
57 calls:
Slowest
698.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
584.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
408.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
395.0ms
(* (* 0.125 (fma -2 v 3)) (- (* (* w r) (* w r))))
326.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))

prune1.9s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 0.0b

localize36.0ms

Local error

Found 4 expressions with local error:

0.5b
(cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))
0.4b
(* (* w r) (* w r))
0.2b
(/ (/ 2 r) r)
0.0b
(fma (* 0.125 (cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))

rewrite38.0ms

Algorithm
rewrite-expression-head
Rules
pow1
cbrt-div
add-exp-log
add-cbrt-cube
add-cube-cbrt
associate-*l/
*-un-lft-identity
frac-times
add-sqr-sqrt
add-log-exp
associate-/l*
log1p-expm1-u
expm1-log1p-u
associate-*r/
div-inv
associate-/l/
fma-udef
cbrt-unprod
rem-cbrt-cube
pow-prod-up
*-commutative
prod-exp
pow-prod-down
pow3
associate-*l*
associate-*r*
pow1/3
pow-plus
frac-2neg
clear-num
pow2
cbrt-prod
Counts
4 → 64
Calls
4 calls:
Slowest
24.0ms
(cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))
10.0ms
(* (* w r) (* w r))
2.0ms
(/ (/ 2 r) r)
0.0ms
(fma (* 0.125 (cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))

series174.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
123.0ms
(fma (* 0.125 (cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
20.0ms
(* (* w r) (* w r))
18.0ms
(/ (/ 2 r) r)
13.0ms
(cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (/ (fma -2 v 3) (- 1 v))))

simplify3.3s

Counts
29 → 76
Calls
29 calls:
Slowest
625.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
435.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
408.0ms
(cbrt (* (* (/ (fma -2 v 3) (- 1 v)) (/ (fma -2 v 3) (- 1 v))) (fma -2 v 3)))
392.0ms
(- (+ (* 0.125 (/ (* (pow r 2) (pow w 2)) v)) (* 0.125 (/ (* (pow r 2) (pow w 2)) (pow v 2)))) (* 0.25 (* (pow r 2) (pow w 2))))
338.0ms
(cbrt (* (* (fma -2 v 3) (fma -2 v 3)) (fma -2 v 3)))

prune1.4s

Pruning

13 alts after pruning (12 fresh and 1 done)

Merged error: 0.0b

regimes391.0ms

Accuracy

0% (0.3b remaining)

Error of 0.4b against oracle of 0.1b and baseline of 0.4b

bsearch12.0ms

end0.0ms

sample5.8s

Algorithm
intervals