math.cos on complex, real part

Time bar (total: 4.2s)

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)

sample1.8s (42.6%)

Results
486.0ms1040×body1024valid
363.0ms2618×body256valid
347.0ms2547×body256infinite
323.0ms1024×body1024infinite
125.0ms506×body512valid
108.0ms518×body512infinite
5.0msbody2048valid
Bogosity

preprocess127.0ms (3.1%)

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)

simplify102.0ms (2.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
100.0%
Counts
4 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 26 to 20 computations (23.1% saved)

localize71.0ms (1.7%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(cos.f64 re)
Compiler

Compiled 36 to 14 computations (61.1% 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)

rewrite47.0ms (1.1%)

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)))

simplify60.0ms (1.4%)

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)

eval17.0ms (0.4%)

Compiler

Compiled 1042 to 455 computations (56.3% saved)

prune10.0ms (0.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New55358
Fresh000
Picked011
Done000
Total55459
Accurracy
100.0%
Counts
59 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.6%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 130 to 96 computations (26.2% saved)

localize181.0ms (4.4%)

Local Accuracy

Found 4 expressions with local accuracy:

NewAccuracyProgram
100.0%
(cos.f64 re)
99.9%
(sqrt.f64 (exp.f64 (cos.f64 re)))
99.8%
(exp.f64 (cos.f64 re))
99.1%
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
Compiler

Compiled 164 to 50 computations (69.5% saved)

series49.0ms (1.2%)

Counts
3 → 12
Calls

9 calls:

TimeVariablePointExpression
30.0ms
re
@inf
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
17.0ms
re
@-inf
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
1.0ms
re
@0
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
0.0ms
re
@0
(sqrt.f64 (exp.f64 (cos.f64 re)))
0.0ms
re
@0
(exp.f64 (cos.f64 re))

rewrite73.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1156×pow1
1056×add-exp-log
1056×log1p-expm1-u
1056×expm1-log1p-u
1026×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0739
113133
2148833
Stop Event
node limit
Counts
3 → 68
Calls
Call 1
Inputs
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
(exp.f64 (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
Outputs
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 (cos.f64 re) 1/2)
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1)
(*.f64 (exp.f64 (cos.f64 re)) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 1 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 (cos.f64 re)) 1)
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2)
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1) (cos.f64 re))
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2))
(log.f64 (exp.f64 (exp.f64 (cos.f64 re))))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re))))
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2))
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(exp.f64 (*.f64 (cos.f64 re) 1/2))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))

simplify73.0ms (1.7%)

Algorithm
egg-herbie
Rules
1690×fma-def
962×log-prod
592×*-commutative
562×exp-prod
514×distribute-lft-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01992242
14561874
216481286
361171286
Stop Event
node limit
Counts
80 → 113
Calls
Call 1
Inputs
(log.f64 (sqrt.f64 (exp.f64 1)))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/720 (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 360 (/.f64 (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)))) (exp.f64 1))) (*.f64 90 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1)))) 15/4))))))
(exp.f64 1)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (+.f64 (*.f64 -31/720 (*.f64 (pow.f64 re 6) (exp.f64 1))) (exp.f64 1))))
(sqrt.f64 (exp.f64 1))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (sqrt.f64 (exp.f64 1)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1)))))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))))) (sqrt.f64 (/.f64 1 (exp.f64 1))))) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1))))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 (cos.f64 re) 1/2)
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1)
(*.f64 (exp.f64 (cos.f64 re)) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 1 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 (cos.f64 re)) 1)
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2)
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1) (cos.f64 re))
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2))
(log.f64 (exp.f64 (exp.f64 (cos.f64 re))))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re))))
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2))
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(exp.f64 (*.f64 (cos.f64 re) 1/2))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
Outputs
(log.f64 (sqrt.f64 (exp.f64 1)))
(log.f64 (sqrt.f64 (E.f64)))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (*.f64 -1/4 (*.f64 re re)))
(fma.f64 -1/4 (*.f64 re re) (log.f64 (sqrt.f64 (E.f64))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re))))
(+.f64 (fma.f64 -1/4 (*.f64 re re) (log.f64 (sqrt.f64 (E.f64)))) (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (*.f64 (pow.f64 re 4) 1/24)))
(fma.f64 -1/4 (*.f64 re re) (fma.f64 (pow.f64 re 4) 1/48 (log.f64 (sqrt.f64 (E.f64)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 1))) (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 12 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1))) 3/4) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/720 (*.f64 (pow.f64 re 6) (-.f64 (+.f64 (*.f64 360 (/.f64 (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)))) (exp.f64 1))) (*.f64 90 (/.f64 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2)) (exp.f64 1)))) 15/4))))))
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 re re) (*.f64 1/720 (*.f64 (pow.f64 re 6) (+.f64 (fma.f64 360 (/.f64 (+.f64 (*.f64 (E.f64) -31/720) (*.f64 1/4 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)))) (E.f64)) (*.f64 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) 90)) -15/4))))))
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 1/24 (*.f64 (fma.f64 12 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) -3/4) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 re re) (*.f64 (pow.f64 re 6) (*.f64 (fma.f64 360 (/.f64 (fma.f64 (E.f64) -31/720 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) 1/4)) (E.f64)) (fma.f64 (/.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (E.f64)) 90 -15/4)) 1/720)))))
(+.f64 (log.f64 (sqrt.f64 (E.f64))) (fma.f64 -1/4 (*.f64 re re) (fma.f64 (pow.f64 re 4) 1/48 (*.f64 (pow.f64 re 6) -1/1440))))
(exp.f64 1)
(E.f64)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1))
(fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (E.f64))
(*.f64 (E.f64) (fma.f64 (*.f64 re re) -1/2 1))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (exp.f64 1)))
(fma.f64 1/6 (*.f64 (E.f64) (pow.f64 re 4)) (fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (E.f64)))
(+.f64 (E.f64) (*.f64 (E.f64) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 (*.f64 -1/2 re) re))))
(fma.f64 (E.f64) (fma.f64 1/6 (pow.f64 re 4) (*.f64 re (*.f64 re -1/2))) (E.f64))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 4) (exp.f64 1))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (exp.f64 1))) (+.f64 (*.f64 -31/720 (*.f64 (pow.f64 re 6) (exp.f64 1))) (exp.f64 1))))
(fma.f64 1/6 (*.f64 (E.f64) (pow.f64 re 4)) (fma.f64 -1/2 (*.f64 (E.f64) (*.f64 re re)) (fma.f64 -31/720 (*.f64 (E.f64) (pow.f64 re 6)) (E.f64))))
(+.f64 (fma.f64 -31/720 (*.f64 (E.f64) (pow.f64 re 6)) (E.f64)) (*.f64 (E.f64) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 (*.f64 -1/2 re) re))))
(fma.f64 (E.f64) (fma.f64 1/6 (pow.f64 re 4) (*.f64 re (*.f64 re -1/2))) (*.f64 (E.f64) (fma.f64 (pow.f64 re 6) -31/720 1)))
(sqrt.f64 (exp.f64 1))
(sqrt.f64 (E.f64))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (sqrt.f64 (exp.f64 1)))
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64)))
(*.f64 (+.f64 (*.f64 re (*.f64 re -1/4)) 1) (sqrt.f64 (E.f64)))
(*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1)))))))
(+.f64 (fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64))) (*.f64 1/2 (*.f64 (pow.f64 re 4) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (sqrt.f64 (exp.f64 -1))))))
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (fma.f64 1/2 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (*.f64 (pow.f64 re 4) (sqrt.f64 (exp.f64 -1)))) (sqrt.f64 (E.f64))))
(fma.f64 (pow.f64 re 4) (*.f64 1/2 (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) (sqrt.f64 (exp.f64 -1)))) (*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (sqrt.f64 (exp.f64 1)))) (+.f64 (sqrt.f64 (exp.f64 1)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -31/720 (exp.f64 1)) (*.f64 -1/4 (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))))) (sqrt.f64 (/.f64 1 (exp.f64 1))))) (*.f64 1/2 (*.f64 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 (exp.f64 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (exp.f64 1))) 2))) (sqrt.f64 (/.f64 1 (exp.f64 1))))))))
(+.f64 (fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (sqrt.f64 (E.f64))) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 re 6) (*.f64 (+.f64 (*.f64 (E.f64) -31/720) (*.f64 1/4 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)))) (sqrt.f64 (exp.f64 -1)))) (*.f64 (pow.f64 re 4) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (sqrt.f64 (exp.f64 -1)))))))
(fma.f64 -1/4 (*.f64 (sqrt.f64 (E.f64)) (*.f64 re re)) (fma.f64 1/2 (*.f64 (sqrt.f64 (exp.f64 -1)) (+.f64 (*.f64 (pow.f64 re 6) (fma.f64 (E.f64) -31/720 (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) 1/4))) (*.f64 (-.f64 (*.f64 (E.f64) 1/6) (pow.f64 (*.f64 (sqrt.f64 (E.f64)) -1/4) 2)) (pow.f64 re 4)))) (sqrt.f64 (E.f64))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (exp.f64 -1)) (fma.f64 (pow.f64 re 6) (fma.f64 (E.f64) -31/720 (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) 1/4)) (*.f64 (fma.f64 (E.f64) 1/6 (*.f64 (E.f64) -1/16)) (pow.f64 re 4)))) (*.f64 (sqrt.f64 (E.f64)) (fma.f64 -1/4 (*.f64 re re) 1)))
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 (cos.f64 re) 1/2)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 2))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 2 (*.f64 1/4 (log.f64 (exp.f64 (cos.f64 re)))))
(*.f64 1/2 (cos.f64 re))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(-.f64 (+.f64 1 (exp.f64 (cos.f64 re))) 1)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (exp.f64 (cos.f64 re)) 1)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (sqrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 1 (exp.f64 (cos.f64 re)))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) (cbrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(*.f64 (*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (exp.f64 (cos.f64 re)) 1)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 2)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 3)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2) 1/2)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3) 1/3)
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1) (cos.f64 re))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 2))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(log.f64 (exp.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(expm1.f64 (log1p.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(log1p.f64 (expm1.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (cos.f64 re)))
(exp.f64 (cos.f64 re))
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) 1/2))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2) 1/3)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(fabs.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) 3/2))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 (cos.f64 re) 1/2))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(+.f64 1 (expm1.f64 (*.f64 1/2 (cos.f64 re))))
(+.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 0)
(sqrt.f64 (exp.f64 (cos.f64 re)))

eval128.0ms (3.1%)

Compiler

Compiled 9824 to 4316 computations (56.1% saved)

prune120.0ms (2.9%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New3411342
Fresh000
Picked123
Done011
Total3424346
Accurracy
100.0%
Counts
346 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.7%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 132 to 104 computations (21.2% saved)

localize273.0ms (6.6%)

Local Accuracy

Found 4 expressions with local accuracy:

NewAccuracyProgram
99.9%
(sqrt.f64 (exp.f64 (cos.f64 re)))
99.8%
(exp.f64 (cos.f64 re))
99.1%
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))
99.1%
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))
Compiler

Compiled 95 to 41 computations (56.8% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
re
@0
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))
0.0ms
re
@inf
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))
0.0ms
re
@-inf
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))

rewrite74.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1348×pow1
1232×add-exp-log
1232×log1p-expm1-u
1232×expm1-log1p-u
1200×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0911
116211
2172611
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))
Outputs
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 (cos.f64 re) 1/2)
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))

simplify64.0ms (1.5%)

Algorithm
egg-herbie
Rules
2046×fma-neg
1100×log-prod
980×associate-*r*
862×associate-*l*
824×associate-+l+
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
078484
1171480
2516476
33553476
47492476
Stop Event
node limit
Counts
36 → 37
Calls
Call 1
Inputs
1/2
(+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 (cos.f64 re) 1/2)
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
Outputs
1/2
(+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))
(fma.f64 -1/4 (*.f64 re re) 1/2)
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 1/2 (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/4 (*.f64 re re))))
(+.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (*.f64 1/48 (pow.f64 re 4)))
(fma.f64 -1/4 (*.f64 re re) (fma.f64 1/48 (pow.f64 re 4) 1/2))
(+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 1/2 (fma.f64 1/48 (pow.f64 re 4) (fma.f64 -1/1440 (pow.f64 re 6) (*.f64 -1/4 (*.f64 re re)))))
(+.f64 (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6))) (fma.f64 -1/4 (*.f64 re re) 1/2))
(+.f64 1/2 (fma.f64 -1/4 (*.f64 re re) (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6)))))
(+.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6))))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(+.f64 0 (*.f64 (cos.f64 re) 1/2))
(*.f64 1/2 (cos.f64 re))
(+.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re))))))
(+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4)))
(*.f64 1/2 (cos.f64 re))
(-.f64 (+.f64 1 (*.f64 (cos.f64 re) 1/2)) 1)
(*.f64 1/2 (cos.f64 re))
(*.f64 (cos.f64 re) 1/2)
(*.f64 1/2 (cos.f64 re))
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1/2 (cos.f64 re))
(*.f64 1 (*.f64 (cos.f64 re) 1/2))
(*.f64 1/2 (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) 1/2))
(*.f64 1/2 (cos.f64 re))
(*.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2))
(*.f64 1/2 (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) 1/2))
(*.f64 1/2 (cos.f64 re))
(*.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))
(*.f64 1/2 (cos.f64 re))
(*.f64 (*.f64 1/2 (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(*.f64 1/2 (cos.f64 re))
(pow.f64 (*.f64 (cos.f64 re) 1/2) 1)
(*.f64 1/2 (cos.f64 re))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 3)
(*.f64 1/2 (cos.f64 re))
(pow.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3) 1/3)
(*.f64 1/2 (cos.f64 re))
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)
(*.f64 1/2 (cos.f64 re))
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4))
(*.f64 1/2 (cos.f64 re))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 1/2) 3))
(*.f64 1/2 (cos.f64 re))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(*.f64 1/2 (cos.f64 re))

eval76.0ms (1.8%)

Compiler

Compiled 4371 to 2376 computations (45.6% saved)

prune31.0ms (0.8%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1491150
Fresh000
Picked101
Done033
Total1504154
Accurracy
100.0%
Counts
154 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.6%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 134 to 106 computations (20.9% saved)

localize239.0ms (5.7%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
100.0%
(cos.f64 re)
99.9%
(exp.f64 (*.f64 (cos.f64 re) 1/2))
99.1%
(log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2)))
Compiler

Compiled 86 to 50 computations (41.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
re
@0
(exp.f64 (*.f64 (cos.f64 re) 1/2))
0.0ms
re
@inf
(exp.f64 (*.f64 (cos.f64 re) 1/2))
0.0ms
re
@-inf
(exp.f64 (*.f64 (cos.f64 re) 1/2))

rewrite52.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1346×pow1
1230×add-exp-log
1230×log1p-expm1-u
1230×expm1-log1p-u
1200×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0815
115513
2171913
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(exp.f64 (*.f64 (cos.f64 re) 1/2))
Outputs
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))

simplify58.0ms (1.4%)

Algorithm
egg-herbie
Rules
1284×fma-def
868×associate-*r*
786×unswap-sqr
760×associate-*l*
666×associate-+r+
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
071657
1162601
2501577
32976567
45217567
Stop Event
node limit
Counts
33 → 43
Calls
Call 1
Inputs
(exp.f64 1/2)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2))
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2)))
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (+.f64 (*.f64 -49/5760 (*.f64 (pow.f64 re 6) (exp.f64 1/2))) (exp.f64 1/2))))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3)
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
Outputs
(exp.f64 1/2)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2))
(fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (exp.f64 1/2))
(*.f64 (exp.f64 1/2) (fma.f64 (*.f64 -1/4 re) re 1))
(*.f64 (exp.f64 1/2) (fma.f64 re (*.f64 -1/4 re) 1))
(*.f64 (exp.f64 1/2) (fma.f64 -1/4 (*.f64 re re) 1))
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (exp.f64 1/2)))
(fma.f64 5/96 (*.f64 (exp.f64 1/2) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (exp.f64 1/2)))
(+.f64 (exp.f64 1/2) (*.f64 (exp.f64 1/2) (+.f64 (*.f64 5/96 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re)))))
(*.f64 (exp.f64 1/2) (+.f64 (fma.f64 (*.f64 -1/4 re) re 1) (*.f64 5/96 (pow.f64 re 4))))
(*.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 re (*.f64 -1/4 re) 1)))
(*.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 -1/4 (*.f64 re re) 1)))
(+.f64 (*.f64 5/96 (*.f64 (pow.f64 re 4) (exp.f64 1/2))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (exp.f64 1/2))) (+.f64 (*.f64 -49/5760 (*.f64 (pow.f64 re 6) (exp.f64 1/2))) (exp.f64 1/2))))
(fma.f64 5/96 (*.f64 (exp.f64 1/2) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (exp.f64 1/2) (*.f64 re re)) (fma.f64 -49/5760 (*.f64 (exp.f64 1/2) (pow.f64 re 6)) (exp.f64 1/2))))
(+.f64 (*.f64 (+.f64 (*.f64 -49/5760 (pow.f64 re 6)) 1) (exp.f64 1/2)) (*.f64 (exp.f64 1/2) (+.f64 (*.f64 5/96 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re)))))
(fma.f64 (exp.f64 1/2) (fma.f64 5/96 (pow.f64 re 4) (*.f64 -1/4 (*.f64 re re))) (*.f64 (exp.f64 1/2) (fma.f64 -49/5760 (pow.f64 re 6) 1)))
(*.f64 (exp.f64 1/2) (+.f64 (*.f64 -1/4 (*.f64 re re)) (fma.f64 5/96 (pow.f64 re 4) (fma.f64 -49/5760 (pow.f64 re 6) 1))))
(fma.f64 (exp.f64 1/2) (fma.f64 (*.f64 re re) (fma.f64 (*.f64 re re) 5/96 -1/4) (*.f64 -49/5760 (pow.f64 re 6))) (exp.f64 1/2))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(exp.f64 (*.f64 1/2 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(-.f64 (+.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re)))) 1)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 1 (sqrt.f64 (exp.f64 (cos.f64 re))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (cbrt.f64 (exp.f64 (cos.f64 re))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (cbrt.f64 (exp.f64 (cos.f64 re))) (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(*.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) (pow.f64 (exp.f64 (cos.f64 re)) 1/4))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 1)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (cos.f64 re)) 1/2)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) 3)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3) 1/3)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (pow.f64 (exp.f64 (cos.f64 re)) 1/4) 2)
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 1/2)) 2)) (cbrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (cos.f64 re))) 2)) (cbrt.f64 (*.f64 1/2 (cos.f64 re))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (cos.f64 re) 1/2))) (sqrt.f64 (*.f64 (cos.f64 re) 1/2)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) (sqrt.f64 (*.f64 1/2 (cos.f64 re))))
(pow.f64 (exp.f64 1) (*.f64 (cos.f64 re) 1/2))
(pow.f64 (E.f64) (*.f64 1/2 (cos.f64 re)))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(log.f64 (exp.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 re))) 3))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 1/2) (cos.f64 re))
(sqrt.f64 (exp.f64 (cos.f64 re)))

eval118.0ms (2.8%)

Compiler

Compiled 7678 to 4364 computations (43.2% saved)

prune51.0ms (1.2%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New2760276
Fresh000
Picked011
Done033
Total2764280
Accurracy
100.0%
Counts
280 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.1%
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
63.7%
(*.f64 (*.f64 1/2 1) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 169 to 102 computations (39.6% saved)

regimes27.0ms (0.6%)

Counts
6 → 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)))
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (exp.f64 (*.f64 (cos.f64 re) 1/2))))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 re)))) (log.f64 (sqrt.f64 (exp.f64 (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:

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

Compiled 139 to 77 computations (44.6% saved)

regimes58.0ms (1.4%)

Counts
2 → 3
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 (+.f64 1 (*.f64 -1/2 (*.f64 re 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 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

3 calls:

34.0ms
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
15.0ms
re
8.0ms
im
Results
AccuracySegmentsBranch
68.8%5re
69.6%3im
63.7%1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 42 to 28 computations (33.3% saved)

regimes11.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 1) (+.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

2 calls:

9.0ms
im
2.0ms
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
AccuracySegmentsBranch
63.7%1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
63.7%1im
Compiler

Compiled 23 to 18 computations (21.7% saved)

bsearch3.0ms (0.1%)

Algorithm
binary-search
Stop Event
narrow-enough
predicate-same
Steps
TimeLeftRight
0.0ms
2.5244536126589437e+255
2.6168568708851713e+255
3.0ms
-8.840080874128382e+89
-4.8624993450289854e+85
Results
2.0ms13×body256infinite
1.0msbody1024infinite
0.0msbody512infinite
Compiler

Compiled 50 to 40 computations (20% saved)

simplify7.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
031159
149159
251159
352159
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200) (*.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 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)))
(if (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200) (*.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)))))
(if (or (<=.f64 im -499999999999999983242056357731950024912593046310062751489837298654589877718689615343255552) (not (<=.f64 im 2600000000000000095001951822565046192714894480217351827825376553538283147772524734744985220843859164081014494023534962184038805238967682210912102840486899897340842916880570703305597183491233241815991856649607760177329291964458316132498517334377016537907200))) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (+.f64 1 (*.f64 -1/2 (*.f64 re re))))) (*.f64 1/2 (+.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 58 to 41 computations (29.3% saved)

soundness102.0ms (2.5%)

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
Compiler

Compiled 34 to 23 computations (32.4% saved)

end77.0ms (1.9%)

Compiler

Compiled 134 to 78 computations (41.8% saved)

Profiling

Loading profile data...