Average Error: 0.6 → 0.6
Time: 24.6s
Precision: 64
Internal Precision: 128
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\cos^{-1} \left((\left(-5 \cdot v\right) \cdot v + 1)_* \cdot \frac{1}{(v \cdot v + -1)_*}\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. Simplified0.6

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

    \[\leadsto \cos^{-1} \color{blue}{\left(\frac{1}{\frac{(v \cdot v + -1)_*}{(\left(-5 \cdot v\right) \cdot v + 1)_*}}\right)}\]
  5. Using strategy rm
  6. Applied associate-/r/0.6

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

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

Reproduce

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

Details

Time bar (total: 24.0s)Debug log

sample240.0ms

Algorithm
intervals

simplify531.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

531.0ms
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.5b

localize25.0ms

Local error

Found 2 expressions with local error:

0.5b
(acos (/ (fma (* -5 v) v 1) (fma v v -1)))
0.0b
(/ (fma (* -5 v) v 1) (fma v v -1))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
2 → 39
Calls

2 calls. Slowest were:

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

series30.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

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

simplify2.7s

Counts
31 → 45
Calls

31 calls. Slowest were:

495.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
494.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
357.0ms
(/ (* (* (fma (* -5 v) v 1) (fma (* -5 v) v 1)) (fma (* -5 v) v 1)) (* (* (fma v v -1) (fma v v -1)) (fma v v -1)))

prune433.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.5b

localize8.0ms

Local error

Found 3 expressions with local error:

0.5b
(acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))
0.0b
(/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))
0.0b
(/ (fma v v -1) (fma (* -5 v) v 1))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
3 → 69
Calls

3 calls. Slowest were:

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

series63.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

32.0ms
(/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))
26.0ms
(/ (fma v v -1) (fma (* -5 v) v 1))
5.0ms
(acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))

simplify3.9s

Counts
49 → 78
Calls

49 calls. Slowest were:

540.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
514.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
385.0ms
(/ (* (* (fma v v -1) (fma v v -1)) (fma v v -1)) (* (* (fma (* -5 v) v 1) (fma (* -5 v) v 1)) (fma (* -5 v) v 1)))

prune628.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.5b

localize15.0ms

Local error

Found 4 expressions with local error:

0.5b
(acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))
0.0b
(expm1 (log1p (acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))))
0.0b
(log1p (acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))))
0.0b
(/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))

rewrite6.0ms

Algorithm
rewrite-expression-head
Counts
4 → 62
Calls

4 calls. Slowest were:

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

series371.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

199.0ms
(expm1 (log1p (acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))))
120.0ms
(log1p (acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))))
48.0ms
(/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))
4.0ms
(acos (/ 1 (/ (fma v v -1) (fma (* -5 v) v 1))))

simplify2.9s

Counts
29 → 74
Calls

29 calls. Slowest were:

551.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
461.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
222.0ms
(/ 1 (/ (fma v v -1) (fma (* -5 v) v 1)))

prune811.0ms

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.5b

localize8.0ms

Local error

Found 3 expressions with local error:

0.5b
(acos (* (/ 1 (fma v v -1)) (fma (* -5 v) v 1)))
0.0b
(* (/ 1 (fma v v -1)) (fma (* -5 v) v 1))
0.0b
(/ 1 (fma v v -1))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
3 → 52
Calls

3 calls. Slowest were:

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

series68.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

43.0ms
(* (/ 1 (fma v v -1)) (fma (* -5 v) v 1))
20.0ms
(/ 1 (fma v v -1))
4.0ms
(acos (* (/ 1 (fma v v -1)) (fma (* -5 v) v 1)))

simplify2.6s

Counts
25 → 61
Calls

25 calls. Slowest were:

658.0ms
(* (* (* (/ 1 (fma v v -1)) (/ 1 (fma v v -1))) (/ 1 (fma v v -1))) (* (* (fma (* -5 v) v 1) (fma (* -5 v) v 1)) (fma (* -5 v) v 1)))
537.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))
491.0ms
(- (+ (* 4 (/ 1 (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2))))))

prune580.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.5b

regimes49.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms

end0.0ms

sample8.0s

Algorithm
intervals