Details

Time bar (total: 2.8s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample2.3s (80.6%)

Results
671.0ms1006×body1024valid
501.0ms1038×body1024infinite
347.0ms2681×body256valid
346.0ms2533×body256infinite
237.0ms523×body512valid
144.0ms474×body512infinite
1.0msbody2048valid
Bogosity

preprocess132.0ms (4.7%)

Algorithm
egg-herbie
Rules
1744×fma-def
1496×times-frac
770×sqr-pow
640×unswap-sqr
620×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02070
15170
213870
326366
438066
568366
6155466
7263766
8378966
9453366
10512166
11601566
12750766
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (cos.f64 im) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re))))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify114.0ms (4%)

Algorithm
egg-herbie
Rules
1464×fma-def
1028×associate-/l*
860×unswap-sqr
748×times-frac
636×associate-/r/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01335
13035
27335
313233
419433
534833
679033
7133733
8387933
9440133
10536833
11595233
12698433
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 35 to 18 computations (48.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New213
Fresh011
Picked000
Done000
Total224
Accurracy
51.6%
Counts
4 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.6%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize13.0ms (0.5%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(cos.f64 re)
Compiler

Compiled 35 to 13 computations (62.9% saved)

series0.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
re
@0
(cos.f64 re)
0.0ms
re
@inf
(cos.f64 re)
0.0ms
re
@-inf
(cos.f64 re)

rewrite104.0ms (3.6%)

Algorithm
batch-egg-rewrite
Rules
738×pow1
708×add-sqr-sqrt
698×*-un-lft-identity
674×add-exp-log
674×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1785
29105
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(cos.f64 re)
Outputs
(+.f64 0 (cos.f64 re))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 re)) 1)
(*.f64 (cos.f64 re) 1)
(*.f64 1 (cos.f64 re))
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2))
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re)))
(*.f64 (pow.f64 1 1/3) (cos.f64 re))
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(pow.f64 (cos.f64 re) 1)
(pow.f64 (cbrt.f64 (cos.f64 re)) 3)
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2)
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3)
(pow.f64 (sqrt.f64 (cos.f64 re)) 2)
(pow.f64 (E.f64) (log.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re))))
(sqrt.f64 (pow.f64 (cos.f64 re) 2))
(log.f64 (exp.f64 (cos.f64 re)))
(cbrt.f64 (pow.f64 (cos.f64 re) 3))
(expm1.f64 (log1p.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2))
(log1p.f64 (expm1.f64 (cos.f64 re)))

simplify66.0ms (2.3%)

Algorithm
egg-herbie
Rules
966×log-prod
646×associate-*r*
622×associate-+l+
618×associate-+r+
586×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0120569
1240531
2644515
33330515
46970515
Stop Event
node limit
Counts
41 → 58
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 0 (cos.f64 re))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 re)) 1)
(*.f64 (cos.f64 re) 1)
(*.f64 1 (cos.f64 re))
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2))
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re)))
(*.f64 (pow.f64 1 1/3) (cos.f64 re))
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(pow.f64 (cos.f64 re) 1)
(pow.f64 (cbrt.f64 (cos.f64 re)) 3)
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2)
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3)
(pow.f64 (sqrt.f64 (cos.f64 re)) 2)
(pow.f64 (E.f64) (log.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re))))
(sqrt.f64 (pow.f64 (cos.f64 re) 2))
(log.f64 (exp.f64 (cos.f64 re)))
(cbrt.f64 (pow.f64 (cos.f64 re) 3))
(expm1.f64 (log1p.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2))
(log1p.f64 (expm1.f64 (cos.f64 re)))
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 re re)))
(fma.f64 -1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (*.f64 -1/2 (*.f64 re re))))
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) 1))
(fma.f64 -1/2 (*.f64 re re) (fma.f64 1/24 (pow.f64 re 4) 1))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))))
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) 1)) (*.f64 -1/720 (pow.f64 re 6)))
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/2 (*.f64 re re) (fma.f64 -1/720 (pow.f64 re 6) 1)))
(+.f64 0 (cos.f64 re))
(cos.f64 re)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(cos.f64 re)
(+.f64 (*.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1)))
(fma.f64 (cos.f64 (+.f64 1 re)) (cos.f64 1) (*.f64 (sin.f64 (+.f64 1 re)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 re)) 1)
(cos.f64 re)
(*.f64 (cos.f64 re) 1)
(cos.f64 re)
(*.f64 1 (cos.f64 re))
(cos.f64 re)
(*.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2))
(cos.f64 re)
(*.f64 (cbrt.f64 (cos.f64 re)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)))
(cos.f64 re)
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)))
(cos.f64 re)
(*.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)))
(cos.f64 re)
(*.f64 (sqrt.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)))
(cos.f64 re)
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 8)))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 re) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 re))))
(cos.f64 re)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(cos.f64 re)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4)) (cbrt.f64 (cos.f64 re)))
(cos.f64 re)
(*.f64 (pow.f64 1 1/3) (cos.f64 re))
(cos.f64 re)
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (cbrt.f64 (cos.f64 re))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 8)))
(*.f64 (pow.f64 (pow.f64 (cos.f64 re) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 re))) (cbrt.f64 (pow.f64 (cos.f64 re) 5/2)))
(pow.f64 (cos.f64 re) 1)
(cos.f64 re)
(pow.f64 (cbrt.f64 (cos.f64 re)) 3)
(cos.f64 re)
(pow.f64 (pow.f64 (cos.f64 re) 2) 1/2)
(cos.f64 re)
(pow.f64 (pow.f64 (cos.f64 re) 3) 1/3)
(cos.f64 re)
(pow.f64 (sqrt.f64 (cos.f64 re)) 2)
(cos.f64 re)
(pow.f64 (E.f64) (log.f64 (cos.f64 re)))
(cos.f64 re)
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 re)))) (sqrt.f64 (log.f64 (cos.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 re))) 2)) (cbrt.f64 (log.f64 (cos.f64 re))))
(sqrt.f64 (pow.f64 (cos.f64 re) 2))
(cos.f64 re)
(log.f64 (exp.f64 (cos.f64 re)))
(cos.f64 re)
(cbrt.f64 (pow.f64 (cos.f64 re) 3))
(cos.f64 re)
(expm1.f64 (log1p.f64 (cos.f64 re)))
(cos.f64 re)
(exp.f64 (log.f64 (cos.f64 re)))
(cos.f64 re)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 re))) 3))
(cos.f64 re)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (cos.f64 re))) 1/3))
(cos.f64 re)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 re))) 2))
(cos.f64 re)
(log1p.f64 (expm1.f64 (cos.f64 re)))
(cos.f64 re)

eval22.0ms (0.8%)

Compiler

Compiled 1042 to 455 computations (56.3% saved)

prune10.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New56258
Fresh000
Picked011
Done000
Total56359
Accurracy
51.6%
Counts
59 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
27.4%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
51.6%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
30.0%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 43 to 34 computations (20.9% saved)

localize12.0ms (0.4%)

Compiler

Compiled 31 to 15 computations (51.6% saved)

localize19.0ms (0.7%)

Compiler

Compiled 60 to 29 computations (51.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Accurracy
51.6%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
27.4%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
51.6%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
30.0%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 43 to 34 computations (20.9% saved)

regimes22.0ms (0.8%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

6 calls:

5.0ms
(cos.f64 re)
4.0ms
im
3.0ms
re
3.0ms
(*.f64 1/2 (cos.f64 re))
3.0ms
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
51.6%1re
51.6%1im
51.6%1(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
51.6%1(*.f64 1/2 (cos.f64 re))
51.6%1(cos.f64 re)
51.6%1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 76 to 50 computations (34.2% saved)

regimes10.0ms (0.3%)

Accuracy

Total -1.9b remaining (-4.2%)

Threshold costs -1.9b (-4.2%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

3 calls:

4.0ms
re
3.0ms
im
2.0ms
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
AccuracySegmentsBranch
30.0%1re
30.0%1im
30.0%1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 42 to 28 computations (33.3% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
sub-neg
1-exp
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01660
12560
22760
32860
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 23 to 18 computations (21.7% saved)

soundness0.0ms (0%)

end17.0ms (0.6%)

Compiler

Compiled 21 to 12 computations (42.9% saved)

Profiling

Loading profile data...