Average Error: 0.5 → 0.5
Time: 27.6s
Precision: 64
Internal Precision: 128
\[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
\[\frac{\pi}{2} - \sin^{-1} \left(\frac{1 - \left(v \cdot v\right) \cdot 5}{v \cdot v - 1}\right)\]

Error

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.5

    \[\cos^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)\]
  2. Using strategy rm
  3. Applied acos-asin0.5

    \[\leadsto \color{blue}{\frac{\pi}{2} - \sin^{-1} \left(\frac{1 - 5 \cdot \left(v \cdot v\right)}{v \cdot v - 1}\right)}\]
  4. Final simplification0.5

    \[\leadsto \frac{\pi}{2} - \sin^{-1} \left(\frac{1 - \left(v \cdot v\right) \cdot 5}{v \cdot v - 1}\right)\]

Reproduce

herbie shell --seed 2019010 
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 1"
  (acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))

Details

Time bar (total: 26.9s)Debug log

sample227.0ms

Algorithm
intervals

simplify459.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
459.0ms
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))

prune5.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.6b

localize19.0ms

Local error

Found 3 expressions with local error:

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

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
12×add-cube-cbrt
12×times-frac
12×*-un-lft-identity
12×add-sqr-sqrt
add-exp-log
add-cbrt-cube
difference-of-sqr-1
associate-/r*
add-log-exp
associate-/l*
pow1
associate-/l/
flip--
associate-/r/
flip3--
div-inv
*-commutative
associate-*r*
div-exp
div-sub
frac-2neg
clear-num
cbrt-undiv
acos-asin
Counts
3 → 53
Calls
3 calls:
Slowest
4.0ms
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))
1.0ms
(* 5 (* v v))
1.0ms
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))

series39.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
24.0ms
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))
12.0ms
(* 5 (* v v))
4.0ms
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))

simplify5.0s

Counts
46 → 62
Calls
46 calls:
Slowest
731.0ms
(/ (* (* (- 1 (* 5 (* v v))) (- 1 (* 5 (* v v)))) (- 1 (* 5 (* v v)))) (* (* (- (* v v) 1) (- (* v v) 1)) (- (* v v) 1)))
497.0ms
(/ (sqrt (- 1 (* 5 (* v v)))) (cbrt (- (* v v) 1)))
410.0ms
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))
206.0ms
(/ (- 1 (* 5 (* v v))) (cbrt (- (* v v) 1)))
201.0ms
(/ (- 1 (* 5 (* v v))) (sqrt (- (* v v) 1)))

prune454.0ms

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.5b

localize9.0ms

Local error

Found 4 expressions with local error:

0.6b
(asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))
0.2b
(* 5 (* v v))
0.0b
(- (/ PI 2) (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))
0.0b
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))

rewrite11.0ms

Algorithm
rewrite-expression-head
Rules
15×*-un-lft-identity
15×add-sqr-sqrt
13×add-cube-cbrt
12×times-frac
add-log-exp
add-exp-log
add-cbrt-cube
difference-of-sqr-1
associate-/r*
pow1
associate-/l*
flip--
flip3--
associate-/l/
associate-/r/
asin-acos
difference-of-squares
associate--r-
distribute-lft-out--
div-inv
*-commutative
associate-*r*
div-exp
div-sub
diff-log
frac-2neg
sub-neg
clear-num
cbrt-undiv
Counts
4 → 68
Calls
4 calls:
Slowest
4.0ms
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))
4.0ms
(- (/ PI 2) (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))
1.0ms
(asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))
1.0ms
(* 5 (* v v))

series88.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
43.0ms
(- (/ PI 2) (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))
23.0ms
(/ (- 1 (* 5 (* v v))) (- (* v v) 1))
15.0ms
(* 5 (* v v))
6.0ms
(asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))

simplify7.9s

Counts
54 → 80
Calls
54 calls:
Slowest
729.0ms
(/ (* (* (- 1 (* 5 (* v v))) (- 1 (* 5 (* v v)))) (- 1 (* 5 (* v v)))) (* (* (- (* v v) 1) (- (* v v) 1)) (- (* v v) 1)))
539.0ms
(- (/ PI 2) (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1))))
492.0ms
(+ (sqrt (/ PI 2)) (sqrt (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))))
488.0ms
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))
486.0ms
(- (sqrt (/ PI 2)) (sqrt (asin (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))))

prune731.0ms

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.5b

localize14.0ms

Local error

Found 3 expressions with local error:

0.6b
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))
0.0b
(* (+ (* v v) (pow v 4)) 4)
0.0b
(+ (* v v) (pow v 4))

rewrite9.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
associate-*l*
add-cbrt-cube
pow1
flip-+
associate-*l/
flip3-+
*-commutative
sum-log
+-commutative
acos-asin
Counts
3 → 32
Calls
3 calls:
Slowest
5.0ms
(* (+ (* v v) (pow v 4)) 4)
2.0ms
(+ (* v v) (pow v 4))
1.0ms
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))

series100.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
49.0ms
(+ (* v v) (pow v 4))
47.0ms
(* (+ (* v v) (pow v 4)) 4)
4.0ms
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))

simplify933.0ms

Counts
14 → 41
Calls
14 calls:
Slowest
476.0ms
(* (- (* (* v v) (* v v)) (* (pow v 4) (pow v 4))) 4)
256.0ms
(* (+ (pow (* v v) 3) (pow (pow v 4) 3)) 4)
58.0ms
(acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1))
39.0ms
(acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1))
30.0ms
(acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1))

prune396.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.5b

localize7.0ms

Local error

Found 4 expressions with local error:

0.6b
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))
0.0b
(exp (log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))))
0.0b
(* (+ (* v v) (pow v 4)) 4)
0.0b
(log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4))))

rewrite9.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
log-prod
pow1
add-exp-log
add-log-exp
add-cbrt-cube
exp-prod
exp-sum
associate-*l*
log-pow
associate-*l/
rem-exp-log
flip-+
*-commutative
rem-log-exp
flip3-+
acos-asin
Counts
4 → 48
Calls
4 calls:
Slowest
5.0ms
(* (+ (* v v) (pow v 4)) 4)
2.0ms
(exp (log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))))
1.0ms
(log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4))))
1.0ms
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))

series197.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
129.0ms
(log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4))))
59.0ms
(* (+ (* v v) (pow v 4)) 4)
4.0ms
(acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))
4.0ms
(exp (log (acos (+ -1 (* (+ (* v v) (pow v 4)) 4)))))

simplify1.5s

Counts
28 → 60
Calls
28 calls:
Slowest
525.0ms
(* (- (* (* v v) (* v v)) (* (pow v 4) (pow v 4))) 4)
286.0ms
(* (+ (pow (* v v) 3) (pow (pow v 4) 3)) 4)
61.0ms
(acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1))
59.0ms
(acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1))
46.0ms
(log (acos (- (+ (* 4 (pow v 4)) (* 4 (pow v 2))) 1)))

prune609.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.5b

regimes145.0ms

Accuracy

0% (0.0b remaining)

Error of 0.5b against oracle of 0.5b and baseline of 0.5b

bsearch3.0ms

end0.0ms

sample8.1s

Algorithm
intervals