Details

Time bar (total: 8.4s)

analyze65.0ms (0.8%)

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%21.9%3.2%6
74.9%20.3%4.8%7
74.9%18%7.1%8
74.9%16.8%8.3%9
74.9%15.4%9.7%10
74.9%14.7%10.3%11
74.9%14%11.1%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.4s (28.5%)

Results
857.0ms6156×body256valid
846.0ms1391×body1024valid
289.0ms671×body1024invalid
168.0ms704×body512valid
111.0ms354×body512invalid
58.0ms447×body256invalid
4.0msbody2048valid

preprocess18.0ms (0.2%)

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) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify89.0ms (1.1%)

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) (sin.f64 im))
Outputs
(*.f64 (exp.f64 re) (sin.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) (sin.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite161.0ms (1.9%)

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) (sin.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (exp.f64 re) (sin.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (sin.f64 im))))))))

simplify95.0ms (1.1%)

Algorithm
egg-herbie
Rules
828×distribute-lft-out_binary64
812×fma-def_binary64
569×unswap-sqr_binary64
547×distribute-rgt-in_binary64
403×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
044296
1122294
2312274
3917250
42885249
53749249
65943249
77045249
87825249
Stop Event
node limit
Counts
35 → 27
Calls
Call 1
Inputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
Outputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 re 1) (sin.f64 im))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)))))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (*.f64 (*.f64 re re) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 re (fma.f64 re (*.f64 re 1/2) 1)))
(fma.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) re) (sin.f64 im))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 3) 1/6))))
(fma.f64 (+.f64 re 1) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re (*.f64 re 1/2)) (*.f64 1/6 (pow.f64 re 3)))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (sin.f64 im) (+.f64 (fma.f64 re (*.f64 re 1/2) 1) (fma.f64 1/6 (pow.f64 re 3) re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 im (exp.f64 re)))
(fma.f64 im (exp.f64 re) (*.f64 (pow.f64 im 3) (*.f64 (exp.f64 re) -1/6)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (exp.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (*.f64 im (exp.f64 re))))
(fma.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5)) (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 1/120 (pow.f64 im 5) im) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (fma.f64 1/120 (pow.f64 im 5) im)))
(*.f64 (exp.f64 re) (+.f64 im (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (fma.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7)) (*.f64 im (exp.f64 re)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 -1/5040 (pow.f64 im 7) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5))) (fma.f64 -1/5040 (pow.f64 im 7) im)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))

eval8.0ms (0.1%)

Compiler

Compiled 292 to 144 computations (50.7% saved)

prune9.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New21627
Fresh000
Picked011
Done000
Total21728
Error
0.0b
Counts
28 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
20.2b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
20.4b
(sin.f64 im)
21.7b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))
21.0b
(*.f64 (exp.f64 re) im)
1.0b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 99 to 71 computations (28.3% saved)

localize27.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
0.4b
(cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im)))
0.5b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
Compiler

Compiled 28 to 9 computations (67.9% saved)

series50.0ms (0.6%)

Counts
2 → 40
Calls

12 calls:

TimeVariablePointExpression
29.0ms
im
@inf
(cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im)))
5.0ms
re
@0
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
4.0ms
im
@inf
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
3.0ms
re
@inf
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
2.0ms
re
@-inf
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)

rewrite60.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
706×pow1_binary64
657×add-log-exp_binary64
657×log1p-expm1-u_binary64
657×expm1-log1p-u_binary64
640×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify84.0ms (1%)

Algorithm
egg-herbie
Rules
731×associate-*l*_binary64
705×associate-*r*_binary64
678×fma-def_binary64
291×*-commutative_binary64
284×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01091344
13601299
212061267
366201261
Stop Event
node limit
Counts
94 → 74
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (pow.f64 1 1/3))
(+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (+.f64 (*.f64 1/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))))) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re)))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (+.f64 (*.f64 1/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))))) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 2/9 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (sin.f64 im) 1) 1/9))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (sin.f64 im)) 1/3) (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))))) (*.f64 2/9 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9)))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(pow.f64 (sin.f64 im) 1/3)
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3))
(+.f64 (*.f64 1/3 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 re 2)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3)))
(+.f64 (*.f64 1/3 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 re 2)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))) (pow.f64 re 3)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3))))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
Outputs
(*.f64 (sin.f64 im) (pow.f64 1 1/3))
(sin.f64 im)
(+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re))
(+.f64 (sin.f64 im) (*.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1) re))
(fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re (sin.f64 im))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (+.f64 (*.f64 1/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))))) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re)))
(fma.f64 (*.f64 re re) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 1/3 (*.f64 1 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))))) (*.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (*.f64 2/3 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))))) (cbrt.f64 (/.f64 1 (sin.f64 im)))))))) (+.f64 (sin.f64 im) (*.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1) re)))
(fma.f64 (*.f64 re re) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (cbrt.f64 (/.f64 1 (sin.f64 im)))) (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)))) (*.f64 1/3 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3))))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re (sin.f64 im)))
(fma.f64 (*.f64 re re) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (+.f64 (*.f64 (sin.f64 im) 1/6) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/9)))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re (sin.f64 im)))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (+.f64 (*.f64 1/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))))) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 2/9 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (sin.f64 im) 1) 1/9))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (sin.f64 im)) 1/3) (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (/.f64 1 (sin.f64 im)) 1/3)))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))))) (*.f64 2/9 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9)))))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 2/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 13) 1) 1/9))) re))))
(fma.f64 (*.f64 re re) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 1/3 (*.f64 1 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))))) (*.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (*.f64 2/3 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))))) (cbrt.f64 (/.f64 1 (sin.f64 im)))))))) (+.f64 (sin.f64 im) (fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/9 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18))) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im)))) (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 2/3 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)))))))) (fma.f64 1/3 (*.f64 (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (*.f64 2/3 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))))) (cbrt.f64 (/.f64 1 (sin.f64 im))))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (+.f64 (*.f64 1/3 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 2/3 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))))))) (*.f64 2/9 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))))))) (pow.f64 re 3) (*.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1) re))))
(+.f64 (fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)))))) (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18)) 2/9))) (fma.f64 1/3 (*.f64 (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (cbrt.f64 (/.f64 1 (sin.f64 im)))) (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (fma.f64 1/3 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7))))) (*.f64 2/9 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))))))) (pow.f64 re 3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re)) (fma.f64 (*.f64 re re) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (cbrt.f64 (/.f64 1 (sin.f64 im)))) (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)))) (*.f64 1/3 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3))))) (sin.f64 im)))
(fma.f64 re (*.f64 re (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (+.f64 (*.f64 (sin.f64 im) 1/6) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/9))))) (fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (-.f64 (fma.f64 (sin.f64 im) 1/6 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9))))) (*.f64 (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27)))) (fma.f64 1/3 (fma.f64 (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (-.f64 (fma.f64 (sin.f64 im) 1/6 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9))))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27))))) (pow.f64 re 3) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re (sin.f64 im))))
(fma.f64 re (*.f64 re (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (+.f64 (*.f64 (sin.f64 im) 1/6) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/9))))) (fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (fma.f64 (sin.f64 im) 1/6 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3)))))) (*.f64 (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27)))) (fma.f64 1/3 (fma.f64 (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (fma.f64 (sin.f64 im) 1/6 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3)))))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27))))) (pow.f64 re 3) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) re (sin.f64 im))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (exp.f64 re))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3))
(fma.f64 1/3 (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im)))
(fma.f64 1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) re)) (cbrt.f64 (sin.f64 im)))
(+.f64 (*.f64 1/3 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 re 2)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3)))
(fma.f64 1/3 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im))))
(fma.f64 1/3 (*.f64 (*.f64 re re) (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) re)) (cbrt.f64 (sin.f64 im))))
(fma.f64 1/3 (fma.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) -1/3))) (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)))) (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)))) (cbrt.f64 (sin.f64 im)))
(+.f64 (*.f64 1/3 (*.f64 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 re 2)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/6 (sin.f64 im)) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 2/3 (*.f64 (-.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 1/3 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))) (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 4) 1) 1/9))))) (pow.f64 re 3)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/9) re)) (pow.f64 (sin.f64 im) 1/3))))
(fma.f64 1/3 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (*.f64 re re) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))) (*.f64 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 2/3 (*.f64 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 -1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)))))) (pow.f64 re 3))) (fma.f64 1/3 (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im)))))
(fma.f64 1/3 (*.f64 (*.f64 re re) (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.f64 2/3 (*.f64 (fma.f64 (sin.f64 im) 1/2 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18))) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7))))) (*.f64 (pow.f64 re 3) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) re)) (cbrt.f64 (sin.f64 im)))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))) (+.f64 (*.f64 (*.f64 re re) (fma.f64 (sin.f64 im) 1/2 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) -1/3)))) (*.f64 (-.f64 (fma.f64 (sin.f64 im) 1/6 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (sin.f64 im) 1/3) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/9)))) (pow.f64 re 3)))) (fma.f64 1/3 (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))) (+.f64 (*.f64 (*.f64 re re) (fma.f64 (sin.f64 im) 1/2 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) -1/3)))) (*.f64 (fma.f64 (sin.f64 im) 1/6 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3))))) (pow.f64 re 3)))) (fma.f64 1/3 (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im))))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))
(pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re)))

localize4.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 4 computations (60% saved)

series3.0ms (0%)

Counts
1 → 4
Calls

6 calls:

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

rewrite41.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
435×pow1_binary64
414×add-sqr-sqrt_binary64
409×*-un-lft-identity_binary64
397×add-log-exp_binary64
397×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify189.0ms (2.2%)

Algorithm
egg-herbie
Rules
709×distribute-lft-out_binary64
619×*-commutative_binary64
531×associate-+l+_binary64
442×sqr-pow_binary64
431×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01846
15346
213642
340437
4149937
5239837
6402337
7415537
8440037
9475637
10550237
11634637
12710737
13763837
Stop Event
node limit
Counts
18 → 21
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
Outputs
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 im (*.f64 re re)) im))
(fma.f64 im re (fma.f64 1/2 (*.f64 im (*.f64 re re)) im))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
(fma.f64 1/6 (*.f64 im (pow.f64 re 3)) (fma.f64 re im (fma.f64 1/2 (*.f64 im (*.f64 re re)) im)))
(fma.f64 1/6 (*.f64 im (pow.f64 re 3)) (fma.f64 im re (fma.f64 1/2 (*.f64 im (*.f64 re re)) im)))
(fma.f64 im (fma.f64 1/6 (pow.f64 re 3) re) (*.f64 im (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/6 (pow.f64 re 3) (*.f64 re (fma.f64 re 1/2 1))) im)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite55.0ms (0.7%)

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
218949
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) re) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 im) re) 1) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 im) re) 3) (pow.f64 (sin.f64 im) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) re)) (-.f64 (pow.f64 (sin.f64 im) 2) (*.f64 (*.f64 (sin.f64 im) re) (sin.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) re)) (pow.f64 (sin.f64 im) 2)) (-.f64 (*.f64 (sin.f64 im) re) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (sin.f64 im)) (fma.f64 re re (-.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 1 (pow.f64 re 3))) (fma.f64 re re (-.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 im)) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.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 (sin.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 re) (log.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 im) re (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (sin.f64 im) (sin.f64 im))))))

simplify113.0ms (1.3%)

Algorithm
egg-herbie
Rules
1174×distribute-rgt-in_binary64
845×distribute-lft-in_binary64
736×fma-def_binary64
426×unswap-sqr_binary64
372×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030274
184274
2249254
3929240
43139240
54762240
65206240
75914240
86015240
96155240
106349240
Stop Event
node limit
Counts
48 → 37
Calls
Call 1
Inputs
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
Outputs
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(fma.f64 (+.f64 1 re) im (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 1 re) (fma.f64 -1/6 (pow.f64 im 3) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im)))
(fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 (+.f64 1 re) im (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 3) -1/6))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (+.f64 1 re) (+.f64 im (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (fma.f64 (+.f64 1 re) im (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 7) (fma.f64 re -1/5040 -1/5040) (fma.f64 re im im))))
(*.f64 (+.f64 1 re) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 -1/5040 (pow.f64 im 7) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 1 re) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7))) (fma.f64 1/120 (pow.f64 im 5) im)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) (sin.f64 im))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
0.1b
(*.f64 (sin.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 (sin.f64 im) re)
0.0ms
re
@inf
(*.f64 (sin.f64 im) re)
0.0ms
re
@-inf
(*.f64 (sin.f64 im) re)
0.0ms
re
@0
(*.f64 (sin.f64 im) re)
0.0ms
im
@inf
(*.f64 (sin.f64 im) re)

rewrite80.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
718×pow1_binary64
666×add-log-exp_binary64
666×log1p-expm1-u_binary64
666×expm1-log1p-u_binary64
651×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify155.0ms (1.8%)

Algorithm
egg-herbie
Rules
686×*-commutative_binary64
636×+-commutative_binary64
482×distribute-lft-out_binary64
458×associate-+l+_binary64
453×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
045185
1119185
2302174
31131171
43202165
54344165
65073165
75869165
86030165
96218165
106789165
117243165
Stop Event
node limit
Counts
60 → 67
Calls
Call 1
Inputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 (sin.f64 im) re)
Outputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (*.f64 re im))
(fma.f64 re im (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (fma.f64 1/120 (*.f64 re (pow.f64 im 5)) (*.f64 re im)))
(fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (fma.f64 re im (*.f64 (pow.f64 im 5) (*.f64 re 1/120))))
(fma.f64 (pow.f64 im 5) (*.f64 re 1/120) (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 re (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 re (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(fma.f64 -1/5040 (*.f64 re (pow.f64 im 7)) (fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (fma.f64 1/120 (*.f64 re (pow.f64 im 5)) (*.f64 re im))))
(fma.f64 -1/5040 (*.f64 re (pow.f64 im 7)) (fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (fma.f64 re im (*.f64 (pow.f64 im 5) (*.f64 re 1/120)))))
(fma.f64 re (*.f64 -1/5040 (pow.f64 im 7)) (fma.f64 (pow.f64 im 5) (*.f64 re 1/120) (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))
(*.f64 re (+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 re (+.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 re (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 re 1))
(fma.f64 re im im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(fma.f64 (fma.f64 -1/6 re -1/6) (pow.f64 im 3) (*.f64 im (+.f64 re 1)))
(fma.f64 im (+.f64 re 1) (*.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6)))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 re im im))
(*.f64 (+.f64 re 1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(fma.f64 (fma.f64 -1/6 re -1/6) (pow.f64 im 3) (fma.f64 (fma.f64 1/120 re 1/120) (pow.f64 im 5) (*.f64 im (+.f64 re 1))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (*.f64 im (+.f64 re 1))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 re im im)))
(fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 re im im)))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(fma.f64 (fma.f64 -1/6 re -1/6) (pow.f64 im 3) (fma.f64 (fma.f64 1/120 re 1/120) (pow.f64 im 5) (fma.f64 (fma.f64 -1/5040 re -1/5040) (pow.f64 im 7) (*.f64 im (+.f64 re 1)))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 im (+.f64 re 1) (*.f64 (pow.f64 im 7) (fma.f64 re -1/5040 -1/5040)))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 (pow.f64 im 7) (fma.f64 re -1/5040 -1/5040) (fma.f64 re im im))))
(fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 7) (fma.f64 re -1/5040 -1/5040) (fma.f64 re im im))))
(*.f64 (+.f64 re 1) (+.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))

eval145.0ms (1.7%)

Compiler

Compiled 3879 to 2155 computations (44.4% saved)

prune80.0ms (1%)

Pruning

13 alts after pruning (9 fresh and 4 done)

PrunedKeptTotal
New2188226
Fresh011
Picked101
Done145
Total22013233
Error
0b
Counts
233 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
37.3b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
40.4b
(*.f64 (+.f64 1 re) im)
0.0b
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))
40.6b
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
21.0b
(*.f64 (exp.f64 re) im)
61.3b
(*.f64 (sin.f64 im) re)
1.0b
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)))
20.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
20.4b
(sin.f64 im)
40.4b
(+.f64 (*.f64 re im) im)
40.3b
im
21.7b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 192 to 132 computations (31.3% saved)

localize22.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 27 to 7 computations (74.1% saved)

series19.0ms (0.2%)

Counts
3 → 36
Calls

15 calls:

TimeVariablePointExpression
7.0ms
im
@-inf
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
2.0ms
re
@-inf
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
1.0ms
im
@0
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
1.0ms
im
@inf
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
1.0ms
re
@inf
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))

rewrite94.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
709×pow1_binary64
649×add-log-exp_binary64
649×log1p-expm1-u_binary64
649×expm1-log1p-u_binary64
632×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
115423
2181723
Stop Event
node limit
Counts
3 → 47
Calls
Call 1
Inputs
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
(sqrt.f64 (exp.f64 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 im) (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 im) (exp.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.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/2) (pow.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) 3) (pow.f64 (exp.f64 re) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 im) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 im)) re))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (exp.f64 re) (pow.f64 (sin.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (exp.f64 re))) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 im) 3) (pow.f64 (exp.f64 re) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 re) 3/2) (pow.f64 (sin.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 re 1/2) (log.f64 (sin.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 re)) (cbrt.f64 (sqrt.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (exp.f64 re))) (cbrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (exp.f64 re) 1/4) (pow.f64 (exp.f64 re) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2)) (sqrt.f64 (cbrt.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 re)) 2) 1/2) (pow.f64 (cbrt.f64 (exp.f64 re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 re) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 re) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 re) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 re) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 re 1/2))))))

simplify134.0ms (1.6%)

Algorithm
egg-herbie
Rules
477×fma-def_binary64
462×*-commutative_binary64
411×distribute-lft-out_binary64
381×cube-div_binary64
320×associate-/l/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
074536
1209530
2579472
31801437
42591435
53165435
63736435
73965435
84460435
96180435
107188435
Stop Event
node limit
Counts
83 → 84
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sqrt.f64 (exp.f64 re)) im)
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im))
(+.f64 (*.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im)))
(+.f64 (*.f64 -1/5040 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 7))) (+.f64 (*.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im))))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/8 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/8 (*.f64 (sin.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 im) re)) (*.f64 1/48 (*.f64 (sin.f64 im) (pow.f64 re 3))))))
1
(+.f64 1 (*.f64 1/2 re))
(+.f64 1 (+.f64 (*.f64 1/2 re) (*.f64 1/8 (pow.f64 re 2))))
(+.f64 (*.f64 1/48 (pow.f64 re 3)) (+.f64 1 (+.f64 (*.f64 1/2 re) (*.f64 1/8 (pow.f64 re 2)))))
Outputs
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 (exp.f64 re) im))
(fma.f64 (exp.f64 re) im (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (*.f64 (exp.f64 re) im)))
(fma.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (fma.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7)) (*.f64 (exp.f64 re) im))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (fma.f64 (exp.f64 re) im (*.f64 (pow.f64 im 7) (*.f64 (exp.f64 re) -1/5040)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (exp.f64 re) (+.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)))))
(+.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 re (sin.f64 im))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 (fma.f64 re 1/2 1) re)))
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (fma.f64 re 1/2 1))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 (sin.f64 im) (*.f64 (*.f64 re re) 1/2))))
(fma.f64 (+.f64 re 1) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 re (*.f64 re 1/2)))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sqrt.f64 (exp.f64 re)) im)
(*.f64 im (sqrt.f64 (exp.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re))) (*.f64 im (sqrt.f64 (exp.f64 re))))
(fma.f64 im (sqrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im)))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (sqrt.f64 (exp.f64 re))) (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re))) (*.f64 im (sqrt.f64 (exp.f64 re)))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (sqrt.f64 (exp.f64 re))) (fma.f64 im (sqrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re))))))
(fma.f64 im (sqrt.f64 (exp.f64 re)) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/5040 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 7))) (+.f64 (*.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 3))) (*.f64 (sqrt.f64 (exp.f64 re)) im))))
(fma.f64 -1/5040 (*.f64 (pow.f64 im 7) (sqrt.f64 (exp.f64 re))) (fma.f64 1/120 (*.f64 (pow.f64 im 5) (sqrt.f64 (exp.f64 re))) (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re))) (*.f64 im (sqrt.f64 (exp.f64 re))))))
(fma.f64 -1/5040 (*.f64 (pow.f64 im 7) (sqrt.f64 (exp.f64 re))) (fma.f64 1/120 (*.f64 (pow.f64 im 5) (sqrt.f64 (exp.f64 re))) (fma.f64 im (sqrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re)))))))
(+.f64 (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (*.f64 (*.f64 re (sin.f64 im)) 1/2))
(fma.f64 (*.f64 re (sin.f64 im)) 1/2 (sin.f64 im))
(*.f64 (fma.f64 re 1/2 1) (sin.f64 im))
(*.f64 (sin.f64 im) (fma.f64 re 1/2 1))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/8 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re))))
(+.f64 (sin.f64 im) (fma.f64 1/8 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 (*.f64 re (sin.f64 im)) 1/2)))
(+.f64 (fma.f64 (*.f64 re (sin.f64 im)) 1/2 (sin.f64 im)) (*.f64 (sin.f64 im) (*.f64 re (*.f64 re 1/8))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re (+.f64 1/2 (*.f64 re 1/8)))))
(*.f64 (sin.f64 im) (fma.f64 re 1/2 (fma.f64 re (*.f64 re 1/8) 1)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/8 (*.f64 (sin.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 im) re)) (*.f64 1/48 (*.f64 (sin.f64 im) (pow.f64 re 3))))))
(+.f64 (sin.f64 im) (fma.f64 1/8 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/2 (*.f64 re (sin.f64 im)) (*.f64 (*.f64 (sin.f64 im) (pow.f64 re 3)) 1/48))))
(+.f64 (sin.f64 im) (fma.f64 (*.f64 (sin.f64 im) (*.f64 re re)) 1/8 (fma.f64 (*.f64 re (sin.f64 im)) 1/2 (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 3) 1/48)))))
(+.f64 (*.f64 (fma.f64 re 1/2 1) (sin.f64 im)) (*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/8 (*.f64 re 1/48)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re (+.f64 1/2 (*.f64 re (+.f64 1/8 (*.f64 re 1/48)))))))
(*.f64 (sin.f64 im) (fma.f64 (pow.f64 re 3) 1/48 (fma.f64 re 1/2 (fma.f64 re (*.f64 re 1/8) 1))))
1
(+.f64 1 (*.f64 1/2 re))
(+.f64 1 (*.f64 re 1/2))
(fma.f64 re 1/2 1)
(+.f64 1 (+.f64 (*.f64 1/2 re) (*.f64 1/8 (pow.f64 re 2))))
(+.f64 1 (fma.f64 1/2 re (*.f64 (*.f64 re re) 1/8)))
(+.f64 1 (fma.f64 re 1/2 (*.f64 re (*.f64 re 1/8))))
(fma.f64 re 1/2 (fma.f64 re (*.f64 re 1/8) 1))
(+.f64 (*.f64 1/48 (pow.f64 re 3)) (+.f64 1 (+.f64 (*.f64 1/2 re) (*.f64 1/8 (pow.f64 re 2)))))
(fma.f64 1/48 (pow.f64 re 3) (+.f64 1 (fma.f64 1/2 re (*.f64 (*.f64 re re) 1/8))))
(+.f64 (fma.f64 re 1/2 (*.f64 re (*.f64 re 1/8))) (fma.f64 (pow.f64 re 3) 1/48 1))
(fma.f64 (pow.f64 re 3) 1/48 (fma.f64 re 1/2 (fma.f64 re (*.f64 re 1/8) 1)))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite56.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×fma-def_binary64
associate-*r*_binary64
associate-*l*_binary64
*-lft-identity_binary64
*-rgt-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0654
11154
21654
32254
42854
54154
64554
74754
Stop Event
saturated
Counts
31 → 23
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
Outputs
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 4 computations (60% saved)

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
0.0b
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
4.3b
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
5.5b
(*.f64 (pow.f64 re 2) im)
Compiler

Compiled 46 to 28 computations (39.1% saved)

series12.0ms (0.1%)

Counts
4 → 43
Calls

24 calls:

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

rewrite85.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
642×fma-def_binary64
599×log-prod_binary64
336×fma-neg_binary64
315×pow2_binary64
217×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify141.0ms (1.7%)

Algorithm
egg-herbie
Rules
723×distribute-rgt-in_binary64
610×fma-def_binary64
582×fma-neg_binary64
412×unsub-neg_binary64
292×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
031581
180495
2196459
3573459
41737459
54008459
65627459
76519459
86890459
97094459
107669459
Stop Event
node limit
Counts
245 → 217
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
im
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
Outputs
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 (*.f64 1/2 re) re))
(*.f64 (*.f64 1/2 (*.f64 im re)) re)
(*.f64 im (*.f64 re (*.f64 re 1/2)))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 re im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (*.f64 (*.f64 1/2 re) re)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) re))
(*.f64 im (*.f64 re (fma.f64 re 1/2 1)))
(*.f64 re (fma.f64 im (*.f64 re 1/2) im))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 (*.f64 1/2 re) re))
(*.f64 (*.f64 1/2 (*.f64 im re)) re)
(*.f64 im (*.f64 re (*.f64 re 1/2)))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 re im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (*.f64 (*.f64 1/2 re) re)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) re))
(*.f64 im (*.f64 re (fma.f64 re 1/2 1)))
(*.f64 re (fma.f64 im (*.f64 re 1/2) im))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(+.f64 (fma.f64 re im im) (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 re 1/2 1)) im)
(fma.f64 re (fma.f64 im (*.f64 re 1/2) im) im)
im
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 (*.f64 1/2 re) re))
(*.f64 (*.f64 1/2 (*.f64 im re)) re)
(*.f64 im (*.f64 re (*.f64 re 1/2)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 (*.f64 1/2 re) re))
(*.f64 (*.f64 1/2 (*.f64 im re)) re)
(*.f64 im (*.f64 re (*.f64 re 1/2)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(+.f64 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) 1))
(fma.f64 (*.f64 im re) (*.f64 re 1/2) im)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))
0.2b
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)))
0.5b
(pow.f64 (cbrt.f64 (sin.f64 im)) 2)
0.6b
(cbrt.f64 (sin.f64 im))
Compiler

Compiled 35 to 12 computations (65.7% saved)

series15.0ms (0.2%)

Counts
4 → 60
Calls

18 calls:

TimeVariablePointExpression
2.0ms
im
@inf
(*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))
2.0ms
im
@-inf
(*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))
2.0ms
re
@inf
(*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))
2.0ms
im
@inf
(cbrt.f64 (sin.f64 im))
2.0ms
im
@-inf
(cbrt.f64 (sin.f64 im))

rewrite67.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
837×pow1_binary64
769×add-log-exp_binary64
769×log1p-expm1-u_binary64
769×expm1-log1p-u_binary64
750×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
119731
2219231
Stop Event
node limit
Counts
4 → 63
Calls
Call 1
Inputs
(cbrt.f64 (sin.f64 im))
(pow.f64 (cbrt.f64 (sin.f64 im)) 2)
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)))
(*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (sin.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2) (cbrt.f64 (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 im) 1/6) (pow.f64 (sin.f64 im) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (sin.f64 im)) 1/3) (pow.f64 (sqrt.f64 (sin.f64 im)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 im) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 im) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (sin.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 (sin.f64 im)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sin.f64 im)) (cbrt.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 im)) (pow.f64 (sin.f64 im) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 im) 1/6) (*.f64 (pow.f64 (sin.f64 im) 1/6) (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 im))) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (sin.f64 im)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 im) (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 im) (exp.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 im)) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 im) (exp.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 im) 3) (pow.f64 (exp.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 im) 2) (pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 3) (pow.f64 (sin.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 im) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 im)) re))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (cbrt.f64 (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (sin.f64 im) (pow.f64 (exp.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 re) 3) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 (cbrt.f64 (sin.f64 im)))))))))

simplify114.0ms (1.4%)

Algorithm
egg-herbie
Rules
638×unswap-sqr_binary64
389×*-commutative_binary64
364×fma-def_binary64
349×distribute-rgt-out_binary64
332×associate-*l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
063646
1192642
2523610
31737586
43062586
54226586
64542586
75057586
87361586
Stop Event
node limit
Counts
123 → 89
Calls
Call 1
Inputs
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (sin.f64 im) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(pow.f64 (sin.f64 im) 1/3)
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (pow.f64 (sin.f64 im) 1/3))
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 2))) (pow.f64 (sin.f64 im) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 3))) (pow.f64 (sin.f64 im) 1/3))))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
Outputs
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(pow.f64 (pow.f64 (sin.f64 im) 2) 1/3)
(cbrt.f64 (pow.f64 (sin.f64 im) 2))
(*.f64 (exp.f64 re) im)
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 im (exp.f64 re)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (*.f64 im (exp.f64 re))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 im (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120))))
(fma.f64 im (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5)) (fma.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7)) (*.f64 im (exp.f64 re)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)))))
(+.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 (sin.f64 im) re)))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 (pow.f64 re 3) (*.f64 (sin.f64 im) 1/6))))
(fma.f64 (sin.f64 im) (+.f64 re 1) (*.f64 (sin.f64 im) (+.f64 (*.f64 re (*.f64 re 1/2)) (*.f64 1/6 (pow.f64 re 3)))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(pow.f64 (sin.f64 im) 1/3)
(cbrt.f64 (sin.f64 im))
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (pow.f64 (sin.f64 im) 1/3))
(fma.f64 (cbrt.f64 (sin.f64 im)) re (cbrt.f64 (sin.f64 im)))
(*.f64 (+.f64 re 1) (cbrt.f64 (sin.f64 im)))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 re 1))
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 2))) (pow.f64 (sin.f64 im) 1/3)))
(fma.f64 (cbrt.f64 (sin.f64 im)) re (fma.f64 1/2 (*.f64 (*.f64 re re) (cbrt.f64 (sin.f64 im))) (cbrt.f64 (sin.f64 im))))
(+.f64 (*.f64 (+.f64 re 1) (cbrt.f64 (sin.f64 im))) (*.f64 1/2 (*.f64 re (*.f64 re (cbrt.f64 (sin.f64 im))))))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2)))))
(+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 2))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (pow.f64 re 3))) (pow.f64 (sin.f64 im) 1/3))))
(fma.f64 (cbrt.f64 (sin.f64 im)) re (fma.f64 1/2 (*.f64 (*.f64 re re) (cbrt.f64 (sin.f64 im))) (fma.f64 1/6 (*.f64 (pow.f64 re 3) (cbrt.f64 (sin.f64 im))) (cbrt.f64 (sin.f64 im)))))
(+.f64 (fma.f64 1/2 (*.f64 re (*.f64 re (cbrt.f64 (sin.f64 im)))) (*.f64 (*.f64 1/6 (pow.f64 re 3)) (cbrt.f64 (sin.f64 im)))) (*.f64 (+.f64 re 1) (cbrt.f64 (sin.f64 im))))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 (pow.f64 re 3)) 1) (cbrt.f64 (sin.f64 im))) (*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 re (*.f64 re (*.f64 re 1/2)))))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (cbrt.f64 (sin.f64 im)) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))
(*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (exp.f64 re))
(*.f64 (exp.f64 re) (cbrt.f64 (sin.f64 im)))

eval125.0ms (1.5%)

Compiler

Compiled 7457 to 3318 computations (55.5% saved)

prune95.0ms (1.1%)

Pruning

20 alts after pruning (13 fresh and 7 done)

PrunedKeptTotal
New46910479
Fresh134
Picked011
Done268
Total47220492
Error
0b
Counts
492 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
1.0b
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)))
0.0b
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
61.6b
(*.f64 im (*.f64 re (*.f64 re 1/2)))
37.3b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
40.4b
(*.f64 (+.f64 1 re) im)
40.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
20.4b
(sin.f64 im)
40.3b
im
40.4b
(+.f64 (*.f64 re im) im)
20.3b
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2)))))
40.6b
(+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2))))
61.2b
(*.f64 re im)
21.7b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))
21.0b
(*.f64 (exp.f64 re) im)
61.3b
(*.f64 (sin.f64 im) re)
20.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
57.2b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
40.6b
(+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im))
20.3b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 341 to 242 computations (29% saved)

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (exp.f64 re))
0.0b
(*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re)))
0.0b
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
Compiler

Compiled 36 to 16 computations (55.6% saved)

series6.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@-inf
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
1.0ms
im
@0
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
1.0ms
im
@inf
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
1.0ms
re
@inf
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
1.0ms
im
@-inf
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))

rewrite57.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
851×pow1_binary64
779×add-log-exp_binary64
779×log1p-expm1-u_binary64
779×expm1-log1p-u_binary64
761×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify90.0ms (1.1%)

Algorithm
egg-herbie
Rules
772×unswap-sqr_binary64
755×distribute-lft-out_binary64
376×distribute-rgt-in_binary64
360×*-commutative_binary64
359×associate-/l/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
053556
1148536
2408460
31780268
43028260
55259260
67003260
Stop Event
node limit
Counts
38 → 31
Calls
Call 1
Inputs
(*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re)))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re)))))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5)) (sqrt.f64 (exp.f64 re)))) (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re))))))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5)) (sqrt.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re)))) (*.f64 -1/5040 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 7)) (sqrt.f64 (exp.f64 re)))))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (sin.f64 im)) (*.f64 1/24 (sin.f64 im))) (pow.f64 re 3)) (+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
Outputs
(*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (pow.f64 (exp.f64 re) 1/2) im) (sqrt.f64 (exp.f64 re)))
(*.f64 im (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re)))))
(fma.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (exp.f64 (*.f64 1/2 re)) (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re))))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 (pow.f64 (exp.f64 re) 1/2) im) (*.f64 -1/6 (*.f64 (pow.f64 (exp.f64 re) 1/2) (pow.f64 im 3)))))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5)) (sqrt.f64 (exp.f64 re)))) (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re))))))
(fma.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re)) (fma.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5))) (*.f64 -1/6 (*.f64 (exp.f64 (*.f64 1/2 re)) (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re)))))))
(fma.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 im (sqrt.f64 (exp.f64 re))) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (exp.f64 re) 1/2) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 (exp.f64 re) 1/2) (pow.f64 im 5))))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (pow.f64 im 5)))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5)) (sqrt.f64 (exp.f64 re)))) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 3)) (sqrt.f64 (exp.f64 re)))) (*.f64 -1/5040 (*.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 7)) (sqrt.f64 (exp.f64 re)))))))
(fma.f64 (*.f64 (exp.f64 (*.f64 1/2 re)) im) (sqrt.f64 (exp.f64 re)) (fma.f64 1/120 (*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 5))) (fma.f64 -1/6 (*.f64 (exp.f64 (*.f64 1/2 re)) (*.f64 (pow.f64 im 3) (sqrt.f64 (exp.f64 re)))) (*.f64 -1/5040 (*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (pow.f64 im 7)))))))
(+.f64 (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (exp.f64 re) 1/2) (pow.f64 im 3))) (*.f64 (*.f64 -1/5040 (pow.f64 (exp.f64 re) 1/2)) (pow.f64 im 7)))) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 (pow.f64 (exp.f64 re) 1/2) im) (*.f64 1/120 (*.f64 (pow.f64 (exp.f64 re) 1/2) (pow.f64 im 5))))))
(*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))) (*.f64 (sqrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (exp.f64 re) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)))))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 1/2 (*.f64 re re)))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (*.f64 re re)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/8 (sin.f64 im)) (*.f64 1/24 (sin.f64 im))) (pow.f64 re 3)) (+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(fma.f64 (*.f64 (sin.f64 im) 1/6) (pow.f64 re 3) (+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))))
(+.f64 (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 re (sin.f64 im))) (fma.f64 (*.f64 (sin.f64 im) 1/6) (pow.f64 re 3) (sin.f64 im)))
(fma.f64 (+.f64 re 1) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (*.f64 re re)) (*.f64 (pow.f64 re 3) 1/6))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 1/2 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (sqrt.f64 (exp.f64 re)) (*.f64 (exp.f64 (*.f64 1/2 re)) (sin.f64 im)))
(*.f64 (pow.f64 (exp.f64 re) 1/2) (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 (sqrt.f64 (exp.f64 re)) (sqrt.f64 (exp.f64 re))))
(*.f64 (sin.f64 im) (exp.f64 re))

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.5b
(*.f64 im (*.f64 re (*.f64 re 1/2)))
Compiler

Compiled 20 to 12 computations (40% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite54.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
667×pow1_binary64
614×add-log-exp_binary64
614×log1p-expm1-u_binary64
614×expm1-log1p-u_binary64
601×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify165.0ms (2%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
636×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
236240
382240
4219240
5742240
61015240
71429240
81529240
91662240
101831240
112072240
122385240
132757240
143213240
153804240
164510240
175368240
185794240
196110240
206420240
216498240
226532240
Stop Event
node limit
Counts
37 → 15
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
Outputs
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 im (*.f64 1/2 re)))
(*.f64 re (*.f64 1/2 (*.f64 re im)))

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.5b
(*.f64 (-.f64 1 (*.f64 re re)) im)
4.3b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
Compiler

Compiled 34 to 17 computations (50% saved)

series15.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
9.0ms
im
@inf
(*.f64 (-.f64 1 (*.f64 re re)) im)
1.0ms
im
@0
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
1.0ms
re
@0
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
1.0ms
re
@inf
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
1.0ms
im
@inf
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))

rewrite63.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
515×log-prod_binary64
349×prod-diff_binary64
331×pow-prod-down_binary64
264×pow2_binary64
191×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify63.0ms (0.7%)

Algorithm
egg-herbie
Rules
950×fma-neg_binary64
349×associate-/r/_binary64
331×associate-/l/_binary64
322×associate-*l*_binary64
295×div-sub_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
017496
141475
289475
3196475
4623475
52416475
66200403
Stop Event
node limit
Counts
142 → 107
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
im
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
Outputs
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(fma.f64 im re im)
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(fma.f64 im re im)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
(/.f64 (*.f64 (-.f64 1 (pow.f64 re 2)) im) (-.f64 1 re))
(/.f64 (-.f64 1 (*.f64 re re)) (/.f64 (-.f64 1 re) im))
(/.f64 (fma.f64 (*.f64 re (neg.f64 re)) im im) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(/.f64 (fma.f64 im (*.f64 re (neg.f64 re)) im) (-.f64 1 re))
(/.f64 (neg.f64 (fma.f64 im re im)) -1)
im
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(neg.f64 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 re (neg.f64 re)))
(*.f64 (*.f64 (neg.f64 im) re) re)
(*.f64 (*.f64 re re) (neg.f64 im))
(*.f64 re (*.f64 im (neg.f64 re)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(neg.f64 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 re (neg.f64 re)))
(*.f64 (*.f64 (neg.f64 im) re) re)
(*.f64 (*.f64 re re) (neg.f64 im))
(*.f64 re (*.f64 im (neg.f64 re)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)
(*.f64 (-.f64 1 (pow.f64 re 2)) im)
(fma.f64 -1 (*.f64 im (*.f64 re re)) im)
(fma.f64 (*.f64 re (neg.f64 re)) im im)
(-.f64 im (*.f64 re (*.f64 im re)))
(fma.f64 im (neg.f64 (*.f64 re re)) im)
(fma.f64 im (*.f64 re (neg.f64 re)) im)

localize20.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im)
4.3b
(+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im))
5.5b
(*.f64 (*.f64 re re) (*.f64 im 1/2))
Compiler

Compiled 57 to 29 computations (49.1% saved)

series5.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

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

rewrite87.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
836×fma-def_binary64
603×log-prod_binary64
409×fma-neg_binary64
311×pow2_binary64
212×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify156.0ms (1.9%)

Algorithm
egg-herbie
Rules
730×distribute-rgt-in_binary64
607×fma-def_binary64
582×fma-neg_binary64
411×unsub-neg_binary64
303×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
033816
184796
2198756
3571756
41771756
54050756
65676756
76562756
86931756
97135756
107704756
Stop Event
node limit
Counts
298 → 243
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
im
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
Outputs
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 re im (*.f64 1/2 (*.f64 (*.f64 re re) im)))
(*.f64 im (+.f64 re (*.f64 (*.f64 1/2 re) re)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) re))
(*.f64 im (*.f64 re (fma.f64 1/2 re 1)))
(*.f64 re (*.f64 im (fma.f64 1/2 re 1)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(+.f64 (*.f64 re im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 re im (*.f64 1/2 (*.f64 (*.f64 re re) im)))
(*.f64 im (+.f64 re (*.f64 (*.f64 1/2 re) re)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) re))
(*.f64 im (*.f64 re (fma.f64 1/2 re 1)))
(*.f64 re (*.f64 im (fma.f64 1/2 re 1)))
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(+.f64 (*.f64 re im) (+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 re) (*.f64 -1/2 (pow.f64 re 2))) 1) im))
(fma.f64 re im (fma.f64 1/2 (*.f64 (*.f64 re re) im) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))
(fma.f64 im (fma.f64 1/2 (*.f64 re re) re) im)
(fma.f64 im (*.f64 re (fma.f64 1/2 re 1)) im)
(fma.f64 re (*.f64 im (fma.f64 1/2 re 1)) im)
im
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 re (*.f64 re (*.f64 1/2 im)))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(+.f64 im (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) im))
(fma.f64 1/2 (*.f64 (*.f64 re re) im) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) 1))

eval398.0ms (4.7%)

Compiler

Compiled 7713 to 4171 computations (45.9% saved)

prune74.0ms (0.9%)

Pruning

25 alts after pruning (15 fresh and 10 done)

PrunedKeptTotal
New4437450
Fresh088
Picked011
Done2911
Total44525470
Error
0b
Counts
470 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
61.6b
(*.f64 im (*.f64 re (*.f64 re 1/2)))
37.3b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
40.4b
(*.f64 (+.f64 1 re) im)
40.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
20.4b
(sin.f64 im)
40.3b
im
39.4b
(*.f64 (-.f64 1 (*.f64 re re)) (/.f64 1 (/.f64 (-.f64 1 re) im)))
40.4b
(+.f64 (*.f64 re im) im)
57.2b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
61.5b
(*.f64 re (*.f64 1/2 (*.f64 re im)))
20.3b
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2)))))
40.6b
(+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2))))
0.0b
(*.f64 (*.f64 (sin.f64 im) (pow.f64 (pow.f64 (exp.f64 re) 1/4) 2)) (exp.f64 (*.f64 re 1/2)))
40.5b
(*.f64 (/.f64 1 (-.f64 1 re)) (*.f64 (-.f64 1 (*.f64 re re)) im))
61.2b
(*.f64 re im)
21.7b
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))
20.3b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (*.f64 re re)))))
21.0b
(*.f64 (exp.f64 re) im)
61.3b
(*.f64 (sin.f64 im) re)
40.6b
(+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im))
61.6b
(/.f64 (*.f64 re (*.f64 im (neg.f64 re))) (-.f64 1 re))
0.0b
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 re 1/2))) (exp.f64 (*.f64 re 1/2)))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
20.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
20.3b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
Compiler

Compiled 266 to 191 computations (28.2% saved)

regimes85.0ms (1%)

Counts
32 → 1
Calls
Call 1
Inputs
im
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 im (*.f64 re (*.f64 re 1/2)))
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
(/.f64 (*.f64 re (*.f64 im (neg.f64 re))) (-.f64 1 re))
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
(*.f64 (-.f64 1 (*.f64 re re)) (/.f64 1 (/.f64 (-.f64 1 re) im)))
(*.f64 (/.f64 1 (-.f64 1 re)) (*.f64 (-.f64 1 (*.f64 re re)) im))
(+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2))))
(+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (*.f64 re re)))))
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2)))))
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (exp.f64 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 (*.f64 re 1/2))) (exp.f64 (*.f64 re 1/2)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (exp.f64 (*.f64 re 1/2)))
(log.f64 (pow.f64 (exp.f64 (exp.f64 re)) (sin.f64 im)))
(*.f64 (*.f64 (sin.f64 im) (sqrt.f64 (exp.f64 re))) (sqrt.f64 (exp.f64 re)))
(*.f64 (*.f64 (sin.f64 im) (pow.f64 (pow.f64 (exp.f64 re) 1/4) 2)) (exp.f64 (*.f64 re 1/2)))
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (exp.f64 re)))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
Calls

5 calls:

23.0ms
re
18.0ms
(sin.f64 im)
17.0ms
im
13.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (exp.f64 re) (sin.f64 im))
0.0b1(exp.f64 re)
0.0b1(sin.f64 im)
Compiler

Compiled 301 to 157 computations (47.8% saved)

regimes373.0ms (4.4%)

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

6 calls:

176.0ms
(sin.f64 im)
111.0ms
(sin.f64 im)
35.0ms
im
27.0ms
re
7.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.1b2re
9.6b3im
1.1b2(exp.f64 re)
1.1b2(exp.f64 re)
6.6b10(sin.f64 im)
6.6b10(sin.f64 im)
Compiler

Compiled 216 to 121 computations (44% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.6367026600039403
0.9958277502217857
Compiler

Compiled 12 to 9 computations (25% saved)

regimes325.0ms (3.9%)

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

6 calls:

117.0ms
(sin.f64 im)
108.0ms
(sin.f64 im)
48.0ms
re
36.0ms
im
5.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.2b2re
9.6b3im
1.2b2(exp.f64 re)
1.2b2(exp.f64 re)
6.6b10(sin.f64 im)
6.6b10(sin.f64 im)
Compiler

Compiled 200 to 112 computations (44% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.6367026600039403
0.9958277502217857
Compiler

Compiled 12 to 9 computations (25% saved)

regimes427.0ms (5.1%)

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

6 calls:

210.0ms
(sin.f64 im)
144.0ms
(sin.f64 im)
29.0ms
im
22.0ms
re
6.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.2b2re
9.6b3im
1.2b2(exp.f64 re)
1.2b2(exp.f64 re)
6.6b10(sin.f64 im)
6.6b10(sin.f64 im)
Compiler

Compiled 175 to 97 computations (44.6% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.6367026600039403
0.9958277502217857
Compiler

Compiled 12 to 9 computations (25% saved)

regimes215.0ms (2.6%)

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

6 calls:

77.0ms
(sin.f64 im)
73.0ms
(sin.f64 im)
30.0ms
im
20.0ms
re
5.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.3b2re
9.7b3im
1.3b2(exp.f64 re)
1.3b2(exp.f64 re)
7.7b8(sin.f64 im)
7.7b8(sin.f64 im)
Compiler

Compiled 163 to 91 computations (44.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.6367026600039403
0.9958277502217857
Compiler

Compiled 12 to 9 computations (25% saved)

regimes158.0ms (1.9%)

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

5 calls:

53.0ms
(sin.f64 im)
53.0ms
(sin.f64 im)
26.0ms
im
18.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.9b2re
9.9b3im
1.9b2(exp.f64 re)
9.0b5(sin.f64 im)
9.0b5(sin.f64 im)
Compiler

Compiled 143 to 78 computations (45.5% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.6367026600039403
0.9958277502217857
Compiler

Compiled 12 to 9 computations (25% saved)

regimes99.0ms (1.2%)

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

4 calls:

26.0ms
im
26.0ms
(sin.f64 im)
25.0ms
(sin.f64 im)
18.0ms
re
Results
ErrorSegmentsBranch
17.3b2re
19.3b3im
19.3b3(sin.f64 im)
19.3b3(sin.f64 im)
Compiler

Compiled 135 to 73 computations (45.9% saved)

bsearch26.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
-30302.7940565092
-26.675086499522497
Compiler

Compiled 12 to 9 computations (25% saved)

regimes28.0ms (0.3%)

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

2 calls:

15.0ms
re
9.0ms
im
Results
ErrorSegmentsBranch
36.7b2re
39.4b1im
Compiler

Compiled 121 to 65 computations (46.3% saved)

bsearch46.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
-1.8870286668583574
-0.4514525141699572
Compiler

Compiled 12 to 9 computations (25% saved)

regimes26.0ms (0.3%)

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

2 calls:

15.0ms
re
7.0ms
im
Results
ErrorSegmentsBranch
36.7b2re
39.4b1im
Compiler

Compiled 106 to 58 computations (45.3% saved)

bsearch46.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
-1.8870286668583574
-0.4514525141699572
Compiler

Compiled 12 to 9 computations (25% saved)

regimes26.0ms (0.3%)

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

2 calls:

14.0ms
re
7.0ms
im
Results
ErrorSegmentsBranch
36.8b2re
39.4b1im
Compiler

Compiled 93 to 52 computations (44.1% saved)

bsearch24.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
-30302.7940565092
-26.675086499522497
Compiler

Compiled 12 to 9 computations (25% saved)

regimes15.0ms (0.2%)

Accuracy

Total -21.7b remaining (-53.7%)

Threshold costs -21.7b (-53.7%)

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

2 calls:

6.0ms
im
5.0ms
re
Results
ErrorSegmentsBranch
40.3b1re
40.3b1im
Compiler

Compiled 37 to 18 computations (51.4% saved)

simplify13.0ms (0.1%)

Algorithm
egg-herbie
Rules
15×+-commutative_binary64
15×*-commutative_binary64
+-lft-identity_binary64
sub-neg_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059275
194275
295275
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (*.f64 re re))))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -2082392151202083/68719476736) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (sin.f64 im))
(if (<=.f64 re -4249210800450371/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im)))
(if (<=.f64 re -4249210800450371/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2)))))
(if (<=.f64 re -2082392151202083/68719476736) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) im))
im
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 3602879701896397/4503599627370496) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 3602879701896397/4503599627370496) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1 (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (*.f64 re re))))))
(if (<=.f64 (exp.f64 re) 3602879701896397/4503599627370496) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 (*.f64 re re) 1/2)))))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 3602879701896397/4503599627370496) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 14757395258967642112/18446744073709551616) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 3602879701896397/4503599627370496) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -2082392151202083/68719476736) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (sin.f64 im))
(if (<=.f64 re -2082392151202083/68719476736) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (sin.f64 im))
(if (<=.f64 re -4249210800450371/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) (+.f64 (+.f64 0 (*.f64 (*.f64 re re) (*.f64 im 1/2))) im)))
(if (<=.f64 re -4249210800450371/2251799813685248) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (+.f64 (*.f64 re im) (+.f64 im (*.f64 (*.f64 re re) (*.f64 im 1/2)))))
(if (<=.f64 re -4249210800450371/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2)))))
(if (<=.f64 re -4249210800450371/2251799813685248) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (+.f64 (*.f64 re im) (*.f64 im (+.f64 1 (*.f64 (*.f64 re re) 1/2)))))
(if (<=.f64 re -2082392151202083/68719476736) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) im))
(if (<=.f64 re -2082392151202083/68719476736) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (+.f64 im (*.f64 re im)))
im
Compiler

Compiled 206 to 133 computations (35.4% saved)

soundness0.0ms (0%)

end157.0ms (1.9%)

Compiler

Compiled 186 to 89 computations (52.2% saved)

Profiling

Loading profile data...