Average Error: 0.0 → 0.0
Time: 16.2s
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 e^{im} + \left(0.5 \cdot \cos re\right) \cdot e^{-im}\]

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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 distribute-rgt-in0.0

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

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

Reproduce

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

Details

Time bar (total: 15.7s)Debug log

sample221.0ms

Algorithm
intervals
Results
110.0ms77×body1280valid
34.0ms60×body640valid
32.0ms273×body80valid
16.0ms43×body320valid
5.0ms22×body160valid

simplify349.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
348.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize37.0ms

Local error

Found 2 expressions with local error:

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

rewrite36.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
add-log-exp
add-exp-log
associate-*r*
add-cbrt-cube
pow1
add-cube-cbrt
add-sqr-sqrt
distribute-lft-out
flip-+
associate-*r/
flip3-+
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
associate-*l*
distribute-lft-in
sum-log
+-commutative
distribute-rgt-in
Counts
2 → 32
Calls
2 calls:
Slowest
24.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
11.0ms
(+ (exp (- im)) (exp im))

series117.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
91.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
27.0ms
(+ (exp (- im)) (exp im))

simplify1.2s

Counts
19 → 38
Calls
19 calls:
Slowest
289.0ms
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im)))
221.0ms
(* 0.5 (* (cos re) (+ (exp (- im)) (exp im))))
177.0ms
(* (* (* (* 0.5 (cos re)) (* 0.5 (cos re))) (* 0.5 (cos re))) (* (* (+ (exp (- im)) (exp im)) (+ (exp (- im)) (exp im))) (+ (exp (- im)) (exp im))))
160.0ms
(+ (* (exp (- im)) (exp (- im))) (- (* (exp im) (exp im)) (* (exp (- im)) (exp im))))
116.0ms
(* 0.5 (* (+ (exp im) (exp (* -1 im))) (cos re)))

prune401.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0b

localize18.0ms

Local error

Found 3 expressions with local error:

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

rewrite26.0ms

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube
pow1
associate-*l*
add-log-exp
add-cube-cbrt
add-exp-log
*-un-lft-identity
add-sqr-sqrt
cbrt-unprod
*-commutative
prod-exp
associate-*l/
pow-prod-down
associate-*r*
flip-+
exp-diff
distribute-rgt-out
flip3-+
sum-log
+-commutative
exp-neg
neg-sub0
Counts
3 → 44
Calls
3 calls:
Slowest
13.0ms
(+ (* (exp (- im)) (* 0.5 (cos re))) (* (exp im) (* 0.5 (cos re))))
7.0ms
(* (exp (- im)) (* 0.5 (cos re)))
5.0ms
(* (exp im) (* 0.5 (cos re)))

series198.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
107.0ms
(+ (* (exp (- im)) (* 0.5 (cos re))) (* (exp im) (* 0.5 (cos re))))
46.0ms
(* (exp (- im)) (* 0.5 (cos re)))
45.0ms
(* (exp im) (* 0.5 (cos re)))

simplify2.2s

Counts
26 → 53
Calls
26 calls:
Slowest
638.0ms
(* (* (* (exp im) (exp im)) (exp im)) (* (* (* 0.5 (cos re)) (* 0.5 (cos re))) (* 0.5 (cos re))))
348.0ms
(* (* (* (exp (- im)) (exp (- im))) (exp (- im))) (* (* (* 0.5 (cos re)) (* 0.5 (cos re))) (* 0.5 (cos re))))
346.0ms
(+ (* 0.5 (* (exp im) (cos re))) (* 0.5 (* (exp (* -1 im)) (cos re))))
241.0ms
(+ (* 0.5 (* (exp (- im)) (cos re))) (* 0.5 (* (exp im) (cos re))))
202.0ms
(* (exp (* (exp (- im)) (* 0.5 (cos re)))) (exp (* (exp im) (* 0.5 (cos re)))))

prune557.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0b

localize55.0ms

Local error

Found 4 expressions with local error:

7.4b
(- (* (exp im) (exp im)) (* (exp (- im)) (exp im)))
0.1b
(pow (exp im) 3)
0.0b
(pow (exp (- im)) 3)
0.0b
(* (exp im) (exp im))

rewrite19.0ms

Algorithm
rewrite-expression-head
Rules
11×add-cube-cbrt
11×*-un-lft-identity
11×pow1
11×add-sqr-sqrt
add-cbrt-cube
add-log-exp
cube-prod
pow-pow
unpow-prod-down
add-exp-log
exp-prod
associate-*l*
associate-*r*
rem-cube-cbrt
pow-exp
unpow3
pow-to-exp
cube-mult
cube-div
flip--
cbrt-unprod
pow-prod-up
*-commutative
prod-exp
pow-prod-down
diff-log
exp-diff
distribute-rgt-out--
flip3--
pow-plus
sub-neg
neg-mul-1
exp-neg
neg-sub0
pow2
Counts
4 → 77
Calls
4 calls:
Slowest
11.0ms
(- (* (exp im) (exp im)) (* (exp (- im)) (exp im)))
3.0ms
(* (exp im) (exp im))
2.0ms
(pow (exp (- im)) 3)
2.0ms
(pow (exp im) 3)

series80.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
39.0ms
(- (* (exp im) (exp im)) (* (exp (- im)) (exp im)))
18.0ms
(pow (exp (- im)) 3)
14.0ms
(pow (exp im) 3)
9.0ms
(* (exp im) (exp im))

simplify946.0ms

Counts
50 → 89
Calls
50 calls:
Slowest
255.0ms
(+ (* 4/3 (pow im 3)) (+ (* 2 (pow im 2)) (* 2 im)))
118.0ms
(pow (* (cbrt (exp (- im))) (cbrt (exp (- im)))) 3)
102.0ms
(pow (* (cbrt (exp (- im))) (cbrt (exp (- im)))) 3)
63.0ms
(* (* (* (exp im) (exp im)) (exp im)) (* (* (exp im) (exp im)) (exp im)))
36.0ms
(- (+ (* 9/2 (pow im 2)) 1) (* 3 im))

prune1.3s

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0b

regimes122.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms

end0.0ms

sample7.9s

Algorithm
intervals
Results
3.3s2906×body1280valid
1.9s2423×body640valid
1.7s8533×body80valid
662.0ms1247×body320valid
212.0ms670×body160valid