Average Error: 0.0 → 0.0
Time: 31.3s
Precision: 64
Internal Precision: 128
\[\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\]
\[(e^{\log_* (1 + \left(\sqrt{1 - \left(v \cdot v\right) \cdot 3} \cdot \frac{\sqrt{2}}{4}\right) \cdot \left(1 - v \cdot v\right))} - 1)^*\]

Error

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\frac{\sqrt{2}}{4} \cdot \sqrt{1 - 3 \cdot \left(v \cdot v\right)}\right) \cdot \left(1 - v \cdot v\right)\]
  2. Using strategy rm
  3. Applied expm1-log1p-u0.0

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

    \[\leadsto (e^{\log_* (1 + \left(\sqrt{1 - \left(v \cdot v\right) \cdot 3} \cdot \frac{\sqrt{2}}{4}\right) \cdot \left(1 - v \cdot v\right))} - 1)^*\]

Reproduce

herbie shell --seed 2019022 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Appendix B, 2"
  (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))))

Details

Time bar (total: 31.0s)Debug log

sample92.0ms

Algorithm
intervals
Results
30.0ms246×body80nan
29.0ms256×body80valid

simplify182.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
182.0ms
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))

prune18.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize45.0ms

Local error

Found 3 expressions with local error:

0.2b
(* 3 (* v v))
0.0b
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
0.0b
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))

rewrite24.0ms

Algorithm
rewrite-expression-head
Rules
18×frac-times
16×sqrt-div
14×flip--
14×flip3--
10×add-exp-log
10×associate-*r/
10×associate-*r*
10×add-cbrt-cube
10×pow1
associate-*l/
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
associate-*l*
cbrt-unprod
prod-exp
pow-prod-down
add-log-exp
log1p-expm1-u
sqrt-prod
*-commutative
expm1-log1p-u
distribute-lft-in
sub-neg
distribute-rgt-in
div-inv
Counts
3 → 80
Calls
3 calls:
Slowest
15.0ms
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
6.0ms
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))
2.0ms
(* 3 (* v v))

series203.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
107.0ms
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
85.0ms
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))
11.0ms
(* 3 (* v v))

simplify12.8s

Counts
69 → 89
Calls
69 calls:
Slowest
952.0ms
(* (* (* (/ (sqrt 2) 4) (/ (sqrt 2) 4)) (/ (sqrt 2) 4)) (* (* (sqrt (- 1 (* 3 (* v v)))) (sqrt (- 1 (* 3 (* v v))))) (sqrt (- 1 (* 3 (* v v))))))
734.0ms
(* 4 (sqrt (+ (* 1 1) (+ (* (* 3 (* v v)) (* 3 (* v v))) (* 1 (* 3 (* v v)))))))
586.0ms
(* (* 4 (sqrt (+ 1 (* 3 (* v v))))) (+ (* 1 1) (+ (* (* v v) (* v v)) (* 1 (* v v)))))
496.0ms
(* (sqrt (+ (* 1 1) (+ (* (* 3 (* v v)) (* 3 (* v v))) (* 1 (* 3 (* v v)))))) (+ (* 1 1) (+ (* (* v v) (* v v)) (* 1 (* v v)))))
469.0ms
(* (* 4 (sqrt (+ 1 (* 3 (* v v))))) (+ 1 (* v v)))

prune1.0s

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0b

localize14.0ms

Local error

Found 3 expressions with local error:

0.2b
(* 3 (* v v))
0.0b
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
0.0b
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))

rewrite43.0ms

Algorithm
rewrite-expression-head
Rules
18×frac-times
16×sqrt-div
14×flip--
14×flip3--
10×add-exp-log
10×associate-*r/
10×associate-*r*
10×add-cbrt-cube
10×pow1
associate-*l/
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
associate-*l*
cbrt-unprod
prod-exp
pow-prod-down
add-log-exp
log1p-expm1-u
sqrt-prod
*-commutative
expm1-log1p-u
distribute-lft-in
sub-neg
distribute-rgt-in
div-inv
Counts
3 → 80
Calls
3 calls:
Slowest
27.0ms
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
11.0ms
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))
2.0ms
(* 3 (* v v))

series193.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
94.0ms
(* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v)))
80.0ms
(* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v)))))
19.0ms
(* 3 (* v v))

simplify12.5s

Counts
69 → 89
Calls
69 calls:
Slowest
1.1s
(* (* (* (/ (sqrt 2) 4) (/ (sqrt 2) 4)) (/ (sqrt 2) 4)) (* (* (sqrt (- 1 (* 3 (* v v)))) (sqrt (- 1 (* 3 (* v v))))) (sqrt (- 1 (* 3 (* v v))))))
580.0ms
(* (* 4 (sqrt (+ 1 (* 3 (* v v))))) (+ (* 1 1) (+ (* (* v v) (* v v)) (* 1 (* v v)))))
453.0ms
(* (sqrt (+ (* 1 1) (+ (* (* 3 (* v v)) (* 3 (* v v))) (* 1 (* 3 (* v v)))))) (+ (* 1 1) (+ (* (* v v) (* v v)) (* 1 (* v v)))))
410.0ms
(sqrt (+ (* 1 1) (+ (* (* 3 (* v v)) (* 3 (* v v))) (* 1 (* 3 (* v v))))))
397.0ms
(* (* (sqrt 2) (sqrt (- (pow 1 3) (pow (* 3 (* v v)) 3)))) (- (pow 1 3) (pow (* v v) 3)))

prune1.1s

Pruning

1 alts after pruning (0 fresh and 1 done)

Merged error: 0b

end0.0ms

sample2.8s

Algorithm
intervals
Results
1.5s7999×body80nan
1.1s8000×body80valid