Average Error: 12.5 → 0.4
Time: 34.2s
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\]
\[\begin{array}{l} \mathbf{if}\;r \le -1.8881390077278812 \cdot 10^{+180} \lor \neg \left(r \le 2.1567102301389585 \cdot 10^{+126}\right):\\ \;\;\;\;\left(\left(3 + \sqrt{\frac{2}{r \cdot r}} \cdot \left(\left(\sqrt[3]{\sqrt{\frac{2}{r \cdot r}}} \cdot \sqrt[3]{\sqrt{\frac{2}{r \cdot r}}}\right) \cdot \sqrt[3]{\sqrt{\frac{2}{r \cdot r}}}\right)\right) - \frac{\left(w \cdot \left(r \cdot w\right)\right) \cdot r}{1 - v} \cdot \left(\left(-2 \cdot v + 3\right) \cdot 0.125\right)\right) - 4.5\\ \mathbf{else}:\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \left(\left(-2 \cdot v + 3\right) \cdot 0.125\right) \cdot \frac{w \cdot \left(r \cdot \left(r \cdot w\right)\right)}{1 - v}\right) - 4.5\\ \end{array}\]

Error

Bits error versus v

Bits error versus w

Bits error versus r

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if r < -1.8881390077278812e+180 or 2.1567102301389585e+126 < r

    1. Initial program 25.8

      \[\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. Using strategy rm
    3. Applied *-un-lft-identity25.8

      \[\leadsto \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)}{\color{blue}{1 \cdot \left(1 - v\right)}}\right) - 4.5\]
    4. Applied times-frac18.8

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1} \cdot \frac{\left(\left(w \cdot w\right) \cdot r\right) \cdot r}{1 - v}}\right) - 4.5\]
    5. Simplified18.8

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\left(0.125 \cdot \left(v \cdot -2 + 3\right)\right)} \cdot \frac{\left(\left(w \cdot w\right) \cdot r\right) \cdot r}{1 - v}\right) - 4.5\]
    6. Using strategy rm
    7. Applied associate-*l*0.4

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

      \[\leadsto \left(\left(3 + \color{blue}{\sqrt{\frac{2}{r \cdot r}} \cdot \sqrt{\frac{2}{r \cdot r}}}\right) - \left(0.125 \cdot \left(v \cdot -2 + 3\right)\right) \cdot \frac{\left(w \cdot \left(w \cdot r\right)\right) \cdot r}{1 - v}\right) - 4.5\]
    10. Using strategy rm
    11. Applied add-cube-cbrt0.4

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

    if -1.8881390077278812e+180 < r < 2.1567102301389585e+126

    1. Initial program 8.9

      \[\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. Using strategy rm
    3. Applied *-un-lft-identity8.9

      \[\leadsto \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)}{\color{blue}{1 \cdot \left(1 - v\right)}}\right) - 4.5\]
    4. Applied times-frac5.3

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

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\left(0.125 \cdot \left(v \cdot -2 + 3\right)\right)} \cdot \frac{\left(\left(w \cdot w\right) \cdot r\right) \cdot r}{1 - v}\right) - 4.5\]
    6. Using strategy rm
    7. Applied associate-*l*2.6

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \left(0.125 \cdot \left(v \cdot -2 + 3\right)\right) \cdot \frac{\color{blue}{\left(w \cdot \left(w \cdot r\right)\right)} \cdot r}{1 - v}\right) - 4.5\]
    8. Using strategy rm
    9. Applied associate-*l*0.4

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \left(0.125 \cdot \left(v \cdot -2 + 3\right)\right) \cdot \frac{\color{blue}{w \cdot \left(\left(w \cdot r\right) \cdot r\right)}}{1 - v}\right) - 4.5\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;r \le -1.8881390077278812 \cdot 10^{+180} \lor \neg \left(r \le 2.1567102301389585 \cdot 10^{+126}\right):\\ \;\;\;\;\left(\left(3 + \sqrt{\frac{2}{r \cdot r}} \cdot \left(\left(\sqrt[3]{\sqrt{\frac{2}{r \cdot r}}} \cdot \sqrt[3]{\sqrt{\frac{2}{r \cdot r}}}\right) \cdot \sqrt[3]{\sqrt{\frac{2}{r \cdot r}}}\right)\right) - \frac{\left(w \cdot \left(r \cdot w\right)\right) \cdot r}{1 - v} \cdot \left(\left(-2 \cdot v + 3\right) \cdot 0.125\right)\right) - 4.5\\ \mathbf{else}:\\ \;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \left(\left(-2 \cdot v + 3\right) \cdot 0.125\right) \cdot \frac{w \cdot \left(r \cdot \left(r \cdot w\right)\right)}{1 - v}\right) - 4.5\\ \end{array}\]

Reproduce

herbie shell --seed 2019005 
(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: 32.9s)Debug log

sample283.0ms

Algorithm
intervals

simplify84.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

83.0ms
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5)

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 12.1b

localize413.0ms

Local error

Found 4 expressions with local error:

10.2b
(* (* w w) r)
7.1b
(/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))
3.9b
(* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r))
3.5b
(* (* (* w w) r) r)

rewrite95.0ms

Algorithm
rewrite-expression-head
Counts
4 → 58
Calls

4 calls. Slowest were:

34.0ms
(/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))
30.0ms
(* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r))
21.0ms
(* (* (* w w) r) r)

series191.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

74.0ms
(/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))
68.0ms
(* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r))
31.0ms
(* (* w w) r)
17.0ms
(* (* (* w w) r) r)

simplify6.2s

Counts
36 → 70
Calls

36 calls. Slowest were:

649.0ms
(* (* 0.125 (- (* 3 3) (* (* 2 v) (* 2 v)))) (* (* (* w w) r) r))
627.0ms
(* (* 0.125 (- (* 3 3) (* (* 2 v) (* 2 v)))) (* (* (* w w) r) r))
432.0ms
(* (* 0.125 (- (pow 3 3) (pow (* 2 v) 3))) (* (* (* w w) r) r))

prune1.0s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 0.1b

localize30.0ms

Local error

Found 4 expressions with local error:

10.2b
(* (* w w) r)
4.8b
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* (* w w) r) r) (- 1 v)))
3.5b
(* (* (* w w) r) r)
0.7b
(/ 2 (* r r))

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
4 → 57
Calls

4 calls. Slowest were:

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

series114.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

52.0ms
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* (* w w) r) r) (- 1 v)))
27.0ms
(* (* (* w w) r) r)
18.0ms
(/ 2 (* r r))
17.0ms
(* (* w w) r)

simplify4.5s

Counts
34 → 69
Calls

34 calls. Slowest were:

597.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (* (* (* w w) r) r))
512.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (/ (* (* (* w w) r) r) (- 1 v)))
394.0ms
(* (* (* (* 0.125 (+ (* v -2) 3)) (* 0.125 (+ (* v -2) 3))) (* 0.125 (+ (* v -2) 3))) (/ (* (* (* (* (* w w) r) r) (* (* (* w w) r) r)) (* (* (* w w) r) r)) (* (* (- 1 v) (- 1 v)) (- 1 v))))

prune1.1s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 0.0b

localize37.0ms

Local error

Found 4 expressions with local error:

4.8b
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
3.5b
(* (* w (* w r)) r)
0.7b
(/ 2 (* r r))
0.2b
(* w (* w r))

rewrite30.0ms

Algorithm
rewrite-expression-head
Counts
4 → 57
Calls

4 calls. Slowest were:

20.0ms
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
6.0ms
(* (* w (* w r)) r)
2.0ms
(* w (* w r))

series127.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

64.0ms
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
27.0ms
(* (* w (* w r)) r)
19.0ms
(/ 2 (* r r))
17.0ms
(* w (* w r))

simplify4.5s

Counts
33 → 69
Calls

33 calls. Slowest were:

630.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (* (* w (* w r)) r))
560.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (/ (* (* w (* w r)) r) (- 1 v)))
377.0ms
(+ (* 0.375 (* (pow r 2) (pow w 2))) (+ (* 0.125 (* (pow r 2) (* v (pow w 2)))) (* 0.125 (* (pow r 2) (* (pow v 2) (pow w 2))))))

prune1.1s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.0b

localize17.0ms

Local error

Found 4 expressions with local error:

11.2b
(sqrt (/ 2 (* r r)))
11.2b
(sqrt (/ 2 (* r r)))
4.8b
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
3.5b
(* (* w (* w r)) r)

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
4 → 65
Calls

4 calls. Slowest were:

10.0ms
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
3.0ms
(* (* w (* w r)) r)
1.0ms
(sqrt (/ 2 (* r r)))

series150.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

72.0ms
(* (* 0.125 (+ (* v -2) 3)) (/ (* (* w (* w r)) r) (- 1 v)))
26.0ms
(sqrt (/ 2 (* r r)))
26.0ms
(* (* w (* w r)) r)
25.0ms
(sqrt (/ 2 (* r r)))

simplify4.8s

Counts
45 → 77
Calls

45 calls. Slowest were:

597.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (/ (* (* w (* w r)) r) (- 1 v)))
549.0ms
(* (* 0.125 (- (* (* v -2) (* v -2)) (* 3 3))) (* (* w (* w r)) r))
390.0ms
(sqrt (sqrt (/ 2 (* r r))))

prune1.2s

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 0.0b

regimes554.0ms

Accuracy

86.5% (0.3b remaining)

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

bsearch974.0ms

end0.0ms

sample5.3s

Algorithm
intervals