math.exp on complex, real part

Details

Time bar (total: 3.1s)

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)

sample2.4s (78.9%)

Results
890.0ms4643×body256valid
595.0ms1280×body1024infinite
451.0ms1031×body1024valid
235.0ms456×body512infinite
210.0ms533×body512valid
50.0ms313×body256infinite
Bogosity

preprocess13.0ms (0.4%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
11330
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 im) (cos.f64 re))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 im) (cos.f64 re))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
1915
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
100.0%
Counts
2 → 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)

localize97.0ms (3.1%)

Local Accuracy

Found 1 expressions with local accuracy:

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)

rewrite50.0ms (1.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 im)
Outputs
(+.f64 0 (cos.f64 im))
(+.f64 (log.f64 (pow.f64 (cbrt.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 (+.f64 1 im)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 im)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (cbrt.f64 (cos.f64 im)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)))
(*.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 (sqrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (cbrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 im) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(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 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.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))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(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 (*.f64 3 (log.f64 (cos.f64 im))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (cos.f64 im))) 2))
(log1p.f64 (expm1.f64 (cos.f64 im)))

simplify60.0ms (1.9%)

Algorithm
egg-herbie
Rules
954×log-prod
670×associate-*r*
622×associate-+r+
610×associate-+l+
594×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0121569
1241535
2644519
33358519
47008519
Stop Event
node limit
Counts
41 → 55
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/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 0 (cos.f64 im))
(+.f64 (log.f64 (pow.f64 (cbrt.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 (+.f64 1 im)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 im)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (cbrt.f64 (cos.f64 im)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)))
(*.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 (sqrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (cbrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (pow.f64 (cos.f64 im) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(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 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.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))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(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 (*.f64 3 (log.f64 (cos.f64 im))) 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)))
(+.f64 1 (*.f64 -1/2 (*.f64 im im)))
(fma.f64 -1/2 (*.f64 im im) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (fma.f64 -1/2 (*.f64 im im) (*.f64 1/24 (pow.f64 im 4))))
(fma.f64 -1/2 (*.f64 im im) (fma.f64 1/24 (pow.f64 im 4) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 im im) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 0 (cos.f64 im))
(cos.f64 im)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 im))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 im)))) 3)
(+.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 (+.f64 1 im)) (cos.f64 1)) (*.f64 (sin.f64 (+.f64 1 im)) (sin.f64 1)))
(fma.f64 (cos.f64 (+.f64 1 im)) (cos.f64 1) (*.f64 (sin.f64 (+.f64 1 im)) (sin.f64 1)))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(cos.f64 im)
(*.f64 (cos.f64 im) 1)
(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 (cbrt.f64 (cos.f64 im)) (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)))
(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 (sqrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)))
(cos.f64 im)
(*.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2)))
(*.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 (sqrt.f64 (pow.f64 (cos.f64 im) 3/2)) (sqrt.f64 (sqrt.f64 (cos.f64 im))))
(cos.f64 im)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 5)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(cos.f64 im)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 4)) (cbrt.f64 (cos.f64 im)))
(cos.f64 im)
(*.f64 (pow.f64 1 1/3) (cos.f64 im))
(cos.f64 im)
(*.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2) 1/3) (cbrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (cbrt.f64 (cos.f64 im))) 2)))
(*.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) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (sqrt.f64 (cbrt.f64 (cos.f64 im))) (cbrt.f64 (pow.f64 (cos.f64 im) 5/2)))
(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 (sqrt.f64 (log.f64 (cos.f64 im)))) (sqrt.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))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(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 (*.f64 3 (log.f64 (cos.f64 im))) 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)

eval10.0ms (0.3%)

Compiler

Compiled 641 to 303 computations (52.7% saved)

prune15.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New52355
Fresh000
Picked011
Done000
Total52456
Accurracy
100.0%
Counts
56 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.9%
(*.f64 (exp.f64 re) (pow.f64 (sqrt.f64 (cos.f64 im)) 2))
63.6%
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
69.0%
(*.f64 (exp.f64 re) 1)
74.9%
(*.f64 (exp.f64 re) (pow.f64 (sqrt.f64 (cos.f64 im)) 2))
63.6%
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
69.0%
(*.f64 (exp.f64 re) 1)
Compiler

Compiled 70 to 54 computations (22.9% saved)

localize173.0ms (5.6%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
100.0%
(sqrt.f64 (cos.f64 im))
99.9%
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
100.0%
(*.f64 -1/2 (*.f64 im im))
Compiler

Compiled 65 to 29 computations (55.4% saved)

series2.0ms (0.1%)

Counts
3 → 28
Calls

9 calls:

TimeVariablePointExpression
1.0ms
im
@inf
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
0.0ms
im
@0
(*.f64 -1/2 (*.f64 im im))
0.0ms
im
@-inf
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
0.0ms
im
@inf
(*.f64 -1/2 (*.f64 im im))
0.0ms
im
@0
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)

rewrite64.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1676×pow1
1542×add-exp-log
1540×log1p-expm1-u
1540×expm1-log1p-u
1508×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
122327
2221627
Stop Event
node limit
Counts
3 → 48
Calls
Call 1
Inputs
(*.f64 -1/2 (*.f64 im im))
(pow.f64 (sqrt.f64 (cos.f64 im)) 2)
(sqrt.f64 (cos.f64 im))
Outputs
(-.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) 1)
(pow.f64 (*.f64 -1/2 (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) 1/4))
(log.f64 (pow.f64 (exp.f64 -1/2) (*.f64 im im)))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 -1/2 (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (*.f64 im im))))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (cbrt.f64 (cos.f64 im)) (*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(*.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)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(log.f64 (exp.f64 (cos.f64 im)))
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(cos.f64 im)
(expm1.f64 (log1p.f64 (cos.f64 im)))
(exp.f64 (log.f64 (cos.f64 im)))
(log1p.f64 (expm1.f64 (cos.f64 im)))
(-.f64 (+.f64 1 (sqrt.f64 (cos.f64 im))) 1)
(*.f64 (sqrt.f64 (cos.f64 im)) 1)
(*.f64 1 (sqrt.f64 (cos.f64 im)))
(*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (cbrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) 1/2) (pow.f64 (cbrt.f64 (cos.f64 im)) 1/2))
(pow.f64 (cos.f64 im) 1/2)
(pow.f64 (sqrt.f64 (cos.f64 im)) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) 3)
(pow.f64 (pow.f64 (cos.f64 im) 3/2) 1/3)
(pow.f64 (pow.f64 (cos.f64 im) 1/4) 2)
(fabs.f64 (sqrt.f64 (cos.f64 im)))
(log.f64 (exp.f64 (sqrt.f64 (cos.f64 im))))
(cbrt.f64 (pow.f64 (cos.f64 im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (cos.f64 im))))
(exp.f64 (log.f64 (sqrt.f64 (cos.f64 im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (cos.f64 im))))

simplify53.0ms (1.7%)

Algorithm
egg-herbie
Rules
2124×fma-def
1074×distribute-rgt-in
1066×unswap-sqr
1036×distribute-lft-in
852×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01261040
1273908
2937784
33735780
Stop Event
node limit
Counts
76 → 78
Calls
Call 1
Inputs
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (pow.f64 im 2))
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/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
1
(+.f64 (*.f64 -1/4 (pow.f64 im 2)) 1)
(+.f64 (*.f64 -1/4 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/96 (pow.f64 im 4))))
(+.f64 (*.f64 -19/5760 (pow.f64 im 6)) (+.f64 (*.f64 -1/4 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/96 (pow.f64 im 4)))))
(-.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) 1)
(pow.f64 (*.f64 -1/2 (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) 1/4))
(log.f64 (pow.f64 (exp.f64 -1/2) (*.f64 im im)))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 -1/2 (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (*.f64 im im))))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(*.f64 (cos.f64 im) 1)
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(*.f64 1 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))
(*.f64 (cbrt.f64 (cos.f64 im)) (*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(*.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)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(log.f64 (exp.f64 (cos.f64 im)))
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(cos.f64 im)
(expm1.f64 (log1p.f64 (cos.f64 im)))
(exp.f64 (log.f64 (cos.f64 im)))
(log1p.f64 (expm1.f64 (cos.f64 im)))
(-.f64 (+.f64 1 (sqrt.f64 (cos.f64 im))) 1)
(*.f64 (sqrt.f64 (cos.f64 im)) 1)
(*.f64 1 (sqrt.f64 (cos.f64 im)))
(*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (cbrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (pow.f64 (cos.f64 im) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (cos.f64 im)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) 1/2) (pow.f64 (cbrt.f64 (cos.f64 im)) 1/2))
(pow.f64 (cos.f64 im) 1/2)
(pow.f64 (sqrt.f64 (cos.f64 im)) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) 3)
(pow.f64 (pow.f64 (cos.f64 im) 3/2) 1/3)
(pow.f64 (pow.f64 (cos.f64 im) 1/4) 2)
(fabs.f64 (sqrt.f64 (cos.f64 im)))
(log.f64 (exp.f64 (sqrt.f64 (cos.f64 im))))
(cbrt.f64 (pow.f64 (cos.f64 im) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (cos.f64 im))))
(exp.f64 (log.f64 (sqrt.f64 (cos.f64 im))))
(log1p.f64 (expm1.f64 (sqrt.f64 (cos.f64 im))))
Outputs
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(*.f64 -1/2 (pow.f64 im 2))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 im im)))
(fma.f64 -1/2 (*.f64 im im) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (fma.f64 -1/2 (*.f64 im im) (*.f64 1/24 (pow.f64 im 4))))
(fma.f64 -1/2 (*.f64 im im) (fma.f64 1/24 (pow.f64 im 4) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 im im) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6)))))
(fma.f64 (*.f64 im im) (fma.f64 (*.f64 im im) 1/24 -1/2) (fma.f64 -1/720 (pow.f64 im 6) 1))
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
(cos.f64 im)
1
(+.f64 (*.f64 -1/4 (pow.f64 im 2)) 1)
(fma.f64 -1/4 (*.f64 im im) 1)
(fma.f64 (*.f64 im im) -1/4 1)
(fma.f64 im (*.f64 im -1/4) 1)
(+.f64 (*.f64 -1/4 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/96 (pow.f64 im 4))))
(+.f64 (fma.f64 -1/4 (*.f64 im im) 1) (*.f64 (pow.f64 im 4) -1/96))
(fma.f64 (*.f64 im im) -1/4 (fma.f64 (pow.f64 im 4) -1/96 1))
(fma.f64 (pow.f64 im 4) -1/96 (fma.f64 im (*.f64 im -1/4) 1))
(fma.f64 (*.f64 im im) (fma.f64 (*.f64 im im) -1/96 -1/4) 1)
(+.f64 (*.f64 -19/5760 (pow.f64 im 6)) (+.f64 (*.f64 -1/4 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/96 (pow.f64 im 4)))))
(fma.f64 -19/5760 (pow.f64 im 6) (+.f64 (fma.f64 -1/4 (*.f64 im im) 1) (*.f64 (pow.f64 im 4) -1/96)))
(fma.f64 (pow.f64 im 6) -19/5760 (fma.f64 (*.f64 im im) -1/4 (fma.f64 (pow.f64 im 4) -1/96 1)))
(fma.f64 (pow.f64 im 6) -19/5760 (fma.f64 (pow.f64 im 4) -1/96 (fma.f64 im (*.f64 im -1/4) 1)))
(fma.f64 im (*.f64 im -1/4) (fma.f64 (pow.f64 im 6) -19/5760 (fma.f64 (pow.f64 im 4) -1/96 1)))
(-.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) 1)
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(pow.f64 (*.f64 -1/2 (*.f64 im im)) 1)
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(pow.f64 (cbrt.f64 (*.f64 -1/2 (*.f64 im im))) 3)
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(pow.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3) 1/3)
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(pow.f64 (*.f64 im (sqrt.f64 -1/2)) 2)
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(sqrt.f64 (*.f64 (pow.f64 im 4) 1/4))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(log.f64 (pow.f64 (exp.f64 -1/2) (*.f64 im im)))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (*.f64 im im)) 3))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (*.f64 im im))))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(exp.f64 (log.f64 (*.f64 -1/2 (*.f64 im im))))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (*.f64 im im))))
(*.f64 -1/2 (*.f64 im im))
(*.f64 im (*.f64 -1/2 im))
(-.f64 (+.f64 1 (cos.f64 im)) 1)
(cos.f64 im)
(*.f64 (cos.f64 im) 1)
(cos.f64 im)
(*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)))
(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 (cbrt.f64 (cos.f64 im)) (*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im))))
(cos.f64 im)
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)))
(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)) (pow.f64 (cos.f64 im) 1/4)) (pow.f64 (cos.f64 im) 1/4))
(cos.f64 im)
(*.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (cbrt.f64 (cos.f64 im))) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(cos.f64 im)
(sqrt.f64 (pow.f64 (cos.f64 im) 2))
(cos.f64 im)
(log.f64 (exp.f64 (cos.f64 im)))
(cos.f64 im)
(cbrt.f64 (pow.f64 (cos.f64 im) 3))
(cos.f64 im)
(cos.f64 im)
(expm1.f64 (log1p.f64 (cos.f64 im)))
(cos.f64 im)
(exp.f64 (log.f64 (cos.f64 im)))
(cos.f64 im)
(log1p.f64 (expm1.f64 (cos.f64 im)))
(cos.f64 im)
(-.f64 (+.f64 1 (sqrt.f64 (cos.f64 im))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (sqrt.f64 (cos.f64 im)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 1 (sqrt.f64 (cos.f64 im)))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (cbrt.f64 (cos.f64 im)) (cbrt.f64 (sqrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) (cbrt.f64 (cos.f64 im)))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (pow.f64 (cos.f64 im) 1/4) (pow.f64 (cos.f64 im) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (sqrt.f64 (cbrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (cos.f64 im)))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) 1/2) (pow.f64 (cbrt.f64 (cos.f64 im)) 1/2))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(pow.f64 (cos.f64 im) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(pow.f64 (sqrt.f64 (cos.f64 im)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(pow.f64 (cbrt.f64 (sqrt.f64 (cos.f64 im))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(pow.f64 (pow.f64 (cos.f64 im) 3/2) 1/3)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(pow.f64 (pow.f64 (cos.f64 im) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(fabs.f64 (sqrt.f64 (cos.f64 im)))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(log.f64 (exp.f64 (sqrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(cbrt.f64 (pow.f64 (cos.f64 im) 3/2))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(expm1.f64 (log1p.f64 (sqrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(exp.f64 (log.f64 (sqrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))
(log1p.f64 (expm1.f64 (sqrt.f64 (cos.f64 im))))
(+.f64 1 (-.f64 (sqrt.f64 (cos.f64 im)) 1))
(+.f64 (sqrt.f64 (cos.f64 im)) 0)
(sqrt.f64 (cos.f64 im))

eval20.0ms (0.6%)

Compiler

Compiled 971 to 552 computations (43.2% saved)

prune13.0ms (0.4%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New78078
Fresh000
Picked033
Done011
Total78482
Accurracy
100.0%
Counts
82 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.9%
(*.f64 (exp.f64 re) (pow.f64 (sqrt.f64 (cos.f64 im)) 2))
63.6%
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
100.0%
(*.f64 (exp.f64 re) (cos.f64 im))
69.0%
(*.f64 (exp.f64 re) 1)
Compiler

Compiled 64 to 44 computations (31.3% saved)

regimes23.0ms (0.7%)

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

5 calls:

6.0ms
re
3.0ms
im
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 50 to 32 computations (36% saved)

regimes15.0ms (0.5%)

Accuracy

Total -9.2b remaining (-46.2%)

Threshold costs -9.2b (-46.2%)

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

3 calls:

10.0ms
re
3.0ms
im
2.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
70.9%3re
69.0%1im
69.0%1(exp.f64 re)
Compiler

Compiled 26 to 18 computations (30.8% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11420
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%)

end25.0ms (0.8%)

Compiler

Compiled 32 to 20 computations (37.5% saved)

Profiling

Loading profile data...