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

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.0

    \[\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. Initial simplification0.4

    \[\leadsto \left(3 + \frac{2}{r \cdot r}\right) - (\left(\frac{0.125}{\frac{1 - v}{(-2 \cdot v + 3)_*}}\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-sqrt0.5

    \[\leadsto \left(3 + \color{blue}{\sqrt{\frac{2}{r \cdot r}} \cdot \sqrt{\frac{2}{r \cdot r}}}\right) - (\left(\frac{0.125}{\frac{1 - v}{(-2 \cdot v + 3)_*}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*\]
  5. Using strategy rm
  6. Applied sqrt-div0.5

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

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

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

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

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

    \[\leadsto \left(3 + \left(\sqrt{\sqrt{2}} \cdot \color{blue}{\frac{\sqrt{\sqrt{2}}}{\left|r\right|}}\right) \cdot \sqrt{\frac{2}{r \cdot r}}\right) - (\left(\frac{0.125}{\frac{1 - v}{(-2 \cdot v + 3)_*}}\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5)_*\]
  13. Using strategy rm
  14. Applied sqrt-div0.5

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

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

Reproduce

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

start612.0ms

Algorithm
intervals

setup169.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

localize64.0ms

Local error

Found 4 expressions with local error:

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

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
4 → 71
Calls

4 calls. Slowest were:

8.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ 0.125 (/ (- 1 v) (fma -2 v 3))) (* (* w r) (* w r)) 4.5))
4.0ms
(* (* w r) (* w r))
2.0ms
(/ 2 (* r r))

series198.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

76.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ 0.125 (/ (- 1 v) (fma -2 v 3))) (* (* w r) (* w r)) 4.5))
70.0ms
(fma (/ 0.125 (/ (- 1 v) (fma -2 v 3))) (* (* w r) (* w r)) 4.5)
27.0ms
(/ 2 (* r r))
24.0ms
(* (* w r) (* w r))

simplify7.3s

Counts
42 → 83
Calls

42 calls. Slowest were:

703.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
466.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)))))
394.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))))

prune2.0s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 0.0b

localize24.0ms

Local error

Found 4 expressions with local error:

11.3b
(sqrt (/ 2 (* r r)))
11.3b
(sqrt (/ 2 (* r r)))
0.6b
(/ 2 (* r r))
0.6b
(/ 2 (* r r))

rewrite3.0ms

Algorithm
rewrite-expression-head
Counts
4 → 58
Calls

4 calls. Slowest were:

1.0ms
(sqrt (/ 2 (* r r)))
1.0ms
(sqrt (/ 2 (* r r)))
0.0ms
(/ 2 (* r r))

series91.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

32.0ms
(sqrt (/ 2 (* r r)))
22.0ms
(sqrt (/ 2 (* r r)))
19.0ms
(/ 2 (* r r))
19.0ms
(/ 2 (* r r))

simplify100.0ms

Counts
24 → 70
Calls

24 calls. Slowest were:

16.0ms
(* -1 (/ (sqrt 2) r))
11.0ms
(* -1 (/ (sqrt 2) r))
6.0ms
(sqrt (* (cbrt (/ 2 (* r r))) (cbrt (/ 2 (* r r)))))

prune1.7s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.0b

localize34.0ms

Local error

Found 4 expressions with local error:

11.7b
(sqrt (* r r))
11.3b
(sqrt (/ 2 (* r r)))
0.6b
(/ 2 (* r r))
0.5b
(/ (sqrt 2) (sqrt (* r r)))

rewrite11.0ms

Algorithm
rewrite-expression-head
Counts
4 → 75
Calls

4 calls. Slowest were:

6.0ms
(/ (sqrt 2) (sqrt (* r r)))
2.0ms
(sqrt (/ 2 (* r r)))
1.0ms
(sqrt (* r r))

series74.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

37.0ms
(/ (sqrt 2) (sqrt (* r r)))
20.0ms
(sqrt (/ 2 (* r r)))
11.0ms
(/ 2 (* r r))
6.0ms
(sqrt (* r r))

simplify462.0ms

Counts
52 → 87
Calls

52 calls. Slowest were:

180.0ms
(/ (* (* (sqrt 2) (sqrt 2)) (sqrt 2)) (* (* (sqrt (* r r)) (sqrt (* r r))) (sqrt (* r r))))
36.0ms
(/ (* (cbrt (sqrt 2)) (cbrt (sqrt 2))) (* (cbrt (sqrt (* r r))) (cbrt (sqrt (* r r)))))
21.0ms
(* -1 (/ (sqrt 2) r))

prune2.6s

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 0.0b

localize38.0ms

Local error

Found 4 expressions with local error:

11.3b
(sqrt (/ 2 (* r r)))
0.6b
(/ 2 (* r r))
0.4b
(* (* (sqrt (sqrt 2)) (/ (sqrt (sqrt 2)) (fabs r))) (sqrt (/ 2 (* r r))))
0.3b
(* (* w r) (* w r))

rewrite34.0ms

Algorithm
rewrite-expression-head
Counts
4 → 76
Calls

4 calls. Slowest were:

25.0ms
(* (* (sqrt (sqrt 2)) (/ (sqrt (sqrt 2)) (fabs r))) (sqrt (/ 2 (* r r))))
3.0ms
(* (* w r) (* w r))
2.0ms
(sqrt (/ 2 (* r r)))

series171.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

91.0ms
(* (* (sqrt (sqrt 2)) (/ (sqrt (sqrt 2)) (fabs r))) (sqrt (/ 2 (* r r))))
33.0ms
(sqrt (/ 2 (* r r)))
29.0ms
(* (* w r) (* w r))
19.0ms
(/ 2 (* r r))

simplify1.5s

Counts
44 → 88
Calls

44 calls. Slowest were:

526.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
155.0ms
(* (* (* (* (sqrt (sqrt 2)) (sqrt (sqrt 2))) (sqrt (sqrt 2))) (/ (* (* (sqrt (sqrt 2)) (sqrt (sqrt 2))) (sqrt (sqrt 2))) (* (* (fabs r) (fabs r)) (fabs r)))) (* (* (sqrt (/ 2 (* r r))) (sqrt (/ 2 (* r r)))) (sqrt (/ 2 (* r r)))))
150.0ms
(* (* (* (* (sqrt (sqrt 2)) (sqrt (sqrt 2))) (sqrt (sqrt 2))) (* (* (/ (sqrt (sqrt 2)) (fabs r)) (/ (sqrt (sqrt 2)) (fabs r))) (/ (sqrt (sqrt 2)) (fabs r)))) (* (* (sqrt (/ 2 (* r r))) (sqrt (/ 2 (* r r)))) (sqrt (/ 2 (* r r)))))

prune2.5s

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 0.0b

regimes1.1s

Accuracy

0% (0.4b remaining)

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

bsearch7.0ms