Average Error: 0.0 → 0.0
Time: 25.6s
Precision: 64
Internal Precision: 128
\[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\]
\[\left(0.5 \cdot \sin re\right) \cdot e^{im} + \left(0.5 \cdot \sin 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 \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\]
  2. Using strategy rm
  3. Applied distribute-lft-in0.0

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

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

Reproduce

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

Details

Time bar (total: 25.1s)Debug log

sample298.0ms

Algorithm
intervals

simplify534.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
534.0ms
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im)))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize20.0ms

Local error

Found 2 expressions with local error:

0.0b
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im)))
0.0b
(+ (exp (- 0 im)) (exp im))

rewrite21.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
fma-def
add-log-exp
add-cube-cbrt
add-exp-log
associate-*r*
add-cbrt-cube
pow1
add-sqr-sqrt
distribute-lft-out
log1p-expm1-u
flip-+
associate-*r/
exp-sum
flip3-+
expm1-log1p-u
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
associate-*l*
distribute-lft-in
sub-neg
sum-log
+-commutative
distribute-rgt-in
Counts
2 → 41
Calls
2 calls:
Slowest
14.0ms
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im)))
6.0ms
(+ (exp (- 0 im)) (exp im))

series137.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
95.0ms
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im)))
42.0ms
(+ (exp (- 0 im)) (exp im))

simplify2.6s

Counts
23 → 47
Calls
23 calls:
Slowest
508.0ms
(* 0.5 (* (sin re) (+ (exp (- im)) (exp im))))
482.0ms
(* 0.5 (* (sin re) (+ (exp im) (exp (* -1 im)))))
453.0ms
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im)))
366.0ms
(- (+ (* 1.0 re) (* 0.5 (* re (pow im 2)))) (* 0.16666666666666666 (pow re 3)))
298.0ms
(+ (* (exp (- 0 im)) (exp (- 0 im))) (- (* (exp im) (exp im)) (* (exp (- 0 im)) (exp im))))

prune591.0ms

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0b

localize17.0ms

Local error

Found 3 expressions with local error:

0.0b
(* (* 0.5 (sin re)) (exp (- 0 im)))
0.0b
(* (* 0.5 (sin re)) (exp im))
0.0b
(+ (* (* 0.5 (sin re)) (exp (- 0 im))) (* (* 0.5 (sin re)) (exp im)))

rewrite43.0ms

Algorithm
rewrite-expression-head
Rules
associate-*r*
add-cbrt-cube
pow1
add-log-exp
add-cube-cbrt
add-exp-log
*-un-lft-identity
add-sqr-sqrt
log1p-expm1-u
expm1-log1p-u
sub0-neg
cbrt-unprod
*-commutative
associate-*r/
prod-exp
pow-prod-down
exp-sum
associate-*l*
exp-neg
distribute-lft-out
flip-+
un-div-inv
exp-diff
flip3-+
fma-def
sub-neg
sum-log
+-commutative
Counts
3 → 54
Calls
3 calls:
Slowest
19.0ms
(+ (* (* 0.5 (sin re)) (exp (- 0 im))) (* (* 0.5 (sin re)) (exp im)))
13.0ms
(* (* 0.5 (sin re)) (exp (- 0 im)))
9.0ms
(* (* 0.5 (sin re)) (exp im))

series233.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
127.0ms
(+ (* (* 0.5 (sin re)) (exp (- 0 im))) (* (* 0.5 (sin re)) (exp im)))
66.0ms
(* (* 0.5 (sin re)) (exp (- 0 im)))
39.0ms
(* (* 0.5 (sin re)) (exp im))

simplify4.4s

Counts
30 → 63
Calls
30 calls:
Slowest
840.0ms
(+ (* 0.5 (* (sin re) (exp (* -1 im)))) (* 0.5 (* (sin re) (exp im))))
660.0ms
(- (+ (* 0.5 re) (* 0.5 (* re im))) (* 0.08333333333333333 (pow re 3)))
620.0ms
(* (exp (* (* 0.5 (sin re)) (exp (- 0 im)))) (exp (* (* 0.5 (sin re)) (exp im))))
510.0ms
(+ (* 0.5 (* (exp (- im)) (sin re))) (* 0.5 (* (sin re) (exp im))))
349.0ms
(- (+ (* 1.0 re) (* 0.5 (* re (pow im 2)))) (* 0.16666666666666666 (pow re 3)))

prune695.0ms

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0b

localize60.0ms

Local error

Found 4 expressions with local error:

0.0b
(pow (exp (- 0 im)) 3)
0.0b
(pow (exp im) 3)
0.0b
(/ (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im))))
0.0b
(fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))

rewrite24.0ms

Algorithm
rewrite-expression-head
Rules
11×add-cube-cbrt
11×add-cbrt-cube
11×*-un-lft-identity
11×add-sqr-sqrt
add-exp-log
cube-prod
unpow-prod-down
pow1
pow-pow
add-log-exp
log1p-expm1-u
exp-sum
expm1-log1p-u
times-frac
associate-/r*
exp-prod
associate-/l/
rem-cube-cbrt
associate-*r/
pow-exp
div-exp
unpow3
sub-neg
cbrt-undiv
pow-to-exp
cube-mult
cube-div
sub0-neg
associate-/l*
div-inv
fma-udef
flip-+
cbrt-unprod
prod-exp
exp-diff
flip3-+
frac-2neg
clear-num
exp-neg
Counts
4 → 86
Calls
4 calls:
Slowest
18.0ms
(/ (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im))))
4.0ms
(pow (exp (- 0 im)) 3)
1.0ms
(pow (exp im) 3)
0.0ms
(fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))

series341.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
231.0ms
(/ (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im))))
55.0ms
(fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))
29.0ms
(pow (exp im) 3)
25.0ms
(pow (exp (- 0 im)) 3)

simplify3.8s

Counts
55 → 98
Calls
55 calls:
Slowest
377.0ms
(* (* 0.5 (sin re)) (+ (pow (pow (exp (- 0 im)) 3) 3) (pow (pow (exp im) 3) 3)))
333.0ms
(* (* 0.5 (sin re)) (- (* (pow (exp (- 0 im)) 3) (pow (exp (- 0 im)) 3)) (* (pow (exp im) 3) (pow (exp im) 3))))
324.0ms
(- (log (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3)))) (log (fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))))
297.0ms
(/ (* (* (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3))) (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3)))) (* (* 0.5 (sin re)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3)))) (* (* (fma (exp (- im)) (exp (- im)) (expm1 (+ im im))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))))
273.0ms
(/ (* (* (* (* 0.5 (sin re)) (* 0.5 (sin re))) (* 0.5 (sin re))) (* (* (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3)) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3))) (+ (pow (exp (- 0 im)) 3) (pow (exp im) 3)))) (* (* (fma (exp (- im)) (exp (- im)) (expm1 (+ im im))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))) (fma (exp (- im)) (exp (- im)) (expm1 (+ im im)))))

prune1.9s

Pruning

3 alts after pruning (0 fresh and 3 done)

Merged error: 0b

regimes273.0ms

Accuracy

0% (0.0b remaining)

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

bsearch3.0ms

end0.0ms

sample9.3s

Algorithm
intervals