math.exp on complex, real part

Time bar (total: 1.6s)

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 8 to 6 computations (25% saved)

sample1.1s (71.1%)

Results
855.0ms6178×body256valid
234.0ms2076×body256infinite
1.0msbody1024valid
Bogosity

preprocess95.0ms (6%)

Algorithm
egg-herbie
Rules
3324×fma-def
1150×associate-/l*
1068×times-frac
978×div-sub
712×associate-/r/
Problems
256×No Errors
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
022163
145161
277155
3118155
4221155
5441155
61028155
72010155
86392155
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 (neg.f64 re)) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 (neg.f64 im)))
(neg.f64 (*.f64 (exp.f64 (neg.f64 re)) (cos.f64 im)))
(neg.f64 (*.f64 (exp.f64 re) (cos.f64 (neg.f64 im))))
(*.f64 (exp.f64 im) (cos.f64 re))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 (neg.f64 re)) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 (neg.f64 re)))
(/.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 (neg.f64 im)))
(*.f64 (exp.f64 re) (cos.f64 im))
(neg.f64 (*.f64 (exp.f64 (neg.f64 re)) (cos.f64 im)))
(*.f64 (exp.f64 (neg.f64 re)) (neg.f64 (cos.f64 im)))
(*.f64 (cos.f64 im) (/.f64 -1 (exp.f64 re)))
(neg.f64 (/.f64 (cos.f64 im) (exp.f64 re)))
(/.f64 (neg.f64 (cos.f64 im)) (exp.f64 re))
(/.f64 (cos.f64 im) (neg.f64 (exp.f64 re)))
(neg.f64 (*.f64 (exp.f64 re) (cos.f64 (neg.f64 im))))
(*.f64 (exp.f64 re) (neg.f64 (cos.f64 im)))
(*.f64 (cos.f64 im) (neg.f64 (exp.f64 re)))
(*.f64 (exp.f64 im) (cos.f64 re))
Symmetry

(abs im)

Compiler

Compiled 21 to 11 computations (47.6% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 14 to 10 computations (28.6% saved)

localize66.0ms (4.1%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(cos.f64 im)
Compiler

Compiled 14 to 6 computations (57.1% saved)

series0.0ms (0%)

Counts
1 → 4
Calls

3 calls:

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

rewrite144.0ms (9%)

Algorithm
batch-egg-rewrite
Rules
986×log1p-expm1-u
554×expm1-udef
554×log1p-udef
456×expm1-log1p-u
386×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
1448
24538
350448
Stop Event
node limit
Counts
1 → 50
Calls
Call 1
Inputs
(cos.f64 im)
Outputs
(+.f64 (+.f64 (cos.f64 im) 1) -1)
(+.f64 0 (cos.f64 im))
(+.f64 (*.f64 (cos.f64 (+.f64 im 1)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 im 1)) (sin.f64 1)))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) 2))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))))
(-.f64 (+.f64 (cos.f64 im) 1) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 (cos.f64 im) (log.f64 (E.f64)))
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(*.f64 (pow.f64 (cos.f64 im) 1/6) (*.f64 (pow.f64 (cos.f64 im) 1/6) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (cos.f64 im))))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 im) 5/2) 1/3) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cos.f64 im) 1/6)) (pow.f64 (cos.f64 im) 1/6))
(/.f64 (sqrt.f64 (+.f64 (cos.f64 (*.f64 im 2)) (cos.f64 0))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (cos.f64 im) 1) 3) 1) (+.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) (+.f64 1 (+.f64 (cos.f64 im) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) 1) (+.f64 (+.f64 (cos.f64 im) 1) 1))
(pow.f64 (cos.f64 im) 1)
(pow.f64 (cbrt.f64 (cos.f64 im)) 3)
(pow.f64 (pow.f64 (cos.f64 im) 2) 1/2)
(pow.f64 (pow.f64 (cos.f64 im) 3) 1/3)
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
(pow.f64 (E.f64) (log.f64 (cos.f64 im)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 im))) 2)) (cbrt.f64 (log.f64 (cos.f64 im))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.f64 (log.f64 (cos.f64 im))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(fabs.f64 (cos.f64 im))
(log.f64 (exp.f64 (cos.f64 im)))
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(expm1.f64 (log1p.f64 (cos.f64 im)))
(exp.f64 (log.f64 (cos.f64 im)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 im))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 im) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 im))) 2))
(log1p.f64 (expm1.f64 (cos.f64 im)))

simplify52.0ms (3.3%)

Algorithm
egg-herbie
Rules
1186×fma-def
630×associate-+r-
600×times-frac
588×log-prod
516×distribute-lft-out
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01621107
13471091
210091078
343621018
Stop Event
node limit
Counts
54 → 76
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (+.f64 (cos.f64 im) 1) -1)
(+.f64 0 (cos.f64 im))
(+.f64 (*.f64 (cos.f64 (+.f64 im 1)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 im 1)) (sin.f64 1)))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) 2))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))))
(-.f64 (+.f64 (cos.f64 im) 1) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 (cos.f64 im) (log.f64 (E.f64)))
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(*.f64 (pow.f64 (cos.f64 im) 1/6) (*.f64 (pow.f64 (cos.f64 im) 1/6) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (cos.f64 im))))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 im) 5/2) 1/3) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cos.f64 im) 1/6)) (pow.f64 (cos.f64 im) 1/6))
(/.f64 (sqrt.f64 (+.f64 (cos.f64 (*.f64 im 2)) (cos.f64 0))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (cos.f64 im) 1) 3) 1) (+.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) (+.f64 1 (+.f64 (cos.f64 im) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) 1) (+.f64 (+.f64 (cos.f64 im) 1) 1))
(pow.f64 (cos.f64 im) 1)
(pow.f64 (cbrt.f64 (cos.f64 im)) 3)
(pow.f64 (pow.f64 (cos.f64 im) 2) 1/2)
(pow.f64 (pow.f64 (cos.f64 im) 3) 1/3)
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
(pow.f64 (E.f64) (log.f64 (cos.f64 im)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 im))) 2)) (cbrt.f64 (log.f64 (cos.f64 im))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.f64 (log.f64 (cos.f64 im))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(fabs.f64 (cos.f64 im))
(log.f64 (exp.f64 (cos.f64 im)))
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(expm1.f64 (log1p.f64 (cos.f64 im)))
(exp.f64 (log.f64 (cos.f64 im)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 im))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 im) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 im))) 2))
(log1p.f64 (expm1.f64 (cos.f64 im)))
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(fma.f64 -1/2 (pow.f64 im 2) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 im 4))))
(fma.f64 -1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 im 2) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 (fma.f64 -1/2 (pow.f64 im 2) 1) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6))))
(+.f64 (+.f64 (cos.f64 im) 1) -1)
(cos.f64 im)
(+.f64 0 (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 (+.f64 im 1)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 im 1)) (sin.f64 1)))
(fma.f64 (cos.f64 (+.f64 1 im)) (cos.f64 1) (*.f64 (sin.f64 (+.f64 1 im)) (sin.f64 1)))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) 2))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 im)))))
(cos.f64 im)
(-.f64 (+.f64 (cos.f64 im) 1) 1)
(cos.f64 im)
(*.f64 (cos.f64 im) 1)
(cos.f64 im)
(*.f64 (cos.f64 im) (log.f64 (E.f64)))
(cos.f64 im)
(*.f64 1 (cos.f64 im))
(cos.f64 im)
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(cos.f64 im)
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(cos.f64 im)
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(cos.f64 im)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(cos.f64 im)
(*.f64 (pow.f64 (cos.f64 im) 1/6) (*.f64 (pow.f64 (cos.f64 im) 1/6) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)))
(cos.f64 im)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))))
(*.f64 (cbrt.f64 (cos.f64 im)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 5))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(cos.f64 im)
(*.f64 (pow.f64 (cos.f64 im) 1/4) (*.f64 (pow.f64 (cos.f64 im) 1/4) (sqrt.f64 (cos.f64 im))))
(cos.f64 im)
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 1/6)))
(*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (pow.f64 (cos.f64 im) 1/6) 3))
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(cos.f64 im)
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 8)))
(*.f64 (pow.f64 (pow.f64 (cos.f64 im) 5/2) 1/3) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (pow.f64 (cos.f64 im) 1/6) (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 8)))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (pow.f64 (cos.f64 im) 1/6) (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(cos.f64 im)
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (pow.f64 (cos.f64 im) 1/4))
(cos.f64 im)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (pow.f64 (cos.f64 im) 1/6))
(*.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 1/6)))
(*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (pow.f64 (cos.f64 im) 1/6) 3))
(*.f64 (*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))))
(*.f64 (cbrt.f64 (cos.f64 im)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 5))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(cos.f64 im)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (pow.f64 (cos.f64 im) 1/6)) (pow.f64 (cos.f64 im) 1/6))
(cos.f64 im)
(/.f64 (sqrt.f64 (+.f64 (cos.f64 (*.f64 im 2)) (cos.f64 0))) (sqrt.f64 2))
(/.f64 (sqrt.f64 (+.f64 1 (cos.f64 (*.f64 im 2)))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (cos.f64 im) 1) 3) 1) (+.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) (+.f64 1 (+.f64 (cos.f64 im) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 1 (cos.f64 im)) 3) -1) (fma.f64 (+.f64 1 (cos.f64 im)) (+.f64 1 (cos.f64 im)) (+.f64 (cos.f64 im) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (cos.f64 im)) 3)) (fma.f64 (+.f64 1 (cos.f64 im)) (+.f64 1 (cos.f64 im)) (+.f64 2 (cos.f64 im))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (cos.f64 im)) 3)) (+.f64 1 (*.f64 (+.f64 1 (cos.f64 im)) (+.f64 2 (cos.f64 im)))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (cos.f64 im)) 3)) (fma.f64 (+.f64 1 (cos.f64 im)) (+.f64 2 (cos.f64 im)) 1))
(/.f64 (-.f64 (*.f64 (+.f64 (cos.f64 im) 1) (+.f64 (cos.f64 im) 1)) 1) (+.f64 (+.f64 (cos.f64 im) 1) 1))
(cos.f64 im)
(pow.f64 (cos.f64 im) 1)
(cos.f64 im)
(pow.f64 (cbrt.f64 (cos.f64 im)) 3)
(cos.f64 im)
(pow.f64 (pow.f64 (cos.f64 im) 2) 1/2)
(cos.f64 im)
(pow.f64 (pow.f64 (cos.f64 im) 3) 1/3)
(cos.f64 im)
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
(cos.f64 im)
(pow.f64 (E.f64) (log.f64 (cos.f64 im)))
(cos.f64 im)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cos.f64 im))) 2)) (cbrt.f64 (log.f64 (cos.f64 im))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.f64 (log.f64 (cos.f64 im))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(cos.f64 im)
(fabs.f64 (cos.f64 im))
(cos.f64 im)
(log.f64 (exp.f64 (cos.f64 im)))
(cos.f64 im)
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(cos.f64 im)
(expm1.f64 (log1p.f64 (cos.f64 im)))
(cos.f64 im)
(exp.f64 (log.f64 (cos.f64 im)))
(cos.f64 im)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (cos.f64 im))) 3))
(cos.f64 im)
(exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 im) 3)) 1/3))
(cos.f64 im)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 im))) 2))
(cos.f64 im)
(log1p.f64 (expm1.f64 (cos.f64 im)))
(cos.f64 im)

eval18.0ms (1.1%)

Compiler

Compiled 1051 to 555 computations (47.2% saved)

prune12.0ms (0.8%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New75176
Fresh000
Picked011
Done000
Total75277
Accuracy
100.0%
Counts
77 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
73.0%
(*.f64 (exp.f64 re) 1)
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
73.0%
(*.f64 (exp.f64 re) 1)
Compiler

Compiled 26 to 20 computations (23.1% saved)

localize19.0ms (1.2%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
73.0%
(*.f64 (exp.f64 re) 1)
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes17.0ms (1.1%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) 1)
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
Calls

5 calls:

7.0ms
im
3.0ms
re
3.0ms
(cos.f64 im)
2.0ms
(*.f64 (exp.f64 re) (cos.f64 im))
2.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(*.f64 (exp.f64 re) (cos.f64 im))
100.0%1(exp.f64 re)
100.0%1(cos.f64 im)
Compiler

Compiled 32 to 22 computations (31.3% saved)

regimes7.0ms (0.5%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) 1)
Outputs
(*.f64 (exp.f64 re) 1)
Calls

3 calls:

3.0ms
re
2.0ms
im
2.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
73.0%1re
73.0%1im
73.0%1(exp.f64 re)
Compiler

Compiled 16 to 12 computations (25% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
*-rgt-identity
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01329
11729
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) 1)
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) 1)
(exp.f64 re)
Compiler

Compiled 11 to 8 computations (27.3% saved)

soundness0.0ms (0%)

end0.0ms (0%)

preprocess25.0ms (1.6%)

Remove

(abs im)

Compiler

Compiled 46 to 30 computations (34.8% saved)

Profiling

Loading profile data...