Details

Time bar (total: 5.3s)

analyze61.0ms (1.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
50%50%0.1%2
50%50%0.1%3
74.9%25%0.1%4
74.9%25%0.1%5
74.9%18.7%6.3%6
74.9%18.7%6.3%7
74.9%15.6%9.5%8
74.9%15.6%9.5%9
74.9%14%11%10
74.9%14%11%11
74.9%13.3%11.8%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.2s (41.3%)

Results
870.0ms6192×body256valid
718.0ms1364×body1024valid
213.0ms698×body512valid
205.0ms664×body1024invalid
89.0ms360×body512invalid
62.0ms386×body256invalid
2.0msbody2048valid

preprocess80.0ms (1.5%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
11116
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)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
178
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
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series4.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 (exp.f64 re) (cos.f64 im))
1.0ms
re
@inf
(*.f64 (exp.f64 re) (cos.f64 im))
1.0ms
re
@0
(*.f64 (exp.f64 re) (cos.f64 im))
1.0ms
im
@inf
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
re
@-inf
(*.f64 (exp.f64 re) (cos.f64 im))

rewrite37.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
530×pow1_binary64
504×add-sqr-sqrt_binary64
483×add-log-exp_binary64
483×log1p-expm1-u_binary64
483×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11138
213248
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))))

simplify75.0ms (1.4%)

Algorithm
egg-herbie
Rules
760×fma-def_binary64
582×associate-*l*_binary64
568×distribute-lft-out_binary64
524×distribute-rgt-out_binary64
448×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
039152
1105150
2269142
3868122
43279118
55667118
67103118
77527118
Stop Event
node limit
Counts
19 → 25
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (cos.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 (cos.f64 im) (fma.f64 re (*.f64 re 1/2) re) (cos.f64 im))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im))))
(fma.f64 (cos.f64 im) (*.f64 re (*.f64 re 1/2)) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re 1))))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (cos.f64 im) (+.f64 (fma.f64 1/6 (pow.f64 re 3) 1) (fma.f64 re (*.f64 re 1/2) re)))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (exp.f64 re))
(fma.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2)) (exp.f64 re))
(*.f64 (exp.f64 re) (fma.f64 im (*.f64 im -1/2) 1))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (fma.f64 1/24 (pow.f64 im 4) 1)))
(*.f64 (exp.f64 re) (+.f64 1 (fma.f64 im (*.f64 im -1/2) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (fma.f64 1/24 (pow.f64 im 4) 1)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)) (exp.f64 re))))
(+.f64 (fma.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4)) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 im (*.f64 im -1/2)))))
(fma.f64 (exp.f64 re) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 im (*.f64 im -1/2))) (*.f64 (exp.f64 re) (fma.f64 1/24 (pow.f64 im 4) 1)))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 1/24 (pow.f64 im 4) 1) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 -1/2 (*.f64 im im)))))

eval5.0ms (0.1%)

Compiler

Compiled 275 to 138 computations (49.8% saved)

prune8.0ms (0.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New19625
Fresh000
Picked011
Done000
Total19726
Error
0b
Counts
26 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
0.8b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
25.9b
(*.f64 (cos.f64 im) (+.f64 re 1))
25.8b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
26.2b
(cos.f64 im)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
18.8b
(exp.f64 re)
Compiler

Compiled 95 to 69 computations (27.4% saved)

localize46.0ms (0.9%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
0.2b
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
Compiler

Compiled 29 to 11 computations (62.1% saved)

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
re
@inf
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
1.0ms
im
@0
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
1.0ms
re
@0
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
1.0ms
re
@-inf
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
1.0ms
im
@-inf
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)

rewrite55.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
713×pow1_binary64
664×add-log-exp_binary64
664×log1p-expm1-u_binary64
664×expm1-log1p-u_binary64
645×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
118419
2190219
Stop Event
node limit
Counts
2 → 54
Calls
Call 1
Inputs
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 re) (*.f64 (cos.f64 im) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (*.f64 (exp.f64 re) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (cos.f64 im)) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2) (*.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (*.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3/2) (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2) 3) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3) (pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) (exp.f64 re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) (cos.f64 im)) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) 1) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im)))) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (+.f64 re (log.f64 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2) (*.f64 (cbrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (sqrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2) 1/3) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (exp.f64 re)) 2)) (cbrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))))

simplify87.0ms (1.7%)

Algorithm
egg-herbie
Rules
842×fma-def_binary64
559×associate-*l*_binary64
521×associate-*r*_binary64
376×unswap-sqr_binary64
327×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0101820
1302789
21055734
35734724
46666724
57766724
Stop Event
node limit
Counts
102 → 82
Calls
Call 1
Inputs
(pow.f64 (cos.f64 im) 3)
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (pow.f64 (cos.f64 im) 3))
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 3)) (*.f64 4 (pow.f64 (cos.f64 im) 3))) (pow.f64 re 2))))
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (+.f64 (pow.f64 (cos.f64 im) 3) (+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (+.f64 (*.f64 2 (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/3 (pow.f64 (cos.f64 im) 2)) (pow.f64 (cos.f64 im) 2)) (cos.f64 im)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 3)) (*.f64 4 (pow.f64 (cos.f64 im) 3))) (pow.f64 re 2)))))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(pow.f64 (exp.f64 re) 3)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (pow.f64 (exp.f64 re) 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2)))) (+.f64 (*.f64 1/24 (pow.f64 (exp.f64 re) 3)) (*.f64 1/2 (pow.f64 (exp.f64 re) 3)))) (pow.f64 im 4)) (pow.f64 (exp.f64 re) 3)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 (exp.f64 re) 3)) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 (exp.f64 re) 2)) (*.f64 -1/360 (pow.f64 (exp.f64 re) 2))) (exp.f64 re)) (*.f64 -1/720 (pow.f64 (exp.f64 re) 3))))) (pow.f64 im 6)) (+.f64 (*.f64 (+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2)))) (+.f64 (*.f64 1/24 (pow.f64 (exp.f64 re) 3)) (*.f64 1/2 (pow.f64 (exp.f64 re) 3)))) (pow.f64 im 4)) (pow.f64 (exp.f64 re) 3))))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
(pow.f64 (cos.f64 im) 3)
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (pow.f64 (cos.f64 im) 3))
(fma.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) re (pow.f64 (cos.f64 im) 3))
(*.f64 (+.f64 (*.f64 3 re) 1) (pow.f64 (cos.f64 im) 3))
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 3)) (*.f64 4 (pow.f64 (cos.f64 im) 3))) (pow.f64 re 2))))
(+.f64 (fma.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) re (pow.f64 (cos.f64 im) 3)) (*.f64 (*.f64 (pow.f64 (cos.f64 im) 3) 9/2) (*.f64 re re)))
(fma.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) re (fma.f64 (*.f64 (pow.f64 (cos.f64 im) 3) 9/2) (*.f64 re re) (pow.f64 (cos.f64 im) 3)))
(fma.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (*.f64 re re) 9/2) (*.f64 (+.f64 (*.f64 3 re) 1) (pow.f64 (cos.f64 im) 3)))
(+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 2 (pow.f64 (cos.f64 im) 3))) re) (+.f64 (pow.f64 (cos.f64 im) 3) (+.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (+.f64 (*.f64 2 (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/3 (pow.f64 (cos.f64 im) 2)) (pow.f64 (cos.f64 im) 2)) (cos.f64 im)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 3)) (*.f64 4 (pow.f64 (cos.f64 im) 3))) (pow.f64 re 2)))))
(+.f64 (fma.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) re (pow.f64 (cos.f64 im) 3)) (fma.f64 (+.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) (fma.f64 (*.f64 4/3 (pow.f64 (cos.f64 im) 2)) (cos.f64 im) (*.f64 (pow.f64 (cos.f64 im) 3) 1/6))) (pow.f64 re 3) (*.f64 (*.f64 (pow.f64 (cos.f64 im) 3) 9/2) (*.f64 re re))))
(+.f64 (fma.f64 (*.f64 (pow.f64 (cos.f64 im) 3) 9/2) (*.f64 re re) (*.f64 (fma.f64 3 (pow.f64 (cos.f64 im) 3) (fma.f64 (pow.f64 (cos.f64 im) 3) 1/6 (*.f64 4/3 (pow.f64 (cos.f64 im) 3)))) (pow.f64 re 3))) (fma.f64 (*.f64 3 (pow.f64 (cos.f64 im) 3)) re (pow.f64 (cos.f64 im) 3)))
(+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 (pow.f64 (cos.f64 im) 3) 9/2) (*.f64 re (fma.f64 3 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) 3/2))))) (*.f64 (+.f64 (*.f64 3 re) 1) (pow.f64 (cos.f64 im) 3)))
(fma.f64 3 (*.f64 (pow.f64 (cos.f64 im) 3) re) (fma.f64 (fma.f64 3 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) 3/2)) (pow.f64 re 3) (*.f64 (+.f64 (*.f64 (*.f64 re re) 9/2) 1) (pow.f64 (cos.f64 im) 3))))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(pow.f64 (exp.f64 re) 3)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (pow.f64 (exp.f64 re) 3))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -3/2) (*.f64 im im) (pow.f64 (exp.f64 re) 3))
(fma.f64 im (*.f64 (pow.f64 (exp.f64 re) 3) (*.f64 -3/2 im)) (pow.f64 (exp.f64 re) 3))
(*.f64 (+.f64 (*.f64 (*.f64 im im) -3/2) 1) (pow.f64 (exp.f64 re) 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2)))) (+.f64 (*.f64 1/24 (pow.f64 (exp.f64 re) 3)) (*.f64 1/2 (pow.f64 (exp.f64 re) 3)))) (pow.f64 im 4)) (pow.f64 (exp.f64 re) 3)))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -3/2) (*.f64 im im) (fma.f64 (fma.f64 (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 2) 1/3) (*.f64 (pow.f64 (exp.f64 re) 3) 13/24)) (pow.f64 im 4) (pow.f64 (exp.f64 re) 3)))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -3/2) (*.f64 im im) (fma.f64 (fma.f64 (pow.f64 (exp.f64 re) 3) 13/24 (*.f64 (pow.f64 (exp.f64 re) 3) 1/3)) (pow.f64 im 4) (pow.f64 (exp.f64 re) 3)))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) 7/8) (pow.f64 im 4) (fma.f64 im (*.f64 (pow.f64 (exp.f64 re) 3) (*.f64 -3/2 im)) (pow.f64 (exp.f64 re) 3)))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) 7/8) (pow.f64 im 4) (*.f64 (+.f64 (*.f64 (*.f64 im im) -3/2) 1) (pow.f64 (exp.f64 re) 3)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/2 (pow.f64 (exp.f64 re) 3))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 (exp.f64 re) 3)) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 (exp.f64 re) 2)) (*.f64 -1/360 (pow.f64 (exp.f64 re) 2))) (exp.f64 re)) (*.f64 -1/720 (pow.f64 (exp.f64 re) 3))))) (pow.f64 im 6)) (+.f64 (*.f64 (+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/12 (pow.f64 (exp.f64 re) 2)) (*.f64 1/4 (pow.f64 (exp.f64 re) 2)))) (+.f64 (*.f64 1/24 (pow.f64 (exp.f64 re) 3)) (*.f64 1/2 (pow.f64 (exp.f64 re) 3)))) (pow.f64 im 4)) (pow.f64 (exp.f64 re) 3))))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -3/2) (*.f64 im im) (fma.f64 (fma.f64 -1/24 (pow.f64 (exp.f64 re) 3) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 2) 1/3)) (fma.f64 (*.f64 (pow.f64 (exp.f64 re) 2) -2/45) (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 3) -1/720)))) (pow.f64 im 6) (fma.f64 (fma.f64 (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 2) 1/3) (*.f64 (pow.f64 (exp.f64 re) 3) 13/24)) (pow.f64 im 4) (pow.f64 (exp.f64 re) 3))))
(fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -3/2) (*.f64 im im) (fma.f64 (fma.f64 (pow.f64 (exp.f64 re) 3) -1/24 (fma.f64 -1/2 (*.f64 (pow.f64 (exp.f64 re) 3) 1/3) (fma.f64 (pow.f64 (exp.f64 re) 3) -1/720 (*.f64 (pow.f64 (exp.f64 re) 3) -2/45)))) (pow.f64 im 6) (fma.f64 (fma.f64 (pow.f64 (exp.f64 re) 3) 13/24 (*.f64 (pow.f64 (exp.f64 re) 3) 1/3)) (pow.f64 im 4) (pow.f64 (exp.f64 re) 3))))
(fma.f64 (+.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -11/240) (fma.f64 (pow.f64 (exp.f64 re) 3) -1/24 (*.f64 (pow.f64 (exp.f64 re) 3) -1/6))) (pow.f64 im 6) (fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) 7/8) (pow.f64 im 4) (fma.f64 im (*.f64 (pow.f64 (exp.f64 re) 3) (*.f64 -3/2 im)) (pow.f64 (exp.f64 re) 3))))
(fma.f64 (+.f64 (*.f64 (pow.f64 (exp.f64 re) 3) -11/240) (fma.f64 (pow.f64 (exp.f64 re) 3) -1/24 (*.f64 (pow.f64 (exp.f64 re) 3) -1/6))) (pow.f64 im 6) (fma.f64 (*.f64 (pow.f64 (exp.f64 re) 3) 7/8) (pow.f64 im 4) (*.f64 (+.f64 (*.f64 (*.f64 im im) -3/2) 1) (pow.f64 (exp.f64 re) 3))))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3))
(*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im))))
(fma.f64 (cos.f64 im) (*.f64 1/6 (pow.f64 re 3)) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (exp.f64 re))
(fma.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2)) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)) (exp.f64 re))))
(+.f64 (fma.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4)) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 im (*.f64 im -1/2)))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 im) (+.f64 re 1))
0.1b
(*.f64 (cos.f64 im) (+.f64 re 1))
Compiler

Compiled 16 to 9 computations (43.8% saved)

series13.0ms (0.3%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
11.0ms
re
@0
(*.f64 (cos.f64 im) (+.f64 re 1))
1.0ms
im
@0
(*.f64 (cos.f64 im) (+.f64 re 1))
1.0ms
re
@inf
(*.f64 (cos.f64 im) (+.f64 re 1))
0.0ms
im
@-inf
(*.f64 (cos.f64 im) (+.f64 re 1))
0.0ms
im
@inf
(*.f64 (cos.f64 im) (+.f64 re 1))

rewrite42.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
729×pow1_binary64
676×log1p-expm1-u_binary64
676×expm1-log1p-u_binary64
675×add-log-exp_binary64
660×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11469
218829
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 im) re) 1) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (pow.f64 (cos.f64 im) 2)) (-.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (fma.f64 re re (-.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 re re -1) (cos.f64 im)) (+.f64 re -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (fma.f64 re re (-.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (fma.f64 re re -1)) (+.f64 re -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 im)) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (+.f64 re 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 re 1) 3) (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) re (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 re) (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))))

simplify168.0ms (3.2%)

Algorithm
egg-herbie
Rules
773×fma-def_binary64
749×distribute-rgt-out_binary64
634×distribute-rgt-in_binary64
625×distribute-lft-in_binary64
519×associate-*l*_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
030268
178262
2249250
3919243
43738243
55935243
66117243
76356243
86575243
96848239
Stop Event
node limit
Counts
48 → 36
Calls
Call 1
Inputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re))
(+.f64 1 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re))
(*.f64 (+.f64 1 re) (fma.f64 -1/2 (*.f64 im im) 1))
(*.f64 (+.f64 1 re) (fma.f64 im (*.f64 -1/2 im) 1))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) 1))
(+.f64 1 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (fma.f64 -1/2 (*.f64 im im) 1)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (fma.f64 1/24 (pow.f64 im 4) 1)))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) 1)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 1)))
(fma.f64 (+.f64 1 re) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6))) (*.f64 (+.f64 1 re) (fma.f64 -1/2 (*.f64 im im) 1)))
(fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (*.f64 (+.f64 (fma.f64 -1/2 (*.f64 im im) (*.f64 -1/720 (pow.f64 im 6))) 1) (+.f64 1 re)))
(*.f64 (+.f64 1 re) (+.f64 (fma.f64 -1/2 (*.f64 im im) 1) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 im) re)
0.0b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
0.0b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
0.1b
(*.f64 (cos.f64 im) re)
Compiler

Compiled 17 to 5 computations (70.6% saved)

series5.0ms (0.1%)

Counts
2 → 11
Calls

12 calls:

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

rewrite54.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
713×pow1_binary64
661×add-log-exp_binary64
661×log1p-expm1-u_binary64
661×expm1-log1p-u_binary64
646×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
112915
2178315
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 im) re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 im)) re))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) re)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 re 1))) (/.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (cos.f64 im) (-.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (pow.f64 (cos.f64 im) 2)) (/.f64 1 (*.f64 (cos.f64 im) (-.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (cos.f64 im) (-.f64 re 1)) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 re (pow.f64 (cos.f64 im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (pow.f64 (cos.f64 im) 2)) (*.f64 (cos.f64 im) (-.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (pow.f64 (cos.f64 im) 2))) (neg.f64 (*.f64 (cos.f64 im) (-.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 (*.f64 (cos.f64 im) re) 2)) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) re (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) re)) 2) (cbrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) re)) (sqrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))))

simplify72.0ms (1.4%)

Algorithm
egg-herbie
Rules
654×associate-+l+_binary64
541×associate-*l*_binary64
408×associate-*r*_binary64
379×associate-+r+_binary64
316×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046165
1120161
2307161
31214161
44348161
55697161
66051161
77736161
Stop Event
node limit
Counts
60 → 67
Calls
Call 1
Inputs
re
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) re)
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) re))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 re (pow.f64 im 6))) re)))
(+.f64 1 re)
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 re))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 -1/720 re) 1/720) (pow.f64 im 6)) (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4))))))
(cos.f64 im)
(*.f64 (cos.f64 im) re)
(*.f64 (cos.f64 im) re)
Outputs
re
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) re)
(fma.f64 -1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im -1/2)) re)
(fma.f64 re (*.f64 im (*.f64 -1/2 im)) re)
(fma.f64 (*.f64 im im) (*.f64 re -1/2) re)
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) re))
(fma.f64 -1/2 (*.f64 re (*.f64 im im)) (fma.f64 1/24 (*.f64 re (pow.f64 im 4)) re))
(fma.f64 re (*.f64 1/24 (pow.f64 im 4)) (fma.f64 re (*.f64 im (*.f64 im -1/2)) re))
(fma.f64 re (*.f64 1/24 (pow.f64 im 4)) (fma.f64 re (*.f64 im (*.f64 -1/2 im)) re))
(fma.f64 re (*.f64 1/24 (pow.f64 im 4)) (fma.f64 (*.f64 im im) (*.f64 re -1/2) re))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 re (pow.f64 im 6))) re)))
(fma.f64 -1/2 (*.f64 re (*.f64 im im)) (fma.f64 1/24 (*.f64 re (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 re (pow.f64 im 6)) re)))
(fma.f64 re (*.f64 im (*.f64 im -1/2)) (fma.f64 re (*.f64 -1/720 (pow.f64 im 6)) (fma.f64 re (*.f64 1/24 (pow.f64 im 4)) re)))
(+.f64 re (*.f64 re (+.f64 (*.f64 im (*.f64 -1/2 im)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 re (*.f64 re (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 re))
(fma.f64 (fma.f64 -1/2 re -1/2) (*.f64 im im) (+.f64 re 1))
(+.f64 re (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 1))
(+.f64 re (fma.f64 im (*.f64 im (fma.f64 re -1/2 -1/2)) 1))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4)))))
(fma.f64 (fma.f64 -1/2 re -1/2) (*.f64 im im) (+.f64 1 (+.f64 re (*.f64 (pow.f64 im 4) (fma.f64 1/24 re 1/24)))))
(+.f64 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) re) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 1))
(+.f64 1 (fma.f64 im (*.f64 im (fma.f64 re -1/2 -1/2)) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) re)))
(+.f64 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) re) (fma.f64 im (*.f64 im (fma.f64 re -1/2 -1/2)) 1))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 -1/720 re) 1/720) (pow.f64 im 6)) (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4))))))
(fma.f64 (fma.f64 -1/2 re -1/2) (*.f64 im im) (+.f64 1 (fma.f64 (fma.f64 -1/720 re -1/720) (pow.f64 im 6) (+.f64 re (*.f64 (pow.f64 im 4) (fma.f64 1/24 re 1/24))))))
(+.f64 (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) re)) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 1))
(+.f64 1 (fma.f64 im (*.f64 im (fma.f64 re -1/2 -1/2)) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) re))))
(+.f64 1 (fma.f64 im (*.f64 im (fma.f64 re -1/2 -1/2)) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) re))))
(cos.f64 im)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))

eval80.0ms (1.5%)

Compiler

Compiled 2982 to 1535 computations (48.5% saved)

prune35.0ms (0.7%)

Pruning

12 alts after pruning (6 fresh and 6 done)

PrunedKeptTotal
New2055210
Fresh011
Picked011
Done055
Total20512217
Error
0b
Counts
217 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
26.2b
(+.f64 re (cos.f64 im))
25.8b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
26.0b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
25.9b
(*.f64 (cos.f64 im) (+.f64 re 1))
26.2b
(cos.f64 im)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
61.8b
(*.f64 (cos.f64 im) re)
43.9b
(+.f64 1 re)
26.0b
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
18.8b
(exp.f64 re)
Compiler

Compiled 146 to 108 computations (26% saved)

localize12.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.5b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
0.1b
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
0.0b
(exp.f64 (exp.f64 re))
0.0b
(exp.f64 (exp.f64 re))
0.1b
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
0.5b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
Compiler

Compiled 24 to 7 computations (70.8% saved)

series173.0ms (3.3%)

Counts
3 → 52
Calls

15 calls:

TimeVariablePointExpression
56.0ms
re
@-inf
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
52.0ms
re
@inf
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
31.0ms
im
@inf
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
15.0ms
im
@-inf
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
11.0ms
im
@0
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))

rewrite48.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
705×pow1_binary64
645×add-log-exp_binary64
645×log1p-expm1-u_binary64
645×expm1-log1p-u_binary64
627×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
115223
2178823
Stop Event
node limit
Counts
3 → 66
Calls
Call 1
Inputs
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(exp.f64 (exp.f64 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) 2) (cos.f64 im)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2) (*.f64 (cbrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (sqrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (cos.f64 im))) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (exp.f64 re)) 2)) (cbrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (exp.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 re) 3) (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) 2) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) 2) (cos.f64 im))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))) (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 (cos.f64 im)) (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) 2) (cos.f64 im)) (pow.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (exp.f64 (exp.f64 re))) (cos.f64 im)) (pow.f64 (sqrt.f64 (exp.f64 (exp.f64 re))) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) 2) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) (pow.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) 2) (cbrt.f64 (exp.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 (exp.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2)) (cbrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (exp.f64 re))))))))

simplify69.0ms (1.3%)

Algorithm
egg-herbie
Rules
386×distribute-rgt-in_binary64
383×*-commutative_binary64
383×distribute-lft-in_binary64
377×associate-+l+_binary64
367×associate-+r+_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01291013
1414970
21528909
34769862
45800850
Stop Event
node limit
Counts
118 → 103
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2)))) (*.f64 -1 (pow.f64 (cos.f64 im) 2)))))))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -6 (*.f64 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2))) (cos.f64 im))) (+.f64 (*.f64 2 (pow.f64 (cos.f64 im) 3)) (*.f64 6 (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))))))) (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2)))) (*.f64 -1 (pow.f64 (cos.f64 im) 2))))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -3 (pow.f64 (exp.f64 re) 2)) (*.f64 24 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -3 (pow.f64 (exp.f64 re) 2)) (*.f64 24 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 1/720 (*.f64 (+.f64 (*.f64 -30 (pow.f64 (exp.f64 re) 3)) (+.f64 (*.f64 720 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re))))) (*.f64 360 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))))) (pow.f64 im 6))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 (cos.f64 im))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2)))))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2))) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re)))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(exp.f64 1)
(+.f64 (*.f64 re (exp.f64 1)) (exp.f64 1))
(+.f64 (*.f64 re (exp.f64 1)) (+.f64 (*.f64 (pow.f64 re 2) (exp.f64 1)) (exp.f64 1)))
(+.f64 (*.f64 re (exp.f64 1)) (+.f64 (*.f64 (pow.f64 re 2) (exp.f64 1)) (+.f64 (*.f64 5/6 (*.f64 (pow.f64 re 3) (exp.f64 1))) (exp.f64 1))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2)))) (*.f64 -1 (pow.f64 (cos.f64 im) 2)))))))
(+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (*.f64 1/2 (*.f64 (*.f64 re re) (fma.f64 2 (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (neg.f64 (pow.f64 (cos.f64 im) 2))))))
(fma.f64 (cos.f64 im) re (fma.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (*.f64 1 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (pow.f64 (cos.f64 im) 2))) (cos.f64 im)))
(fma.f64 (cos.f64 im) re (fma.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (cos.f64 im) (*.f64 (pow.f64 (cos.f64 im) 2) 0))) (cos.f64 im)))
(fma.f64 (cos.f64 im) re (fma.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (cos.f64 im) 0)) (cos.f64 im)))
(fma.f64 (cos.f64 im) re (fma.f64 (*.f64 1/2 (*.f64 re re)) (cos.f64 im) (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -6 (*.f64 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2))) (cos.f64 im))) (+.f64 (*.f64 2 (pow.f64 (cos.f64 im) 3)) (*.f64 6 (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))))))) (*.f64 1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 im)) (*.f64 1/2 (pow.f64 (cos.f64 im) 2)))) (*.f64 -1 (pow.f64 (cos.f64 im) 2))))))))
(+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (fma.f64 1/6 (*.f64 (pow.f64 re 3) (fma.f64 -6 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2)))) (fma.f64 2 (pow.f64 (cos.f64 im) 3) (*.f64 6 (fma.f64 1/6 (cos.f64 im) (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))) (*.f64 1/2 (*.f64 (*.f64 re re) (fma.f64 2 (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (neg.f64 (pow.f64 (cos.f64 im) 2)))))))
(+.f64 (fma.f64 1/2 (*.f64 (*.f64 re re) (-.f64 (*.f64 1 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (pow.f64 (cos.f64 im) 2))) (*.f64 (fma.f64 (*.f64 -3 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (cos.f64 im) (fma.f64 6 (fma.f64 (cos.f64 im) 1/6 (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))) (*.f64 2 (pow.f64 (cos.f64 im) 3)))) (*.f64 1/6 (pow.f64 re 3)))) (*.f64 (+.f64 re 1) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) (fma.f64 (*.f64 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)) -3) (cos.f64 im) (fma.f64 2 (pow.f64 (cos.f64 im) 3) (+.f64 (cos.f64 im) (*.f64 6 (*.f64 (pow.f64 (cos.f64 im) 2) (+.f64 (*.f64 (cos.f64 im) 1/6) 1/2)))))))) (fma.f64 (cos.f64 im) re (fma.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (cos.f64 im) (*.f64 (pow.f64 (cos.f64 im) 2) 0))) (cos.f64 im))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 1/6 (fma.f64 (*.f64 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)) -3) (cos.f64 im) (fma.f64 2 (pow.f64 (cos.f64 im) 3) (+.f64 (cos.f64 im) (*.f64 6 (*.f64 (pow.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 (cos.f64 im) 1/6))))))))) (fma.f64 (cos.f64 im) re (fma.f64 1/2 (*.f64 (*.f64 re re) (+.f64 (cos.f64 im) 0)) (cos.f64 im))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 1/6 (fma.f64 (*.f64 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)) -3) (cos.f64 im) (fma.f64 2 (pow.f64 (cos.f64 im) 3) (+.f64 (cos.f64 im) (*.f64 6 (*.f64 (pow.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 (cos.f64 im) 1/6))))))))) (fma.f64 (cos.f64 im) re (fma.f64 (*.f64 1/2 (*.f64 re re)) (cos.f64 im) (cos.f64 im))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(fma.f64 (*.f64 (exp.f64 re) -1/2) (*.f64 im im) (exp.f64 re))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 im im)) 1) (exp.f64 re))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) 1))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -3 (pow.f64 (exp.f64 re) 2)) (*.f64 24 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (fma.f64 -3 (pow.f64 (exp.f64 re) 2) (*.f64 24 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)))) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (fma.f64 -3 (pow.f64 (exp.f64 re) 2) (+.f64 (*.f64 (exp.f64 re) 1) (*.f64 3 (pow.f64 (exp.f64 re) 2)))) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 2) 0)) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 (exp.f64 re) 0) (pow.f64 im 4)) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -3 (pow.f64 (exp.f64 re) 2)) (*.f64 24 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 1/720 (*.f64 (+.f64 (*.f64 -30 (pow.f64 (exp.f64 re) 3)) (+.f64 (*.f64 720 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re))))) (*.f64 360 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))))))) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (fma.f64 -3 (pow.f64 (exp.f64 re) 2) (*.f64 24 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)))) (pow.f64 im 4)) (exp.f64 re)) (*.f64 1/720 (*.f64 (fma.f64 -30 (pow.f64 (exp.f64 re) 3) (fma.f64 720 (fma.f64 -1/48 (pow.f64 (exp.f64 re) 2) (fma.f64 -1/48 (pow.f64 (exp.f64 re) 3) (*.f64 (exp.f64 re) -1/720))) (*.f64 360 (*.f64 (exp.f64 re) (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)))))) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))) (fma.f64 1/24 (*.f64 (fma.f64 -3 (pow.f64 (exp.f64 re) 2) (+.f64 (*.f64 (exp.f64 re) 1) (*.f64 3 (pow.f64 (exp.f64 re) 2)))) (pow.f64 im 4)) (fma.f64 1/720 (*.f64 (fma.f64 -30 (pow.f64 (exp.f64 re) 3) (fma.f64 720 (fma.f64 (pow.f64 (exp.f64 re) 2) -1/48 (fma.f64 (pow.f64 (exp.f64 re) 3) -1/48 (*.f64 (exp.f64 re) -1/720))) (*.f64 (fma.f64 (exp.f64 re) 1/24 (*.f64 (pow.f64 (exp.f64 re) 2) 1/8)) (*.f64 (exp.f64 re) 360)))) (pow.f64 im 6)) (exp.f64 re))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 (exp.f64 re) (*.f64 (pow.f64 (exp.f64 re) 2) 0)) (pow.f64 im 4)) (fma.f64 1/720 (*.f64 (fma.f64 -30 (pow.f64 (exp.f64 re) 3) (fma.f64 720 (fma.f64 (pow.f64 (exp.f64 re) 2) -1/48 (fma.f64 (pow.f64 (exp.f64 re) 3) -1/48 (*.f64 (exp.f64 re) -1/720))) (*.f64 360 (*.f64 (pow.f64 (exp.f64 re) 2) (+.f64 (*.f64 (exp.f64 re) 1/8) 1/24))))) (pow.f64 im 6)) (exp.f64 re))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 (exp.f64 re) 0) (pow.f64 im 4)) (fma.f64 1/720 (*.f64 (fma.f64 -30 (pow.f64 (exp.f64 re) 3) (fma.f64 720 (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 -1/48 (+.f64 (exp.f64 re) (pow.f64 (exp.f64 2) re))))) (*.f64 360 (*.f64 (pow.f64 (exp.f64 2) re) (+.f64 (*.f64 (exp.f64 re) 1/8) 1/24))))) (pow.f64 im 6)) (exp.f64 re))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 1/720 (*.f64 (fma.f64 -30 (pow.f64 (exp.f64 re) 3) (fma.f64 720 (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 -1/48 (+.f64 (exp.f64 re) (pow.f64 (exp.f64 2) re))))) (*.f64 360 (*.f64 (pow.f64 (exp.f64 2) re) (+.f64 (*.f64 (exp.f64 re) 1/8) 1/24))))) (pow.f64 im 6)) (exp.f64 re))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 (cos.f64 im))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) (exp.f64 (cos.f64 im))))
(*.f64 (+.f64 (*.f64 (cos.f64 im) re) 1) (exp.f64 (cos.f64 im)))
(*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (cos.f64 im) re) 1))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2)))))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (cos.f64 im) re) (*.f64 (*.f64 re re) (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2)))))))
(fma.f64 (exp.f64 (cos.f64 im)) (fma.f64 (cos.f64 im) re (*.f64 1/2 (*.f64 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2)) (*.f64 re re)))) (exp.f64 (cos.f64 im)))
(*.f64 (+.f64 (*.f64 re (+.f64 (cos.f64 im) (*.f64 re (*.f64 1/2 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)))))) 1) (exp.f64 (cos.f64 im)))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2))) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(+.f64 (exp.f64 (cos.f64 im)) (fma.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2)))) (*.f64 (pow.f64 re 3) (fma.f64 1/6 (cos.f64 im) (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (fma.f64 (cos.f64 im) re (*.f64 1/2 (*.f64 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2)) (*.f64 re re)))) (*.f64 (pow.f64 re 3) (fma.f64 (cos.f64 im) 1/6 (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))))))
(*.f64 (exp.f64 (cos.f64 im)) (+.f64 (+.f64 (*.f64 (cos.f64 im) re) 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re (fma.f64 (cos.f64 im) 1/6 (*.f64 (pow.f64 (cos.f64 im) 2) (+.f64 (*.f64 (cos.f64 im) 1/6) 1/2)))) (*.f64 1/2 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)))))))
(*.f64 (exp.f64 (cos.f64 im)) (+.f64 (+.f64 (*.f64 (cos.f64 im) re) 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re (fma.f64 (cos.f64 im) 1/6 (*.f64 (pow.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 (cos.f64 im) 1/6))))) (*.f64 1/2 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im)))))))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re)))
(*.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))) 1) (exp.f64 (exp.f64 re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re))))
(fma.f64 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re))))
(fma.f64 (fma.f64 (exp.f64 re) 1/24 (*.f64 (pow.f64 (exp.f64 re) 2) 1/8)) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re))))
(+.f64 (exp.f64 (exp.f64 re)) (*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))) (*.f64 (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (pow.f64 im 4)))))
(*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (pow.f64 im 4)) 1)))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re)))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))))
(fma.f64 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 (fma.f64 -1/48 (pow.f64 (exp.f64 re) 2) (fma.f64 -1/48 (pow.f64 (exp.f64 re) 3) (*.f64 (exp.f64 re) -1/720))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re)))))
(+.f64 (fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re))) (*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (fma.f64 (exp.f64 re) 1/24 (*.f64 (pow.f64 (exp.f64 re) 2) 1/8)) (pow.f64 im 4)) (*.f64 (fma.f64 (pow.f64 (exp.f64 re) 2) -1/48 (fma.f64 (pow.f64 (exp.f64 re) 3) -1/48 (*.f64 (exp.f64 re) -1/720))) (pow.f64 im 6)))))
(+.f64 (*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (fma.f64 (pow.f64 (exp.f64 re) 2) -1/48 (fma.f64 (pow.f64 (exp.f64 re) 3) -1/48 (*.f64 (exp.f64 re) -1/720))) (pow.f64 im 6)) (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))))) (*.f64 (+.f64 (*.f64 (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (pow.f64 im 4)) 1) (exp.f64 (exp.f64 re))))
(*.f64 (exp.f64 (exp.f64 re)) (+.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))) 1) (+.f64 (*.f64 (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 -1/48 (+.f64 (exp.f64 re) (pow.f64 (exp.f64 2) re))))) (pow.f64 im 6)) (*.f64 (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (pow.f64 im 4)))))
(*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 -1/48 (+.f64 (exp.f64 re) (pow.f64 (exp.f64 2) re))))) (pow.f64 im 6)) (+.f64 (*.f64 (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (pow.f64 im 4)) 1))))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
(pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))
(pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))
(exp.f64 1)
(E.f64)
(+.f64 (*.f64 re (exp.f64 1)) (exp.f64 1))
(fma.f64 re (E.f64) (E.f64))
(+.f64 (*.f64 re (exp.f64 1)) (+.f64 (*.f64 (pow.f64 re 2) (exp.f64 1)) (exp.f64 1)))
(fma.f64 re (E.f64) (fma.f64 (*.f64 re re) (E.f64) (E.f64)))
(*.f64 (E.f64) (+.f64 re (fma.f64 re re 1)))
(+.f64 (*.f64 re (exp.f64 1)) (+.f64 (*.f64 (pow.f64 re 2) (exp.f64 1)) (+.f64 (*.f64 5/6 (*.f64 (pow.f64 re 3) (exp.f64 1))) (exp.f64 1))))
(fma.f64 re (E.f64) (fma.f64 (*.f64 re re) (E.f64) (fma.f64 5/6 (*.f64 (pow.f64 re 3) (E.f64)) (E.f64))))
(+.f64 (*.f64 (E.f64) (+.f64 re (fma.f64 re re 1))) (*.f64 (pow.f64 re 3) (*.f64 (E.f64) 5/6)))
(*.f64 (E.f64) (+.f64 (+.f64 re (fma.f64 re re 1)) (*.f64 (pow.f64 re 3) 5/6)))

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 im) re)
0.1b
(*.f64 (cos.f64 im) re)
Compiler

Compiled 10 to 4 computations (60% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

localize5.0ms (0.1%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize29.0ms (0.5%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
0.2b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
0.1b
(*.f64 (cos.f64 im) (+.f64 1 re))
0.1b
(*.f64 (cos.f64 im) (+.f64 1 re))
0.2b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
0.3b
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
Compiler

Compiled 34 to 21 computations (38.2% saved)

series7.0ms (0.1%)

Counts
3 → 68
Calls

18 calls:

TimeVariablePointExpression
1.0ms
im
@0
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
0.0ms
im
@inf
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
0.0ms
re
@inf
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
0.0ms
im
@-inf
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
0.0ms
re
@0
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))

rewrite79.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
779×prod-diff_binary64
609×fma-def_binary64
419×log-prod_binary64
260×fma-neg_binary64
242×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0942
120628
2295028
Stop Event
node limit
Counts
3 → 300
Calls
Call 1
Inputs
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
(*.f64 (cos.f64 im) (+.f64 1 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))) (/.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2) (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (*.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2)) (/.f64 1 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1) (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2) (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2)) (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))) (neg.f64 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))) (neg.f64 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2) 1) (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) 1) (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2)) 1) (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1) (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) 1 (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (+.f64 1 re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 re) (cos.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 re)) 2) (*.f64 (cbrt.f64 (+.f64 1 re)) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) 1) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 re)) (*.f64 (hypot.f64 1 (sqrt.f64 re)) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) 1) (fma.f64 (cos.f64 im) re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (/.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (+.f64 1 re)) 2)) (cbrt.f64 (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (hypot.f64 1 (sqrt.f64 re))) (hypot.f64 1 (sqrt.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 (cos.f64 im) (+.f64 1 re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 re)) 2) (*.f64 (cbrt.f64 (+.f64 1 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (sqrt.f64 re)) (*.f64 (hypot.f64 1 (sqrt.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (/.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (+.f64 1 re)) 2)) (cbrt.f64 (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (hypot.f64 1 (sqrt.f64 re))) (hypot.f64 1 (sqrt.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (-.f64 1 (*.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)) (neg.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (*.f64 (cos.f64 im) re) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 2)) (-.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 (*.f64 (cos.f64 im) re) 2)) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (fma.f64 re (-.f64 re 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 re re)) (cos.f64 im)) (-.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (fma.f64 re (-.f64 re 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (-.f64 1 (*.f64 re re))) (-.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 im))) (exp.f64 (*.f64 (cos.f64 im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 im) re)) (exp.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 im) re)) (+.f64 1 (expm1.f64 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) 1 (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) 1 (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) re (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (+.f64 1 re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 re) (cos.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 re)) 2) (*.f64 (cbrt.f64 (+.f64 1 re)) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) 1) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) 1) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (*.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 re)) (*.f64 (hypot.f64 1 (sqrt.f64 re)) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) 1) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) 1) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (/.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2)) (/.f64 1 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) re)) 2) (cbrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) re)) (sqrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (hypot.f64 1 (sqrt.f64 re)) (sqrt.f64 (cos.f64 im)) 1) (fma.f64 (hypot.f64 1 (sqrt.f64 re)) (sqrt.f64 (cos.f64 im)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 re) (sqrt.f64 (cos.f64 im))) (*.f64 (sqrt.f64 re) (sqrt.f64 (cos.f64 im))) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (sqrt.f64 re)) (sqrt.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (+.f64 1 re)) 2)) (cbrt.f64 (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (hypot.f64 1 (sqrt.f64 re))) (hypot.f64 1 (sqrt.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 re) (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log1p.f64 re) (log.f64 (cos.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 (cos.f64 im) (+.f64 1 re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (/.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (-.f64 1 (*.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)) (neg.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 (*.f64 (cos.f64 im) re) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 2)) (-.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 (*.f64 (cos.f64 im) re) 2)) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (fma.f64 re (-.f64 re 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 re re)) (cos.f64 im)) (-.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (fma.f64 re (-.f64 re 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (-.f64 1 (*.f64 re re))) (-.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 2) (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 1 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 1 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 im))) (exp.f64 (*.f64 (cos.f64 im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 im) re)) (exp.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 im) re)) (+.f64 1 (expm1.f64 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 im) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) 1 (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) 1 (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) re (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (+.f64 1 re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 re) (cos.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 re)) 2) (*.f64 (cbrt.f64 (+.f64 1 re)) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) 1) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) 1) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) (*.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 re)) (*.f64 (hypot.f64 1 (sqrt.f64 re)) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) 1) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) 1) (*.f64 (*.f64 (cos.f64 im) re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) (fma.f64 (cos.f64 im) (+.f64 1 re) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1) 2) -1) (/.f64 1 (fma.f64 (cos.f64 im) (+.f64 1 re) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 2)) (/.f64 1 (-.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) re)) 2) (cbrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 2) (cbrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) re)) (sqrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (cos.f64 im) (+.f64 1 re) 1)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (hypot.f64 1 (sqrt.f64 re)) (sqrt.f64 (cos.f64 im)) 1) (fma.f64 (hypot.f64 1 (sqrt.f64 re)) (sqrt.f64 (cos.f64 im)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 re)) (*.f64 (sqrt.f64 (cos.f64 im)) (sqrt.f64 re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 re) (sqrt.f64 (cos.f64 im))) (*.f64 (sqrt.f64 re) (sqrt.f64 (cos.f64 im))) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (sqrt.f64 re)) (sqrt.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (+.f64 1 re)) 2)) (cbrt.f64 (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (hypot.f64 1 (sqrt.f64 re))) (hypot.f64 1 (sqrt.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) (sqrt.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (fma.f64 (cos.f64 im) (+.f64 1 re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 re) (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log1p.f64 re) (log.f64 (cos.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 1 re))) 1))))))

simplify153.0ms (2.9%)

Algorithm
egg-herbie
Rules
617×distribute-rgt-in_binary64
613×distribute-lft-in_binary64
527×distribute-rgt-out_binary64
520×associate-*l*_binary64
465×distribute-lft-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
039788
1107770
2338734
31190730
42967726
56331726
66507726
76746726
86965726
97238726
107575726
Stop Event
node limit
Counts
368 → 216
Calls
Call 1
Inputs
(+.f64 2 re)
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 1 (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
(+.f64 2 re)
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im)))))
(+.f64 2 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re))
(+.f64 2 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re))
(fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) (+.f64 2 re))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im))))))
(+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) 2))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 2))
(fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) (+.f64 2 re)))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 re 1) (pow.f64 im 6)) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im)))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 (+.f64 -1/720 (*.f64 re -1/720)) (pow.f64 im 6) 2)))
(+.f64 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 2) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re)))
(+.f64 (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 2) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 2)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 re 1) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im))))
(+.f64 1 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re))
(+.f64 re (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 1))
(fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) (+.f64 re 1))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im)))))
(+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 (+.f64 1/24 (*.f64 re 1/24)) (pow.f64 im 4) 1))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 1))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 re 1) (pow.f64 im 6)) (+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 (+.f64 -1/720 (*.f64 re -1/720)) (pow.f64 im 6) 1)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 1)))
(fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 im 6))))))
(*.f64 (+.f64 re 1) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))) (+.f64 1 (*.f64 -1/720 (pow.f64 im 6)))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im))))
(+.f64 1 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re))
(+.f64 re (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 1))
(fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) (+.f64 re 1))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im)))))
(+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 (+.f64 1/24 (*.f64 re 1/24)) (pow.f64 im 4) 1))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 1))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 re 1) (pow.f64 im 6)) (+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (+.f64 re 1) (*.f64 im im))))))
(fma.f64 1/24 (*.f64 (+.f64 re 1) (pow.f64 im 4)) (+.f64 (fma.f64 (+.f64 -1/2 (*.f64 re -1/2)) (*.f64 im im) re) (fma.f64 (+.f64 -1/720 (*.f64 re -1/720)) (pow.f64 im 6) 1)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 1)))
(fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 im 6))))))
(*.f64 (+.f64 re 1) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))) (+.f64 1 (*.f64 -1/720 (pow.f64 im 6)))))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))

eval98.0ms (1.9%)

Compiler

Compiled 5200 to 2984 computations (42.6% saved)

prune50.0ms (0.9%)

Pruning

15 alts after pruning (5 fresh and 10 done)

PrunedKeptTotal
New3334337
Fresh011
Picked011
Done1910
Total33415349
Error
0b
Counts
349 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
25.8b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
26.0b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
43.9b
(-.f64 (+.f64 2 re) 1)
43.9b
(+.f64 1 re)
26.0b
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
0.7b
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
60.6b
(-.f64 (*.f64 (cos.f64 im) re) 1)
18.8b
(exp.f64 re)
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
26.2b
(+.f64 re (cos.f64 im))
25.9b
(*.f64 (cos.f64 im) (+.f64 re 1))
26.2b
(cos.f64 im)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
61.8b
(*.f64 (cos.f64 im) re)
61.9b
re
Compiler

Compiled 112 to 83 computations (25.9% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 im) re)
0.1b
(*.f64 (cos.f64 im) re)
Compiler

Compiled 17 to 7 computations (58.8% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

localize12.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.5b
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
0.1b
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.1b
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
0.5b
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
Compiler

Compiled 26 to 7 computations (73.1% saved)

series4.0ms (0.1%)

Counts
2 → 32
Calls

12 calls:

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

rewrite43.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
604×pow1_binary64
550×add-log-exp_binary64
550×log1p-expm1-u_binary64
550×expm1-log1p-u_binary64
536×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
113718
2152118
Stop Event
node limit
Counts
2 → 51
Calls
Call 1
Inputs
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
(exp.f64 (*.f64 (exp.f64 re) (cos.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (*.f64 2 (cos.f64 im))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2) (*.f64 (cbrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (sqrt.f64 (exp.f64 re)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 re) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (exp.f64 re)) 2)) (cbrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (*.f64 2 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (*.f64 2 (cos.f64 im)))) (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))) (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (exp.f64 re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im)))) (sqrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))) 2)) (cbrt.f64 (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (exp.f64 re)) (*.f64 2 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 im)) (exp.f64 re))))))))

simplify91.0ms (1.7%)

Algorithm
egg-herbie
Rules
689×fma-def_binary64
589×distribute-rgt-out_binary64
492×distribute-rgt-in_binary64
468×distribute-lft-in_binary64
445×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
085596
1252570
2798540
33999516
47371516
57566516
67908516
Stop Event
node limit
Counts
83 → 79
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 (cos.f64 im))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2)))))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2))) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(exp.f64 (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re)))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))))
(fma.f64 (+.f64 re 1) (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 re (*.f64 re 1/2)))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/6 re) 1/2)) (+.f64 re 1)))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(*.f64 (+.f64 (*.f64 im (*.f64 im -1/2)) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 im (*.f64 im -1/2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 (*.f64 (exp.f64 re) -1/720) (pow.f64 im 6) (exp.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/720 (pow.f64 im 6)) 1) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))) (*.f64 im (*.f64 im -1/2)))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 (cos.f64 im))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (*.f64 (cos.f64 im) re) (exp.f64 (cos.f64 im))))
(*.f64 (+.f64 (*.f64 (cos.f64 im) re) 1) (exp.f64 (cos.f64 im)))
(*.f64 (exp.f64 (cos.f64 im)) (fma.f64 (cos.f64 im) re 1))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2)))))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (cos.f64 im) re) (*.f64 (*.f64 re re) (*.f64 1/2 (+.f64 (pow.f64 (cos.f64 im) 2) (cos.f64 im)))))))
(fma.f64 (exp.f64 (cos.f64 im)) (fma.f64 (cos.f64 im) re (*.f64 (*.f64 re re) (*.f64 1/2 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im))))) (exp.f64 (cos.f64 im)))
(*.f64 (+.f64 (*.f64 re (+.f64 (cos.f64 im) (*.f64 (*.f64 re 1/2) (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))))) 1) (exp.f64 (cos.f64 im)))
(*.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re (*.f64 (*.f64 re (*.f64 re 1/2)) (+.f64 (cos.f64 im) 1))))) (exp.f64 (cos.f64 im)))
(*.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re (*.f64 (+.f64 (cos.f64 im) 1) (*.f64 re (*.f64 re 1/2)))))) (exp.f64 (cos.f64 im)))
(+.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re)) (+.f64 (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/2 (cos.f64 im))) (pow.f64 re 2))) (*.f64 (exp.f64 (cos.f64 im)) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/6 (cos.f64 im)) (+.f64 (*.f64 1/2 (pow.f64 (cos.f64 im) 2)) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(+.f64 (exp.f64 (cos.f64 im)) (fma.f64 (exp.f64 (cos.f64 im)) (*.f64 (cos.f64 im) re) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (*.f64 re re) (*.f64 1/2 (+.f64 (pow.f64 (cos.f64 im) 2) (cos.f64 im)))) (*.f64 (pow.f64 re 3) (fma.f64 1/6 (cos.f64 im) (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3)))))))))
(+.f64 (exp.f64 (cos.f64 im)) (*.f64 (exp.f64 (cos.f64 im)) (+.f64 (fma.f64 (cos.f64 im) re (*.f64 (*.f64 re re) (*.f64 1/2 (fma.f64 (cos.f64 im) (cos.f64 im) (cos.f64 im))))) (*.f64 (pow.f64 re 3) (fma.f64 (cos.f64 im) 1/6 (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (pow.f64 (cos.f64 im) 3))))))))
(*.f64 (exp.f64 (cos.f64 im)) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/2 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))) (*.f64 re (fma.f64 1/2 (pow.f64 (cos.f64 im) 2) (*.f64 1/6 (+.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 3))))))) (fma.f64 (cos.f64 im) re 1)))
(*.f64 (+.f64 (*.f64 re (+.f64 (cos.f64 im) (*.f64 re (+.f64 (*.f64 (cos.f64 im) (+.f64 1/2 (*.f64 (cos.f64 im) 1/2))) (*.f64 re (*.f64 (cos.f64 im) (+.f64 1/6 (*.f64 (cos.f64 im) (+.f64 1/2 (*.f64 (cos.f64 im) 1/6)))))))))) 1) (exp.f64 (cos.f64 im)))
(exp.f64 (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re)))
(*.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2))) 1) (exp.f64 (exp.f64 re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re))))
(fma.f64 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re))))
(fma.f64 (fma.f64 (exp.f64 re) 1/24 (*.f64 1/8 (pow.f64 (exp.f64 re) 2))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re))))
(fma.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 (+.f64 re (exp.f64 re))))) (*.f64 (+.f64 (*.f64 (pow.f64 im 4) (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8)))) 1) (exp.f64 (exp.f64 re))))
(*.f64 (exp.f64 (exp.f64 re)) (+.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2))) 1) (*.f64 (pow.f64 im 4) (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))))))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)) (*.f64 1/24 (exp.f64 re))) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 2)) (+.f64 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3)) (*.f64 -1/720 (exp.f64 re)))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (exp.f64 (exp.f64 re)) (pow.f64 im 2)))) (exp.f64 (exp.f64 re)))))
(fma.f64 (fma.f64 1/8 (pow.f64 (exp.f64 re) 2) (*.f64 (exp.f64 re) 1/24)) (*.f64 (pow.f64 im 4) (exp.f64 (exp.f64 re))) (fma.f64 (fma.f64 -1/48 (pow.f64 (exp.f64 re) 2) (fma.f64 -1/48 (pow.f64 (exp.f64 re) 3) (*.f64 (exp.f64 re) -1/720))) (*.f64 (pow.f64 im 6) (exp.f64 (exp.f64 re))) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 (*.f64 im im) (exp.f64 (exp.f64 re)))) (exp.f64 (exp.f64 re)))))
(+.f64 (fma.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 (+.f64 re (exp.f64 re)))) (exp.f64 (exp.f64 re))) (*.f64 (exp.f64 (exp.f64 re)) (+.f64 (*.f64 (pow.f64 im 4) (fma.f64 (exp.f64 re) 1/24 (*.f64 1/8 (pow.f64 (exp.f64 re) 2)))) (*.f64 (pow.f64 im 6) (fma.f64 (pow.f64 (exp.f64 re) 2) -1/48 (fma.f64 (exp.f64 re) -1/720 (*.f64 -1/48 (pow.f64 (exp.f64 re) 3))))))))
(fma.f64 (exp.f64 (exp.f64 re)) (fma.f64 (pow.f64 im 4) (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (*.f64 (pow.f64 im 6) (fma.f64 -1/48 (pow.f64 (exp.f64 re) 3) (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 (exp.f64 re) -1/48)))))) (*.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2))) 1) (exp.f64 (exp.f64 re))))
(*.f64 (exp.f64 (exp.f64 re)) (+.f64 (+.f64 (*.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2))) 1) (fma.f64 (pow.f64 im 4) (*.f64 (exp.f64 re) (+.f64 1/24 (*.f64 (exp.f64 re) 1/8))) (*.f64 (pow.f64 im 6) (*.f64 (exp.f64 re) (+.f64 -1/720 (*.f64 -1/48 (+.f64 (exp.f64 re) (pow.f64 (exp.f64 2) re)))))))))

localize17.0ms (0.3%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
0.0b
(+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))
0.0b
(*.f64 1/2 (*.f64 re re))
0.0b
(*.f64 1/2 (*.f64 re re))
0.0b
(+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))
0.1b
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
Compiler

Compiled 40 to 21 computations (47.5% saved)

series6.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

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

rewrite69.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
585×fma-def_binary64
568×log-prod_binary64
440×pow-prod-down_binary64
319×fma-neg_binary64
308×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01134
124334
2339230
Stop Event
node limit
Counts
3 → 156
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
(+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))
(*.f64 1/2 (*.f64 re re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 re (fma.f64 1/2 re 1)) (cos.f64 im)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) 1) (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (*.f64 re (fma.f64 1/2 re 1))) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (fma.f64 re (fma.f64 1/2 re 1) 1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (fma.f64 re (fma.f64 1/2 re 1) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (fma.f64 re (fma.f64 1/2 re 1) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 im)) (fma.f64 re (fma.f64 1/2 re 1) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 6) 1/8)) (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 3)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) 2) (-.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 2) (*.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) 2) (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 2)) (-.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3)) (cos.f64 im)) (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2)) (cos.f64 im)) (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3))) (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2))) (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 im)) (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (exp.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (+.f64 re 1) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) (*.f64 re (fma.f64 1/2 re 1)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) (*.f64 1/2 (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (*.f64 re re)) (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re 1) (cos.f64 im) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 re 1)) 2) (*.f64 (cbrt.f64 (+.f64 re 1)) (cos.f64 im)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/4)) (*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re re))) (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 re 1)) (*.f64 (sqrt.f64 (+.f64 re 1)) (cos.f64 im)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 1/2)) (*.f64 (*.f64 re (sqrt.f64 1/2)) (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))) 1 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 re) (*.f64 re (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (fma.f64 1/2 re 1)) (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re)))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re)))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (cos.f64 im)) (*.f64 re (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (cos.f64 im)) (*.f64 re (sqrt.f64 1/2))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 re re) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (*.f64 re re)) 1/2 (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/4))) (cbrt.f64 (*.f64 1/2 (*.f64 re re))) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (*.f64 re (sqrt.f64 1/2))) (*.f64 re (sqrt.f64 1/2)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (*.f64 1/2 re)) re (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (*.f64 re (sqrt.f64 1/2)) (cbrt.f64 (cos.f64 im))) 2) (cbrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/2 (*.f64 re re)) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (+.f64 re 1)) 2)) (cbrt.f64 (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 im) (sqrt.f64 (+.f64 re 1))) (sqrt.f64 (+.f64 re 1)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 re 1) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 re 1) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)) (*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (fma.f64 re (fma.f64 1/2 re 1) 1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 re (fma.f64 1/2 re 1) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 re 4) 1/4) (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re)) (/.f64 (pow.f64 (+.f64 re 1) 2) (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 re (fma.f64 1/2 re 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) (pow.f64 (cbrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) 2) (cbrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) (sqrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3)) (/.f64 1 (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2)) (/.f64 1 (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4)) (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re) (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3)) (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3)) (+.f64 (pow.f64 (+.f64 re 1) 2) (-.f64 (*.f64 (pow.f64 re 4) 1/4) (*.f64 1/2 (*.f64 (*.f64 re re) (+.f64 re 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2)) (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3))) (neg.f64 (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2))) (neg.f64 (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 re (fma.f64 1/2 re 1)) 3) 1) (+.f64 (pow.f64 (*.f64 re (fma.f64 1/2 re 1)) 2) (-.f64 1 (*.f64 (*.f64 re (fma.f64 1/2 re 1)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 re 1) 2) (*.f64 (pow.f64 re 4) 1/4)) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 re (fma.f64 1/2 re 1)) 2) 1) (fma.f64 re (fma.f64 1/2 re 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (+.f64 re 1) (-.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))) (*.f64 (pow.f64 re 4) 1/4)) (fma.f64 (pow.f64 re 6) 1/8 (pow.f64 (+.f64 re 1) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (fma.f64 1/2 (*.f64 re re) -1) re) (-.f64 (*.f64 (pow.f64 re 4) 1/4) (pow.f64 (+.f64 re 1) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 re (fma.f64 1/2 re 1) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re re)))) (exp.f64 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (sqrt.f64 (exp.f64 (*.f64 re re))) (+.f64 1 (expm1.f64 (+.f64 re 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re re)))) (+.f64 1 (expm1.f64 (+.f64 re 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 re 1))) (sqrt.f64 (exp.f64 (*.f64 re re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 re 1)) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 re 1))) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 re (fma.f64 1/2 re 1) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (*.f64 1/2 re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (fma.f64 1/2 re 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1/2 (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (*.f64 re re)) 1 (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 re 1) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re (fma.f64 1/2 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re 1) 1 (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) 1) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 re 1)) (pow.f64 (cbrt.f64 (+.f64 re 1)) 2) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 re 1)) 2) (cbrt.f64 (+.f64 re 1)) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 re) re) (*.f64 (pow.f64 (cbrt.f64 re) 2) 1/2) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re re))) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/4)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/4)) (cbrt.f64 (*.f64 1/2 (*.f64 re re))) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) 1) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 re 1)) (sqrt.f64 (+.f64 re 1)) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 1/2)) (*.f64 re (sqrt.f64 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 re re -1) (/.f64 1 (+.f64 re -1)) (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 re) re (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (fma.f64 1/2 re 1)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 re 1))) 2) (cbrt.f64 (*.f64 re (fma.f64 1/2 re 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cbrt.f64 re) re)) (sqrt.f64 (pow.f64 (cbrt.f64 re) 2)) (+.f64 1 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 re 1))) (sqrt.f64 (*.f64 re (fma.f64 1/2 re 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/2 re 1) re 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (*.f64 (cbrt.f64 re) re)) (pow.f64 (cbrt.f64 re) 2) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/2 re) 1) re (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/2 re) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/2 re) (sqrt.f64 re)) (sqrt.f64 re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 re 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 re (fma.f64 1/2 re 1) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (*.f64 re re)))) 2)) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (*.f64 re re))))) (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 re re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 re 4) 1/4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (sqrt.f64 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 re 6) 1/8) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 re 4) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (sqrt.f64 (exp.f64 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 re 6) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 2 (log.f64 re) (log.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 2 (log.f64 re) (log.f64 1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 re re))))))))

simplify133.0ms (2.5%)

Algorithm
egg-herbie
Rules
978×distribute-rgt-in_binary64
807×distribute-lft-in_binary64
561×sqr-pow_binary64
448×*-commutative_binary64
321×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042649
1121645
2404609
31853588
43548578
54294578
64446578
74617578
84787578
95009578
106754578
117161578
127598578
Stop Event
node limit
Counts
204 → 181
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 re 2))
Outputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(fma.f64 1/2 (*.f64 re re) (+.f64 1 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re)))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) re) (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 im im)) 1) (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(fma.f64 1/2 (*.f64 re re) (+.f64 1 (+.f64 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re) (*.f64 1/24 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 4))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 4)) re)) (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (+.f64 (fma.f64 1/2 (*.f64 re re) re) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))))))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (*.f64 im im)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(fma.f64 1/2 (*.f64 re re) (fma.f64 -1/720 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 6)) (+.f64 1 (+.f64 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re) (*.f64 1/24 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 4)))))))
(fma.f64 1/2 (*.f64 re re) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 4)) re)) (fma.f64 -1/720 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 6)) 1)))
(+.f64 (fma.f64 (pow.f64 im 6) (+.f64 -1/720 (*.f64 (fma.f64 1/2 (*.f64 re re) re) -1/720)) 1) (+.f64 (fma.f64 1/2 (*.f64 re re) re) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))))))
(+.f64 (fma.f64 1/2 (*.f64 re re) 1) (+.f64 re (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 (*.f64 -1/2 (*.f64 im im)) (*.f64 1/24 (pow.f64 im 4)))))))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))))
(*.f64 re (*.f64 (*.f64 1/2 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(fma.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)) (*.f64 re (cos.f64 im)))
(fma.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))))
(*.f64 re (*.f64 (*.f64 1/2 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(fma.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)) (*.f64 re (cos.f64 im)))
(fma.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 2 re) 1)
0.0b
(-.f64 (+.f64 2 re) 1)
Compiler

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
re
@0
(-.f64 (+.f64 2 re) 1)
0.0ms
re
@inf
(-.f64 (+.f64 2 re) 1)
0.0ms
re
@-inf
(-.f64 (+.f64 2 re) 1)

rewrite47.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
722×pow1_binary64
680×add-log-exp_binary64
679×log1p-expm1-u_binary64
679×expm1-log1p-u_binary64
670×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
067
11384
218174
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(-.f64 (+.f64 2 re) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 re -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (*.f64 (+.f64 re -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 re 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 2 re) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 2 re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 re -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 re 1)) (pow.f64 (cbrt.f64 (+.f64 re 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 re 1)) 2) (cbrt.f64 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 re 1)) (sqrt.f64 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 2 re) 3) -1) (/.f64 1 (+.f64 (pow.f64 (+.f64 2 re) 2) (+.f64 re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) -1) (/.f64 1 (+.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 2 re)) 1) (-.f64 (sqrt.f64 (+.f64 2 re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) (+.f64 re 3)) (+.f64 (pow.f64 (+.f64 2 re) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 re 3) (+.f64 (pow.f64 (+.f64 2 re) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 2 re) 3) -1) (+.f64 (pow.f64 (+.f64 2 re) 2) (+.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 2 re) 3) -1) (+.f64 (pow.f64 (+.f64 2 re) 2) (-.f64 1 (*.f64 (+.f64 2 re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) -1) (+.f64 re 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) -1) (-.f64 (+.f64 2 re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 2 re) 3) -1)) (neg.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) (+.f64 re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 2 re) 2) -1)) (neg.f64 (+.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 8 (pow.f64 (+.f64 re -1) 3)) (+.f64 4 (-.f64 (*.f64 (+.f64 re -1) (+.f64 re -1)) (*.f64 2 (+.f64 re -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 4 (*.f64 (+.f64 re -1) (+.f64 re -1))) (-.f64 2 (+.f64 re -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 re 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 re 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 re 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 re 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 re 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 2 re) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 2 re)) 2) (cbrt.f64 (+.f64 2 re)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 2 re)) (sqrt.f64 (+.f64 2 re)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (+.f64 2 re)))))))

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0439
1739
Stop Event
saturated
Counts
49 → 40
Calls
Call 1
Inputs
1
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
Outputs
1
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)

eval103.0ms (2%)

Compiler

Compiled 5152 to 2963 computations (42.5% saved)

prune57.0ms (1.1%)

Pruning

19 alts after pruning (5 fresh and 14 done)

PrunedKeptTotal
New3385343
Fresh101
Picked011
Done01313
Total33919358
Error
0b
Counts
358 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
25.9b
(*.f64 (cos.f64 im) (+.f64 re 1))
26.0b
(*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/6 re) 1/2)) (+.f64 re 1)))
25.8b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
26.0b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
43.9b
(+.f64 1 re)
61.9b
re
43.9b
(-.f64 (+.f64 2 re) 1)
60.7b
(-.f64 re 1)
26.0b
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
0.7b
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
43.9b
1
60.6b
(-.f64 (*.f64 (cos.f64 im) re) 1)
18.8b
(exp.f64 re)
0.2b
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
26.2b
(+.f64 re (cos.f64 im))
26.2b
(cos.f64 im)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
61.8b
(*.f64 (cos.f64 im) re)
62.0b
(*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re)))
Compiler

Compiled 148 to 110 computations (25.7% saved)

regimes42.0ms (0.8%)

Counts
19 → 1
Calls
Call 1
Inputs
1
re
(-.f64 re 1)
(+.f64 1 re)
(-.f64 (+.f64 2 re) 1)
(cos.f64 im)
(exp.f64 re)
(*.f64 (cos.f64 im) re)
(+.f64 re (cos.f64 im))
(-.f64 (*.f64 (cos.f64 im) re) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 re re)))
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 re))) 1)
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/6 re) 1/2)) (+.f64 re 1)))
(*.f64 (exp.f64 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(log.f64 (exp.f64 (*.f64 (exp.f64 re) (cos.f64 im))))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 3))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
Calls

5 calls:

10.0ms
im
9.0ms
re
8.0ms
(cos.f64 im)
7.0ms
(*.f64 (exp.f64 re) (cos.f64 im))
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (exp.f64 re) (cos.f64 im))
0.0b1(exp.f64 re)
0.0b1(cos.f64 im)
Compiler

Compiled 133 to 68 computations (48.9% saved)

regimes99.0ms (1.9%)

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

5 calls:

37.0ms
(cos.f64 im)
35.0ms
im
15.0ms
re
4.0ms
(exp.f64 re)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.6b2re
9.5b5im
0.6b2(exp.f64 re)
0.6b2(exp.f64 re)
8.8b6(cos.f64 im)
Compiler

Compiled 103 to 59 computations (42.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.068304995694338e-44
0.9967433397550199
Compiler

Compiled 12 to 9 computations (25% saved)

regimes93.0ms (1.8%)

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

5 calls:

34.0ms
(cos.f64 im)
33.0ms
im
15.0ms
re
4.0ms
(exp.f64 re)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.7b2re
9.5b5im
0.7b2(exp.f64 re)
0.7b2(exp.f64 re)
8.9b6(cos.f64 im)
Compiler

Compiled 87 to 50 computations (42.5% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.068304995694338e-44
0.9967433397550199
Compiler

Compiled 12 to 9 computations (25% saved)

regimes90.0ms (1.7%)

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

5 calls:

33.0ms
im
32.0ms
(cos.f64 im)
14.0ms
re
4.0ms
(exp.f64 re)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.9b2re
9.6b5im
0.9b2(exp.f64 re)
0.9b2(exp.f64 re)
9.0b6(cos.f64 im)
Compiler

Compiled 75 to 44 computations (41.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.068304995694338e-44
0.9967433397550199
Compiler

Compiled 12 to 9 computations (25% saved)

regimes94.0ms (1.8%)

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

5 calls:

43.0ms
im
27.0ms
(cos.f64 im)
14.0ms
re
4.0ms
(exp.f64 re)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.2b2re
9.7b5im
1.2b2(exp.f64 re)
1.2b2(exp.f64 re)
9.1b6(cos.f64 im)
Compiler

Compiled 51 to 30 computations (41.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.068304995694338e-44
0.9967433397550199
Compiler

Compiled 12 to 9 computations (25% saved)

regimes121.0ms (2.3%)

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

4 calls:

63.0ms
re
26.0ms
im
25.0ms
(cos.f64 im)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.4b2re
9.7b5im
1.4b2(exp.f64 re)
9.1b6(cos.f64 im)
Compiler

Compiled 37 to 24 computations (35.1% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999999999999896
1.0
Compiler

Compiled 12 to 9 computations (25% saved)

regimes16.0ms (0.3%)

Counts
6 → 1
Calls
Call 1
Inputs
1
re
(-.f64 re 1)
(+.f64 1 re)
(-.f64 (+.f64 2 re) 1)
(cos.f64 im)
Outputs
(cos.f64 im)
Calls

3 calls:

6.0ms
re
5.0ms
im
4.0ms
(cos.f64 im)
Results
ErrorSegmentsBranch
26.2b1re
26.2b1im
26.2b1(cos.f64 im)
Compiler

Compiled 27 to 19 computations (29.6% saved)

regimes11.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
1
re
(-.f64 re 1)
(+.f64 1 re)
(-.f64 (+.f64 2 re) 1)
Outputs
(-.f64 (+.f64 2 re) 1)
Calls

2 calls:

5.0ms
im
5.0ms
re
Results
ErrorSegmentsBranch
43.9b1re
43.9b1im
Compiler

Compiled 21 to 15 computations (28.6% saved)

regimes10.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
1
re
(-.f64 re 1)
(+.f64 1 re)
Outputs
(+.f64 1 re)
Calls

2 calls:

4.0ms
re
4.0ms
im
Results
ErrorSegmentsBranch
43.9b1re
43.9b1im
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes8.0ms (0.2%)

Accuracy

Total -18.9b remaining (-43.1%)

Threshold costs -18.9b (-43.1%)

Counts
3 → 1
Calls
Call 1
Inputs
1
re
(-.f64 re 1)
Outputs
1
Calls

2 calls:

3.0ms
re
3.0ms
im
Results
ErrorSegmentsBranch
43.9b1re
43.9b1im
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
034138
151138
252138
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/6 re) 1/2)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (+.f64 re (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 1) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
(-.f64 (+.f64 2 re) 1)
(+.f64 1 re)
1
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/6 re) 1/2)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) 1/2))))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 8034690221294951/200867255532373784442745261542645325315275374222849104412672) (exp.f64 re) (+.f64 re (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 1) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
(-.f64 (+.f64 2 re) 1)
(+.f64 (+.f64 re 2) -1)
(+.f64 1 re)
(+.f64 re 1)
1

end173.0ms (3.3%)

Stop Event
fuel
Compiler

Compiled 204 to 124 computations (39.2% saved)

Profiling

Loading profile data...