Average Error: 12.4 → 0.4
Time: 28.4s
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((e^{\log_* (1 + \frac{(v \cdot -2 + 3)_*}{1 - v})} - 1)^*\right) \cdot \left(\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) \cdot \left(-0.125\right)\right) + \left(\frac{\frac{2}{r}}{r} + \left(3 + \left(-4.5\right)\right)\right))_*\]

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.4

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

    \[\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 *-un-lft-identity0.3

    \[\leadsto \left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{1 \cdot (\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 add-sqr-sqrt0.9

    \[\leadsto \color{blue}{\sqrt{3 + \frac{2}{r \cdot r}} \cdot \sqrt{3 + \frac{2}{r \cdot r}}} - 1 \cdot (\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-diff0.9

    \[\leadsto \color{blue}{(\left(\sqrt{3 + \frac{2}{r \cdot r}}\right) \cdot \left(\sqrt{3 + \frac{2}{r \cdot r}}\right) + \left(-(\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 1\right))_* + (\left(-(\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 1 + \left((\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 1\right))_*}\]
  7. Simplified0.3

    \[\leadsto \color{blue}{(\left(\frac{(v \cdot -2 + 3)_*}{1 - v}\right) \cdot \left(\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) \cdot \left(-0.125\right)\right) + \left(\left(\left(-4.5\right) + 3\right) + \frac{\frac{2}{r}}{r}\right))_*} + (\left(-(\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 1 + \left((\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 1\right))_*\]
  8. Simplified0.3

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

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

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

Reproduce

herbie shell --seed 2019016 +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.9s)Debug log

sample332.0ms

Algorithm
intervals
Results
555×(pre true 80)
555×(body real 80)

simplify95.0ms

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

prune20.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

localize49.0ms

Local error

Found 4 expressions with local error:

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

rewrite40.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
26.0ms
(- (+ 3 (/ 2 (* r r))) (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5))
8.0ms
(* (* w r) (* w r))
3.0ms
(/ 2 (* r r))
0.0ms
(fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)

series203.0ms

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

simplify6.7s

Counts
42 → 83
Calls
42 calls:
Slowest
1.0s
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
422.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))))
421.0ms
(+ (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
393.0ms
(- (sqrt (+ 3 (/ 2 (* r r)))) (sqrt (fma (/ (fma -2 v 3) (/ (- 1 v) 0.125)) (* (* w r) (* w r)) 4.5)))
353.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.3s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 0.0b

localize36.0ms

Local error

Found 4 expressions with local error:

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

rewrite16.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
7.0ms
(* (* w r) (* w r))
4.0ms
(/ (/ 2 r) r)
3.0ms
(/ (fma v -2 3) (- 1 v))
0.0ms
(fma (/ (fma v -2 3) (- 1 v)) (* (* (* w r) (* w r)) (- 0.125)) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))

series185.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
133.0ms
(fma (/ (fma v -2 3) (- 1 v)) (* (* (* w r) (* w r)) (- 0.125)) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
22.0ms
(/ (/ 2 r) r)
16.0ms
(* (* w r) (* w r))
13.0ms
(/ (fma v -2 3) (- 1 v))

simplify2.0s

Counts
47 → 88
Calls
47 calls:
Slowest
576.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
379.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))))
293.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))))
189.0ms
(/ (* (* (fma v -2 3) (fma v -2 3)) (fma v -2 3)) (* (* (- 1 v) (- 1 v)) (- 1 v)))
61.0ms
(- 2 (+ (/ 1 v) (/ 1 (pow v 2))))

prune1.6s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.0b

localize23.0ms

Local error

Found 4 expressions with local error:

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

rewrite11.0ms

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

series275.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
196.0ms
(fma (expm1 (log1p (/ (fma v -2 3) (- 1 v)))) (* (* (* w r) (* w r)) (- 0.125)) (+ (+ (- 4.5) 3) (/ (/ 2 r) r)))
39.0ms
(log1p (/ (fma v -2 3) (- 1 v)))
27.0ms
(* (* w r) (* w r))
13.0ms
(/ (/ 2 r) r)

simplify1.8s

Counts
21 → 68
Calls
21 calls:
Slowest
604.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
339.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))))
278.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))))
260.0ms
(- (log 3) (+ (* 1/3 (/ 1 v)) (* 7/18 (/ 1 (pow v 2)))))
188.0ms
(- (log 3) (+ (* 1/3 (/ 1 v)) (* 7/18 (/ 1 (pow v 2)))))

prune1.4s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 0.0b

localize25.0ms

Local error

Found 4 expressions with local error:

0.4b
(* (* w r) (* w r))
0.3b
(cbrt (fma v -2 3))
0.3b
(cbrt (fma -2 v 3))
0.3b
(cbrt (fma -2 v 3))

rewrite6.0ms

Algorithm
rewrite-expression-head
Rules
pow1
cbrt-prod
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
add-cbrt-cube
add-log-exp
log1p-expm1-u
expm1-log1p-u
pow1/3
cbrt-unprod
pow-prod-up
*-commutative
prod-exp
pow-prod-down
associate-*l*
associate-*r*
pow-plus
pow2
Counts
4 → 57
Calls
4 calls:
Slowest
4.0ms
(* (* w r) (* w r))
1.0ms
(cbrt (fma v -2 3))
1.0ms
(cbrt (fma -2 v 3))
1.0ms
(cbrt (fma -2 v 3))

series210.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
67.0ms
(cbrt (fma -2 v 3))
60.0ms
(cbrt (fma v -2 3))
59.0ms
(cbrt (fma -2 v 3))
23.0ms
(* (* w r) (* w r))

simplify2.8s

Counts
27 → 69
Calls
27 calls:
Slowest
618.0ms
(* (* (* (* w r) (* w r)) (* w r)) (* (* (* w r) (* w r)) (* w r)))
285.0ms
(- (pow 3 1/3) (+ (* 2/9 (* v (pow 3 1/3))) (* 4/81 (* (pow v 2) (pow 3 1/3)))))
262.0ms
(- (pow 3 1/3) (+ (* 2/9 (* v (pow 3 1/3))) (* 4/81 (* (pow v 2) (pow 3 1/3)))))
261.0ms
(- (exp (* 1/3 (- (log 2) (log (/ -1 v))))) (+ (* 1/2 (/ (exp (* 1/3 (- (log 2) (log (/ -1 v))))) v)) (* 1/4 (/ (exp (* 1/3 (- (log 2) (log (/ -1 v))))) (pow v 2)))))
259.0ms
(- (exp (* 1/3 (- (log 2) (log (/ -1 v))))) (+ (* 1/2 (/ (exp (* 1/3 (- (log 2) (log (/ -1 v))))) v)) (* 1/4 (/ (exp (* 1/3 (- (log 2) (log (/ -1 v))))) (pow v 2)))))

prune1.5s

Pruning

11 alts after pruning (9 fresh and 2 done)

Merged error: 0.0b

regimes769.0ms

Accuracy

0% (0.3b remaining)

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

bsearch10.0ms

end0.0ms

sample5.5s

Algorithm
intervals
Results
17261×(pre true 80)
17261×(body real 80)