Average Error: 0.6 → 0.6
Time: 25.8s
Precision: 64
Internal Precision: 128
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[e^{\sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)} \cdot \sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)}}\]

Error

Bits error versus v

Derivation

  1. Initial program 0.6

    \[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
  2. Initial simplification0.6

    \[\leadsto \cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\]
  3. Using strategy rm
  4. Applied add-exp-log0.6

    \[\leadsto \color{blue}{e^{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt0.6

    \[\leadsto e^{\color{blue}{\sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)} \cdot \sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)}}}\]
  7. Final simplification0.6

    \[\leadsto e^{\sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)} \cdot \sqrt{\log \left(\cos^{-1} \left(\frac{(\left(-5 \cdot v\right) \cdot v + 1)_*}{(v \cdot v + -1)_*}\right)\right)}}\]

Reproduce

herbie shell --seed 2018362 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 1"
  (acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))

Details

Time bar (total: 13.0s)Debug log

start283.0ms

Algorithm
intervals

setup667.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.6b

localize16.0ms

Local error

Found 1 expressions with local error:

0.6b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

rewrite1.0ms

Algorithm
rewrite-expression-head
Counts
1 → 10
Calls

1 calls. Slowest were:

1.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

series3.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

3.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

simplify247.0ms

Counts
3 → 13
Calls

3 calls. Slowest were:

106.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
84.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
56.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

prune213.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.6b

localize7.0ms

Local error

Found 3 expressions with local error:

0.6b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
0.0b
(exp (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))
0.0b
(log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))

rewrite4.0ms

Algorithm
rewrite-expression-head
Counts
3 → 41
Calls

3 calls. Slowest were:

2.0ms
(exp (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))
1.0ms
(log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))
1.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

series119.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

112.0ms
(log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))
5.0ms
(exp (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))
3.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

simplify1.3s

Counts
21 → 50
Calls

21 calls. Slowest were:

109.0ms
(log (* (cbrt (acos (/ (fma (* -5 v) v 1) (fma v v -1)))) (cbrt (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))
99.0ms
(log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))
98.0ms
(exp (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))

prune765.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.6b

localize18.0ms

Local error

Found 4 expressions with local error:

0.6b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
0.6b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
0.0b
(exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))
0.0b
(* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
4 → 66
Calls

4 calls. Slowest were:

6.0ms
(exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))
6.0ms
(* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))
1.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

series100.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

92.0ms
(* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))
3.0ms
(exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))
3.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
3.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

simplify2.8s

Counts
39 → 78
Calls

39 calls. Slowest were:

164.0ms
(log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))
106.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
104.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

prune1.5s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.6b

localize8.0ms

Local error

Found 4 expressions with local error:

1.0b
(* (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))) (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))
1.0b
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))
1.0b
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))
0.6b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
4 → 70
Calls

4 calls. Slowest were:

11.0ms
(* (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))) (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))
2.0ms
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))
2.0ms
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))

series47.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

21.0ms
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))
20.0ms
(sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))))))
4.0ms
(* (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))) (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))
2.0ms
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))

simplify3.4s

Counts
42 → 82
Calls

42 calls. Slowest were:

122.0ms
(sqrt (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))
122.0ms
(sqrt (cbrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))
119.0ms
(sqrt (sqrt (exp (* (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1))))) (sqrt (log (acos (/ (fma (* -5 v) v 1) (fma v v -1)))))))))

prune1.5s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.6b

regimes69.0ms

Accuracy

0% (0.0b remaining)

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

bsearch3.0ms