Average Error: 12.1 → 0.6
Time: 28.3s
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(\frac{(-2 \cdot v + 3)_*}{1 - v} \cdot 0.125\right) \cdot \left(\left(\sqrt[3]{\left(w \cdot r\right) \cdot \left(w \cdot r\right)} \cdot \sqrt[3]{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}\right) \cdot \left(-\sqrt[3]{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}\right)\right) + \left(\left(3 + \left(-4.5\right)\right) + \frac{\frac{2}{r}}{r}\right)\]

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.1

    \[\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.3

    \[\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 fma-udef0.3

    \[\leadsto \color{blue}{\left(\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)\right)} + 0\]
  11. Using strategy rm
  12. Applied add-cube-cbrt0.6

    \[\leadsto \left(\left(0.125 \cdot \frac{(-2 \cdot v + 3)_*}{1 - v}\right) \cdot \left(-\color{blue}{\left(\sqrt[3]{\left(w \cdot r\right) \cdot \left(w \cdot r\right)} \cdot \sqrt[3]{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}\right) \cdot \sqrt[3]{\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)\right) + 0\]
  13. Final simplification0.6

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

Reproduce

herbie shell --seed 2019022 +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: 26.8s)Debug log

sample249.0ms

Algorithm
intervals
Results
160.0ms542×body80valid

simplify130.0ms

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

prune29.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.3b

localize42.0ms

Local error

Found 4 expressions with local error:

0.4b
(* (* w r) (* w r))
0.3b
(/ 2 (* r r))
0.1b
(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))

rewrite27.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
14.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)

series190.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
67.0ms
(fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)
65.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5))
47.0ms
(* (* w r) (* w r))
11.0ms
(/ 2 (* r r))

simplify6.4s

Counts
42 → 83
Calls
42 calls:
Slowest
616.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
470.0ms
(+ (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
420.0ms
(- (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
361.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))))
349.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.1s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.1b

localize31.0ms

Local error

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

rewrite6.0ms

Algorithm
rewrite-expression-head
Rules
pow1
add-exp-log
add-cbrt-cube
associate-/l*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
log1p-expm1-u
expm1-log1p-u
div-inv
associate-/l/
fma-udef
cbrt-unprod
pow-prod-up
*-commutative
prod-exp
pow-prod-down
associate-*l*
associate-*r*
pow-plus
frac-2neg
clear-num
pow2
Counts
3 → 45
Calls
3 calls:
Slowest
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)))

series148.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
105.0ms
(fma (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
25.0ms
(* (* w r) (* w r))
18.0ms
(/ (/ 2 r) r)

simplify1.3s

Counts
17 → 54
Calls
17 calls:
Slowest
528.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
357.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))))
352.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))))
30.0ms
(- (* 2 (/ 1 (pow r 2))) 1.5)
20.0ms
(+ (log (* w r)) (log (* w r)))

prune877.0ms

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.1b

localize12.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
(+ (* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r)))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))

rewrite115.0ms

Algorithm
rewrite-expression-head
Rules
11×pow1
add-log-exp
add-exp-log
add-cbrt-cube
associate-*r*
add-cube-cbrt
frac-add
*-un-lft-identity
add-sqr-sqrt
associate-*r/
associate-*l/
associate-/l*
log1p-expm1-u
expm1-log1p-u
flip-+
flip3-+
sum-log
div-inv
cbrt-unprod
associate-+l-
*-commutative
prod-exp
pow-prod-down
associate-*l*
associate-/l/
distribute-rgt-neg-out
pow-prod-up
pow-plus
frac-2neg
distribute-rgt-neg-in
fma-def
neg-mul-1
associate-+r-
clear-num
associate-+r+
+-commutative
distribute-lft-neg-in
neg-sub0
pow2
Counts
4 → 78
Calls
4 calls:
Slowest
77.0ms
(+ (* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r)))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
21.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
10.0ms
(* (* w r) (* w r))
5.0ms
(/ (/ 2 r) r)

series187.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
108.0ms
(+ (* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r)))) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
50.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
17.0ms
(* (* w r) (* w r))
11.0ms
(/ (/ 2 r) r)

simplify6.4s

Counts
43 → 90
Calls
43 calls:
Slowest
643.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
491.0ms
(* (* 0.125 (/ (fma -2 v 3) (- 1 v))) (- (* (* w r) (* w r))))
437.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))))
418.0ms
(* (- 1 v) (* (+ (* (- 4.5) (- 4.5)) (- (* 3 3) (* (- 4.5) 3))) r))
397.0ms
(* (- 1 v) (- (+ (- 4.5) 3) (/ (/ 2 r) r)))

prune1.4s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.0b

localize17.0ms

Local error

Found 4 expressions with local error:

11.7b
(sqrt (/ (/ 2 r) r))
11.7b
(sqrt (/ (/ 2 r) r))
0.4b
(* (sqrt (/ (/ 2 r) r)) (sqrt (/ (/ 2 r) r)))
0.4b
(* (* w r) (* w r))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
16×sqrt-prod
14×pow1
12×add-sqr-sqrt
10×add-cube-cbrt
10×*-un-lft-identity
add-exp-log
associate-*l*
associate-*r*
add-cbrt-cube
sqrt-div
pow1/2
add-log-exp
div-inv
log1p-expm1-u
expm1-log1p-u
pow-prod-up
pow-prod-down
cbrt-unprod
*-commutative
prod-exp
pow-plus
rem-sqrt-square
pow2
associate-*r/
associate-*l/
sqrt-unprod
rem-square-sqrt
frac-times
Counts
4 → 87
Calls
4 calls:
Slowest
5.0ms
(* (sqrt (/ (/ 2 r) r)) (sqrt (/ (/ 2 r) r)))
3.0ms
(* (* w r) (* w r))
1.0ms
(sqrt (/ (/ 2 r) r))
1.0ms
(sqrt (/ (/ 2 r) r))

series168.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
76.0ms
(* (sqrt (/ (/ 2 r) r)) (sqrt (/ (/ 2 r) r)))
33.0ms
(sqrt (/ (/ 2 r) r))
33.0ms
(sqrt (/ (/ 2 r) r))
26.0ms
(* (* w r) (* w r))

simplify1.3s

Counts
58 → 99
Calls
58 calls:
Slowest
551.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
460.0ms
(* (* (* (sqrt (/ (/ 2 r) r)) (sqrt (/ (/ 2 r) r))) (sqrt (/ (/ 2 r) r))) (* (* (sqrt (/ (/ 2 r) r)) (sqrt (/ (/ 2 r) r))) (sqrt (/ (/ 2 r) r))))
76.0ms
(* (/ (/ 2 r) r) (/ (/ 2 r) r))
61.0ms
(* (/ (/ 2 r) r) (/ (/ 2 r) r))
10.0ms
(* -1 (/ (sqrt 2) r))

prune1.6s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.0b

regimes313.0ms

Accuracy

0% (0.5b remaining)

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

bsearch12.0ms

end0.0ms

sample4.7s

Algorithm
intervals
Results
4.3s17147×body80valid