Average Error: 0.0 → 0.0
Time: 18.1s
Precision: 64
Internal Precision: 128
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[\left(0.5 \cdot \cos re\right) \cdot (\left(\sqrt{e^{-im}}\right) \cdot \left(\sqrt{e^{-im}}\right) + \left(e^{im}\right))_*\]

Error

Bits error versus re

Bits error versus im

Derivation

  1. Initial program 0.0

    \[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.0

    \[\leadsto \left(0.5 \cdot \cos re\right) \cdot \left(\color{blue}{\sqrt{e^{-im}} \cdot \sqrt{e^{-im}}} + e^{im}\right)\]
  4. Applied fma-def0.0

    \[\leadsto \left(0.5 \cdot \cos re\right) \cdot \color{blue}{(\left(\sqrt{e^{-im}}\right) \cdot \left(\sqrt{e^{-im}}\right) + \left(e^{im}\right))_*}\]
  5. Final simplification0.0

    \[\leadsto \left(0.5 \cdot \cos re\right) \cdot (\left(\sqrt{e^{-im}}\right) \cdot \left(\sqrt{e^{-im}}\right) + \left(e^{im}\right))_*\]

Reproduce

herbie shell --seed 2019005 +o rules:numerics
(FPCore (re im)
  :name "math.cos on complex, real part"
  (* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))

Details

Time bar (total: 17.6s)Debug log

sample279.0ms

Algorithm
intervals

simplify205.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

205.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))

prune9.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize30.0ms

Local error

Found 2 expressions with local error:

0.0b
(+ (exp (- im)) (exp im))
0.0b
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))

rewrite38.0ms

Algorithm
rewrite-expression-head
Counts
2 → 39
Calls

2 calls. Slowest were:

24.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
13.0ms
(+ (exp (- im)) (exp im))

series126.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

97.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
29.0ms
(+ (exp (- im)) (exp im))

simplify1.6s

Counts
21 → 45
Calls

21 calls. Slowest were:

399.0ms
(* 0.5 (* (cos re) (+ (exp (- im)) (exp im))))
276.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
269.0ms
(* 0.5 (* (+ (exp im) (exp (* -1 im))) (cos re)))

prune485.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0b

localize8.0ms

Local error

Found 1 expressions with local error:

0.0b
(* (* 0.5 (cos re)) (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
1 → 19
Calls

1 calls. Slowest were:

5.0ms
(* (* 0.5 (cos re)) (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))

series127.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

127.0ms
(* (* 0.5 (cos re)) (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))

simplify1.5s

Counts
11 → 22
Calls

11 calls. Slowest were:

583.0ms
(* (* 0.5 (cos re)) (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))
446.0ms
(* 0.5 (* (cos re) (+ (exp (- im)) (exp im))))
225.0ms
(* 0.5 (* (+ (exp im) (exp (* -1 im))) (cos re)))

prune233.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0b

localize20.0ms

Local error

Found 3 expressions with local error:

0.7b
(* (* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))) (sqrt (+ (exp (- im)) (exp im))))
0.2b
(* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im))))
0.0b
(+ (exp (- im)) (exp im))

rewrite41.0ms

Algorithm
rewrite-expression-head
Counts
3 → 63
Calls

3 calls. Slowest were:

28.0ms
(* (* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))) (sqrt (+ (exp (- im)) (exp im))))
6.0ms
(+ (exp (- im)) (exp im))
6.0ms
(* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im))))

series424.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

242.0ms
(* (* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))) (sqrt (+ (exp (- im)) (exp im))))
152.0ms
(* (* 0.5 (cos re)) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im))))
30.0ms
(+ (exp (- im)) (exp im))

simplify2.6s

Counts
38 → 72
Calls

38 calls. Slowest were:

433.0ms
(* (* (* (* 0.5 (cos re)) (* 0.5 (cos re))) (* 0.5 (cos re))) (* (* (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im))) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))) (sqrt (fma (sqrt (exp (- im))) (sqrt (exp (- im))) (exp im)))))
422.0ms
(* 0.5 (* (cos re) (+ (exp (- im)) (exp im))))
272.0ms
(sqrt (+ (* (exp (- im)) (exp (- im))) (- (* (exp im) (exp im)) (* (exp (- im)) (exp im)))))

prune1.0s

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0b

regimes114.0ms

Accuracy

0% (0.0b remaining)

Error of 0.0b against oracle of 0.0b and baseline of 0.0b

bsearch1.0ms

end0.0ms

sample8.8s

Algorithm
intervals