Average Error: 0.0 → 0.0
Time: 8.3s
Precision: 64
Internal Precision: 576
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\frac{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}\]

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.0

    \[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}}\]
  3. Final simplification0.0

    \[\leadsto \frac{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))

Details

Time bar (total: 7.6s)Debug log

sample143.0ms

Algorithm
halfpoints

simplify121.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
121.0ms
(re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y))))

prune16.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0b

localize29.0ms

Local error

Found 2 expressions with local error:

0.0b
(/ (cos y) (exp x))
0.0b
(fma (cos y) (exp x) (/ (cos y) (exp x)))

rewrite5.0ms

Algorithm
rewrite-expression-head
Rules
10×add-cube-cbrt
10×*-un-lft-identity
10×add-sqr-sqrt
times-frac
add-cbrt-cube
associate-/l*
add-exp-log
associate-/r*
add-log-exp
log1p-expm1-u
pow1
expm1-log1p-u
div-inv
fma-udef
div-exp
frac-2neg
clear-num
cbrt-undiv
Counts
2 → 39
Calls
2 calls:
Slowest
3.0ms
(/ (cos y) (exp x))
0.0ms
(fma (cos y) (exp x) (/ (cos y) (exp x)))

series123.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
84.0ms
(fma (cos y) (exp x) (/ (cos y) (exp x)))
39.0ms
(/ (cos y) (exp x))

simplify317.0ms

Counts
31 → 45
Calls
31 calls:
Slowest
120.0ms
(/ (* (* (cos y) (cos y)) (cos y)) (* (* (exp x) (exp x)) (exp x)))
76.0ms
(- 1 (+ (* 1/2 (pow y 2)) x))
23.0ms
(- (+ (pow x 2) 2) (pow y 2))
18.0ms
(/ (* (cbrt (cos y)) (cbrt (cos y))) (* (cbrt (exp x)) (cbrt (exp x))))
10.0ms
(+ (/ (cos y) (exp x)) (* (exp x) (cos y)))

prune429.0ms

Pruning

1 alts after pruning (0 fresh and 1 done)

Merged error: 0b

end0.0ms

sample6.4s

Algorithm
halfpoints