Average Error: 0.5 → 0.1
Time: 42.8s
Precision: 64
Internal Precision: 128
\[\frac{1 - 5 \cdot \left(v \cdot v\right)}{\left(\left(\pi \cdot t\right) \cdot \sqrt{2 \cdot \left(1 - 3 \cdot \left(v \cdot v\right)\right)}\right) \cdot \left(1 - v \cdot v\right)}\]
\[\frac{\frac{\frac{(\left(v \cdot v\right) \cdot -5 + 1)_*}{\pi}}{\sqrt{(\left(v \cdot v\right) \cdot -3 + 1)_* \cdot 2}}}{\left(1 - v \cdot v\right) \cdot t}\]

Error

Bits error versus v

Bits error versus t

Derivation

  1. Initial program 0.5

    \[\frac{1 - 5 \cdot \left(v \cdot v\right)}{\left(\left(\pi \cdot t\right) \cdot \sqrt{2 \cdot \left(1 - 3 \cdot \left(v \cdot v\right)\right)}\right) \cdot \left(1 - v \cdot v\right)}\]
  2. Simplified0.3

    \[\leadsto \color{blue}{\frac{\frac{(\left(v \cdot v\right) \cdot -5 + 1)_*}{\pi}}{\sqrt{2 \cdot (\left(v \cdot v\right) \cdot -3 + 1)_*} \cdot \left(t \cdot \left(1 - v \cdot v\right)\right)}}\]
  3. Using strategy rm
  4. Applied associate-/r*0.1

    \[\leadsto \color{blue}{\frac{\frac{\frac{(\left(v \cdot v\right) \cdot -5 + 1)_*}{\pi}}{\sqrt{2 \cdot (\left(v \cdot v\right) \cdot -3 + 1)_*}}}{t \cdot \left(1 - v \cdot v\right)}}\]
  5. Final simplification0.1

    \[\leadsto \frac{\frac{\frac{(\left(v \cdot v\right) \cdot -5 + 1)_*}{\pi}}{\sqrt{(\left(v \cdot v\right) \cdot -3 + 1)_* \cdot 2}}}{\left(1 - v \cdot v\right) \cdot t}\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (v t)
  :name "Falkner and Boettcher, Equation (20:1,3)"
  (/ (- 1 (* 5 (* v v))) (* (* (* PI t) (sqrt (* 2 (- 1 (* 3 (* v v)))))) (- 1 (* v v)))))

Details

Time bar (total: 42.3s)Debug log

sample181.0ms

Algorithm
intervals

simplify168.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
168.0ms
(/ (- 1 (* 5 (* v v))) (* (* (* PI t) (sqrt (* 2 (- 1 (* 3 (* v v)))))) (- 1 (* v v))))

prune16.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize49.0ms

Local error

Found 3 expressions with local error:

0.5b
(* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v))))
0.4b
(/ (/ (fma (* v v) -5 1) PI) (* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v)))))
0.0b
(/ (fma (* v v) -5 1) PI)

rewrite37.0ms

Algorithm
rewrite-expression-head
Rules
10×add-exp-log
10×add-cbrt-cube
associate-*r/
distribute-lft-in
distribute-rgt-in
associate-/l*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
pow1
div-inv
associate-*l*
times-frac
sub-neg
add-log-exp
log1p-expm1-u
expm1-log1p-u
flip--
cbrt-unprod
associate-/r/
prod-exp
div-exp
flip3--
frac-2neg
clear-num
cbrt-undiv
associate-/l/
sqrt-prod
*-commutative
pow-prod-down
associate-*r*
associate-/r*
Counts
3 → 71
Calls
3 calls:
Slowest
17.0ms
(/ (/ (fma (* v v) -5 1) PI) (* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v)))))
14.0ms
(* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v))))
5.0ms
(/ (fma (* v v) -5 1) PI)

series595.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
318.0ms
(/ (/ (fma (* v v) -5 1) PI) (* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v)))))
166.0ms
(* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v))))
111.0ms
(/ (fma (* v v) -5 1) PI)

simplify5.3s

Counts
47 → 80
Calls
47 calls:
Slowest
372.0ms
(- (log (/ (fma (* v v) -5 1) PI)) (+ (log (sqrt (* 2 (fma (* v v) -3 1)))) (log (* t (- 1 (* v v))))))
327.0ms
(- (* t (sqrt 2)) (* 5/2 (* t (* (sqrt 2) (pow v 2)))))
310.0ms
(- (/ 1 (* t (* (sqrt 2) PI))) (+ (* 53/8 (/ (pow v 4) (* t (* (sqrt 2) PI)))) (* 5/2 (/ (pow v 2) (* t (* (sqrt 2) PI))))))
249.0ms
(* (sqrt (* 2 (fma (* v v) -3 1))) (* t (- 1 (* v v))))
249.0ms
(- (+ (* 1/2 (/ (* t (* (sqrt 2) v)) (sqrt -3))) (* t (* (sqrt 2) (* (pow v 3) (sqrt -3))))) (+ (* 1/8 (/ (* t (sqrt 2)) (* v (pow (sqrt -3) 3)))) (+ (* t (* (sqrt 2) (* v (sqrt -3)))) (* 1/2 (/ (* t (sqrt 2)) (* v (sqrt -3)))))))

prune1.2s

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0b

localize11.0ms

Local error

Found 2 expressions with local error:

0.1b
(/ (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1)))) (* t (- 1 (* v v))))
0.0b
(/ (fma (* v v) -5 1) PI)

rewrite25.0ms

Algorithm
rewrite-expression-head
Rules
52×times-frac
23×associate-/l*
21×add-cube-cbrt
21×*-un-lft-identity
21×add-sqr-sqrt
12×div-inv
sqrt-prod
add-exp-log
add-cbrt-cube
div-exp
cbrt-undiv
add-log-exp
log1p-expm1-u
associate-/r/
associate-*r/
frac-2neg
clear-num
pow1
expm1-log1p-u
associate-/l/
flip--
flip3--
associate-/r*
Counts
2 → 75
Calls
2 calls:
Slowest
18.0ms
(/ (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1)))) (* t (- 1 (* v v))))
5.0ms
(/ (fma (* v v) -5 1) PI)

series423.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
309.0ms
(/ (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1)))) (* t (- 1 (* v v))))
114.0ms
(/ (fma (* v v) -5 1) PI)

simplify6.7s

Counts
75 → 81
Calls
75 calls:
Slowest
307.0ms
(- (/ 1 (* t (* (sqrt 2) PI))) (+ (* 53/8 (/ (pow v 4) (* t (* (sqrt 2) PI)))) (* 5/2 (/ (pow v 2) (* t (* (sqrt 2) PI))))))
280.0ms
(/ (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1)))) (- 1 (* v v)))
256.0ms
(/ (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1)))) (- 1 (* v v)))
244.0ms
(- (log (/ (/ (fma (* v v) -5 1) PI) (sqrt (* 2 (fma (* v v) -3 1))))) (log (* t (- 1 (* v v)))))
234.0ms
(/ (/ (/ (fma (* v v) -5 1) PI) (cbrt (sqrt (* 2 (fma (* v v) -3 1))))) (- 1 (* v v)))

prune1.2s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0b

localize19.0ms

Local error

Found 4 expressions with local error:

1.0b
(/ 1 (sqrt (fma -6 (* v v) 2)))
0.5b
(/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v))))
0.4b
(* (/ 1 (sqrt (fma -6 (* v v) 2))) (/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v)))))
0.0b
(/ (fma (* v v) -5 1) PI)

rewrite22.0ms

Algorithm
rewrite-expression-head
Rules
17×add-exp-log
12×add-cube-cbrt
12×*-un-lft-identity
12×add-sqr-sqrt
11×add-cbrt-cube
10×associate-*r*
div-inv
times-frac
associate-/l*
associate-/r*
pow1
associate-*r/
add-log-exp
log1p-expm1-u
associate-/r/
prod-exp
associate-*l*
expm1-log1p-u
sqrt-prod
div-exp
frac-2neg
clear-num
rec-exp
flip--
pow-flip
cbrt-unprod
flip3--
cbrt-undiv
associate-/l/
inv-pow
*-commutative
associate-*l/
pow-prod-down
pow1/2
frac-times
Counts
4 → 97
Calls
4 calls:
Slowest
11.0ms
(* (/ 1 (sqrt (fma -6 (* v v) 2))) (/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v)))))
5.0ms
(/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v))))
3.0ms
(/ (fma (* v v) -5 1) PI)
1.0ms
(/ 1 (sqrt (fma -6 (* v v) 2)))

series519.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
246.0ms
(* (/ 1 (sqrt (fma -6 (* v v) 2))) (/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v)))))
122.0ms
(/ (fma (* v v) -5 1) PI)
108.0ms
(/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v))))
43.0ms
(/ 1 (sqrt (fma -6 (* v v) 2)))

simplify6.5s

Counts
62 → 109
Calls
62 calls:
Slowest
482.0ms
(* 1 (/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v)))))
358.0ms
(+ (- (log (sqrt (fma -6 (* v v) 2)))) (- (log (/ (fma (* v v) -5 1) PI)) (log (* t (- 1 (* v v))))))
349.0ms
(* (* (* (/ 1 (sqrt (fma -6 (* v v) 2))) (/ 1 (sqrt (fma -6 (* v v) 2)))) (/ 1 (sqrt (fma -6 (* v v) 2)))) (/ (* (* (/ (fma (* v v) -5 1) PI) (/ (fma (* v v) -5 1) PI)) (/ (fma (* v v) -5 1) PI)) (* (* (* t (- 1 (* v v))) (* t (- 1 (* v v)))) (* t (- 1 (* v v))))))
311.0ms
(+ (log (/ 1 (sqrt (fma -6 (* v v) 2)))) (log (/ (/ (fma (* v v) -5 1) PI) (* t (- 1 (* v v))))))
286.0ms
(* (sqrt (fma -6 (* v v) 2)) (* t (- 1 (* v v))))

prune1.3s

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0b

localize58.0ms

Local error

Found 4 expressions with local error:

0.3b
(/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t)
0.3b
(* (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t) (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2)))) (- 1 (* v v))))
0.0b
(sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2))))
0.0b
(/ (fma v (* v -5) 1) PI)

rewrite40.0ms

Algorithm
rewrite-expression-head
Rules
215×times-frac
201×sqrt-prod
122×add-sqr-sqrt
117×add-cube-cbrt
117×*-un-lft-identity
99×associate-*r*
39×div-inv
34×associate-/l*
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
associate-*l*
expm1-log1p-u
rem-sqrt-square
cbrt-unprod
associate-/r/
prod-exp
sqrt-div
frac-2neg
clear-num
associate-/l/
flip--
*-commutative
associate-*r/
associate-*l/
pow-prod-down
div-exp
pow1/2
flip3--
cbrt-undiv
frac-times
Counts
4 → 222
Calls
4 calls:
Slowest
19.0ms
(* (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t) (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2)))) (- 1 (* v v))))
11.0ms
(/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t)
2.0ms
(/ (fma v (* v -5) 1) PI)
2.0ms
(sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2))))

series1.2s

Counts
4 → 12
Calls
4 calls:
Slowest
663.0ms
(/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t)
238.0ms
(sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2))))
221.0ms
(* (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t) (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2)))) (- 1 (* v v))))
112.0ms
(/ (fma v (* v -5) 1) PI)

simplify7.5s

Counts
188 → 234
Calls
188 calls:
Slowest
601.0ms
(- (+ (* 3/4 (/ (pow v 2) (* t (* PI (sqrt 1/2))))) (/ (sqrt 1/2) (* t PI))) (+ (* 9/32 (/ (pow v 4) (* t (* PI (pow (sqrt 1/2) 3))))) (+ (* 3/4 (/ (pow v 4) (* t (* PI (sqrt 1/2))))) (+ (* 4 (/ (* (pow v 2) (sqrt 1/2)) (* t PI))) (* 4 (/ (* (pow v 4) (sqrt 1/2)) (* t PI)))))))
314.0ms
(- (+ (* v (* (sqrt (/ -5 PI)) (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v)))))))) (+ (* 1/24 (/ (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v)))))) (* (pow v 3) (* (sqrt (/ -5 PI)) PI)))) (+ (* 1/12 (/ (* (sqrt (/ -5 PI)) (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v))))))) v)) (+ (* 1/2 (/ (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v)))))) (* v (* (sqrt (/ -5 PI)) PI)))) (* 5/288 (/ (* (sqrt (/ -5 PI)) (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v))))))) (pow v 3))))))) (* 1/8 (/ (exp (* 1/4 (+ (log -1/6) (* 2 (log (/ 1 v)))))) (* (pow v 3) (* (pow (sqrt (/ -5 PI)) 3) (pow PI 2))))))
305.0ms
(+ (log (/ (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* v -6) 2)))) t)) (- (log (sqrt (/ (/ (fma v (* v -5) 1) PI) (sqrt (fma v (* -6 v) 2))))) (log (- 1 (* v v)))))
298.0ms
(- (* 1/8 (/ (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (* (pow v 3) (* (pow (sqrt (/ -5 PI)) 3) (pow PI 2))))) (+ (* 1/2 (/ (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (* v (* (sqrt (/ -5 PI)) PI)))) (+ (* 5/288 (/ (* (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (sqrt (/ -5 PI))) (pow v 3))) (+ (* 1/24 (/ (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (* (pow v 3) (* (sqrt (/ -5 PI)) PI)))) (+ (* 1/12 (/ (* (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (sqrt (/ -5 PI))) v)) (* (exp (* 1/4 (+ (* 2 (log (/ -1 v))) (log -1/6)))) (* v (sqrt (/ -5 PI)))))))))
242.0ms
(- (* (pow 1/2 1/4) (sqrt (/ 1 PI))) (+ (* 115/32 (* (pow v 4) (* (pow 1/2 1/4) (sqrt (/ 1 PI))))) (* 7/4 (* (pow v 2) (* (pow 1/2 1/4) (sqrt (/ 1 PI)))))))

prune4.7s

Pruning

3 alts after pruning (0 fresh and 3 done)

Merged error: 0b

regimes122.0ms

Accuracy

0% (0.1b remaining)

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

bsearch2.0ms

end0.0ms

sample4.2s

Algorithm
intervals