Details

Time bar (total: 6.5s)

analyze96.0ms (1.5%)

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.7s (41.8%)

Results
1.1s6148×body256valid
858.0ms1394×body1024valid
222.0ms672×body1024invalid
185.0ms710×body512valid
132.0ms349×body512invalid
71.0ms494×body256invalid
3.0msbody2048valid

preprocess18.0ms (0.3%)

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)

simplify6.0ms (0.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)

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

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

rewrite65.0ms (1%)

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

simplify89.0ms (1.4%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
044296
1122294
2312274
3911250
42806249
53670249
65870249
76972249
87754249
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))
(*.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 (sin.f64 im) re)))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 1 (fma.f64 re (*.f64 re 1/2) re)))
(*.f64 (sin.f64 im) (+.f64 1 (fma.f64 1/2 (*.f64 re re) re)))
(+.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 (sin.f64 im) (fma.f64 (sin.f64 im) re (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 (*.f64 re 1/6) 1/2))))
(*.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 (exp.f64 re) (*.f64 (pow.f64 im 3) -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 (*.f64 (exp.f64 re) -1/6) (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/6 (pow.f64 im 3)) (*.f64 (exp.f64 re) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (fma.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 im (exp.f64 re)))))
(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 im (exp.f64 re) (*.f64 (*.f64 -1/5040 (pow.f64 im 7)) (exp.f64 re)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.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 (exp.f64 re) (+.f64 (fma.f64 1/120 (pow.f64 im 5) (*.f64 -1/5040 (pow.f64 im 7))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 1/120 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3))) (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))

eval6.0ms (0.1%)

Compiler

Compiled 292 to 146 computations (50% saved)

prune10.0ms (0.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New22527
Fresh000
Picked011
Done000
Total22628
Error
0.0b
Counts
28 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(*.f64 (exp.f64 re) im)
1.0b
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
21.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
21.2b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
21.3b
(sin.f64 im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 81 to 57 computations (29.6% saved)

localize6.0ms (0.1%)

Local error

Found 6 expressions with local error:

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

series23.0ms (0.3%)

Counts
2 → 40
Calls

12 calls:

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

rewrite59.0ms (0.9%)

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
(cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
Outputs
((#(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 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))))) (#(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 -.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 (cbrt.f64 (pow.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) (cbrt.f64 (pow.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 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 expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) (sin.f64 im))))))))

simplify120.0ms (1.8%)

Algorithm
egg-herbie
Rules
729×associate-*l*_binary64
702×associate-*r*_binary64
678×fma-def_binary64
294×*-commutative_binary64
284×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01091344
13531299
212011267
365831261
Stop Event
node limit
Counts
94 → 74
Calls
Call 1
Inputs
(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)
(*.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))
Outputs
(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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) re) (cbrt.f64 (sin.f64 im))))
(fma.f64 1/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 re (*.f64 re (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)))))) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -1/3)) (*.f64 re (*.f64 re (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (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 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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) re) (cbrt.f64 (sin.f64 im)))))
(fma.f64 1/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 re (*.f64 re (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)))))) (fma.f64 1/3 (*.f64 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.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 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) 2/3)))) (*.f64 (pow.f64 re 3) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))))) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (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 re (*.f64 re (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 (*.f64 (sin.f64 im) 1/6) (fma.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 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7))))) (pow.f64 re 3)))) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (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 re (*.f64 re (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 (fma.f64 (sin.f64 im) 1/6 (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 2/9 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27))) (pow.f64 re 3)))) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) re) (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)))
(*.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 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1)))
(fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (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 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)))) (cbrt.f64 (/.f64 1 (sin.f64 im))))))))) (+.f64 (sin.f64 im) (*.f64 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1))))
(fma.f64 (*.f64 re re) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 2/9 (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 (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 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im)))))) (*.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 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (sin.f64 im)))
(fma.f64 (*.f64 re re) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 2/9 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.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 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 (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 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (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 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)))) (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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (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 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)))) (cbrt.f64 (/.f64 1 (sin.f64 im))))))) (+.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 (*.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))) 2/9)))) (pow.f64 re 3) (*.f64 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1)))))
(+.f64 (fma.f64 (pow.f64 re 3) (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 2/3 (*.f64 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.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 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) 2/3)))) (cbrt.f64 (/.f64 1 (sin.f64 im)))) (*.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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (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 (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 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im))))))) (fma.f64 1/3 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.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 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) 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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) 2/9))))) (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)))) (fma.f64 (*.f64 re re) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 2/9 (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 (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 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im)))))) (*.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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 2/9 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.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 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 (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 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (pow.f64 re 3) (fma.f64 1/3 (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (fma.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 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 (sin.f64 im) 1/6) (fma.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 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)))))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27) (*.f64 (sin.f64 im) 1/9)) (*.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18)) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27) (*.f64 (sin.f64 im) 1/9)) (*.f64 (-.f64 (*.f64 (sin.f64 im) 1/6) (fma.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 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7))))) (*.f64 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im))))))))) (sin.f64 im))))
(fma.f64 re (*.f64 re (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 2/9 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.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 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 (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 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (pow.f64 re 3) (fma.f64 1/3 (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (fma.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 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)))) (fma.f64 (sin.f64 im) 1/6 (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 2/9 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27)))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27) (*.f64 (sin.f64 im) 1/9)) (*.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 (*.f64 (pow.f64 (sin.f64 im) 1/18) (pow.f64 (sin.f64 im) 1/18)) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) -2/27) (*.f64 (sin.f64 im) 1/9)) (*.f64 (fma.f64 (sin.f64 im) 1/6 (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 4) 1/18)) (+.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (*.f64 2/9 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18))) (*.f64 (sin.f64 im) -1/3)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/27))) (*.f64 2/3 (cbrt.f64 (/.f64 1 (sin.f64 im))))))))) (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))

localize2.0ms (0%)

localize3.0ms (0%)

Local error

Found 2 expressions with local error:

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

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
im
@inf
(*.f64 (exp.f64 re) im)
0.0ms
re
@inf
(*.f64 (exp.f64 re) im)
0.0ms
im
@0
(*.f64 (exp.f64 re) im)

rewrite38.0ms (0.6%)

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 log1p.f64 (expm1.f64 (*.f64 (exp.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 re (log.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (exp.f64 re) im)))))))

simplify95.0ms (1.5%)

Algorithm
egg-herbie
Rules
708×distribute-lft-out_binary64
686×*-commutative_binary64
603×sqr-pow_binary64
531×associate-+l+_binary64
431×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01846
15346
213642
340337
4147637
5237237
6400237
7413437
8437937
9473337
10547737
11631937
12708237
13761237
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 (*.f64 (*.f64 1/2 re) re) im 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 (*.f64 (*.f64 1/2 re) re) im 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)

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0ms
re
@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
im
@-inf
(*.f64 (sin.f64 im) (+.f64 re 1))

rewrite44.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
218829
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 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 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 expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (+.f64 re 1))))))))

simplify84.0ms (1.3%)

Algorithm
egg-herbie
Rules
1202×distribute-rgt-in_binary64
873×distribute-lft-in_binary64
736×fma-def_binary64
426×unswap-sqr_binary64
344×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030274
184274
2249254
3925240
43100240
54672240
65116240
75824240
85925240
96065240
106259240
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 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.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 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)))))
(fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) (*.f64 (+.f64 1 re) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 1 re) (+.f64 im (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (fma.f64 1/120 (pow.f64 im 5) 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))))))
(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 3) (fma.f64 re -1/6 -1/6) (fma.f64 (pow.f64 im 5) (fma.f64 re 1/120 1/120) (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.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/5040 (pow.f64 im 7) im) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/120 (pow.f64 im 5)))))
(*.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))

localize4.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series7.0ms (0.1%)

Counts
2 → 11
Calls

12 calls:

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

rewrite47.0ms (0.7%)

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

simplify115.0ms (1.8%)

Algorithm
egg-herbie
Rules
760×*-commutative_binary64
666×+-commutative_binary64
482×distribute-lft-out_binary64
455×associate-+l+_binary64
454×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
045185
1119185
2302174
31129171
43190165
54331165
65060165
75856165
86017165
96205165
106774165
117230165
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 (pow.f64 im 3) (*.f64 re -1/6)))
(*.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 re im (*.f64 re (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.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/6 (pow.f64 im 3)) (fma.f64 re (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 re (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.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 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 -1/5040 (pow.f64 im 7))))
(*.f64 re (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.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 (+.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 3) (fma.f64 re -1/6 -1/6) (*.f64 (+.f64 re 1) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.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 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))))
(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))))
(*.f64 (+.f64 re 1) (+.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 (+.f64 re 1) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (+.f64 re 1) (+.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 (+.f64 re 1) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.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))

eval89.0ms (1.4%)

Compiler

Compiled 3879 to 2160 computations (44.3% saved)

prune49.0ms (0.7%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New2215226
Fresh000
Picked101
Done145
Total2239232
Error
0b
Counts
232 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
42.0b
(*.f64 (+.f64 1 re) im)
22.2b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
20.8b
(*.f64 (exp.f64 re) im)
21.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
42.0b
(+.f64 (*.f64 re im) im)
21.3b
(sin.f64 im)
41.8b
im
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
0.3b
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2)) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
Compiler

Compiled 67 to 48 computations (28.4% saved)

localize83.0ms (1.3%)

Local error

Found 8 expressions with local error:

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

series17.0ms (0.3%)

Counts
4 → 52
Calls

15 calls:

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

rewrite141.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
893×pow1_binary64
820×add-log-exp_binary64
820×log1p-expm1-u_binary64
820×expm1-log1p-u_binary64
798×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify92.0ms (1.4%)

Algorithm
egg-herbie
Rules
692×unswap-sqr_binary64
605×distribute-lft-out_binary64
450×*-commutative_binary64
417×fma-def_binary64
393×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
078525
1214509
2559483
31788469
42745469
53817469
65437469
76147469
87584469
Stop Event
node limit
Counts
126 → 111
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 2/3 re))
(+.f64 1 (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re)))
(+.f64 1 (+.f64 (*.f64 4/81 (pow.f64 re 3)) (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re))))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
1
(+.f64 (*.f64 1/3 re) 1)
(+.f64 (*.f64 1/3 re) (+.f64 1 (*.f64 1/18 (pow.f64 re 2))))
(+.f64 (*.f64 1/162 (pow.f64 re 3)) (+.f64 (*.f64 1/3 re) (+.f64 1 (*.f64 1/18 (pow.f64 re 2)))))
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(pow.f64 (exp.f64 re) 1/3)
(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))
1
(+.f64 1 (*.f64 2 re))
(+.f64 1 (+.f64 (*.f64 2 (pow.f64 re 2)) (*.f64 2 re)))
(+.f64 1 (+.f64 (*.f64 4/3 (pow.f64 re 3)) (+.f64 (*.f64 2 (pow.f64 re 2)) (*.f64 2 re))))
Outputs
1
(+.f64 1 (*.f64 2/3 re))
(fma.f64 2/3 re 1)
(+.f64 1 (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re)))
(+.f64 1 (fma.f64 2/9 (*.f64 re re) (*.f64 2/3 re)))
(+.f64 (*.f64 re (*.f64 re 2/9)) (fma.f64 2/3 re 1))
(fma.f64 2/3 re (fma.f64 re (*.f64 re 2/9) 1))
(+.f64 1 (+.f64 (*.f64 4/81 (pow.f64 re 3)) (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re))))
(+.f64 1 (fma.f64 4/81 (pow.f64 re 3) (fma.f64 2/9 (*.f64 re re) (*.f64 2/3 re))))
(+.f64 (fma.f64 4/81 (pow.f64 re 3) (*.f64 re (*.f64 re 2/9))) (fma.f64 2/3 re 1))
(fma.f64 4/81 (pow.f64 re 3) (fma.f64 2/3 re (fma.f64 re (*.f64 re 2/9) 1)))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
(pow.f64 (pow.f64 (exp.f64 re) 2) 1/3)
(cbrt.f64 (pow.f64 (exp.f64 re) 2))
(cbrt.f64 (pow.f64 (exp.f64 2) re))
1
(+.f64 (*.f64 1/3 re) 1)
(fma.f64 1/3 re 1)
(fma.f64 re 1/3 1)
(+.f64 (*.f64 1/3 re) (+.f64 1 (*.f64 1/18 (pow.f64 re 2))))
(+.f64 (fma.f64 1/3 re 1) (*.f64 (*.f64 re re) 1/18))
(fma.f64 re 1/3 (fma.f64 (*.f64 re re) 1/18 1))
(fma.f64 (*.f64 re re) 1/18 (fma.f64 re 1/3 1))
(+.f64 (*.f64 1/162 (pow.f64 re 3)) (+.f64 (*.f64 1/3 re) (+.f64 1 (*.f64 1/18 (pow.f64 re 2)))))
(fma.f64 1/162 (pow.f64 re 3) (+.f64 (fma.f64 1/3 re 1) (*.f64 (*.f64 re re) 1/18)))
(fma.f64 (pow.f64 re 3) 1/162 (fma.f64 re 1/3 (fma.f64 (*.f64 re re) 1/18 1)))
(fma.f64 (pow.f64 re 3) 1/162 (fma.f64 (*.f64 re re) 1/18 (fma.f64 re 1/3 1)))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(pow.f64 (exp.f64 re) 1/3)
(cbrt.f64 (exp.f64 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(fma.f64 re (sin.f64 im) (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 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))))
(+.f64 (sin.f64 im) (fma.f64 re (sin.f64 im) (*.f64 (*.f64 re re) (*.f64 (sin.f64 im) 1/2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 1/2 re) re) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 re (*.f64 re 1/2)))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.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 (*.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 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))))
(+.f64 (sin.f64 im) (fma.f64 re (sin.f64 im) (fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 (sin.f64 im) 1/6)))))
(fma.f64 (+.f64 1 re) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 1/2 re) re) (*.f64 (pow.f64 re 3) 1/6))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.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 (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 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (fma.f64 (exp.f64 re) im (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120))))
(fma.f64 (exp.f64 re) im (*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.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 -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 (exp.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.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/5040 (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
(*.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))
1
(+.f64 1 (*.f64 2 re))
(+.f64 1 (*.f64 re 2))
(fma.f64 re 2 1)
(+.f64 1 (+.f64 (*.f64 2 (pow.f64 re 2)) (*.f64 2 re)))
(+.f64 1 (*.f64 2 (+.f64 (*.f64 re re) re)))
(fma.f64 2 (fma.f64 re re re) 1)
(+.f64 1 (+.f64 (*.f64 4/3 (pow.f64 re 3)) (+.f64 (*.f64 2 (pow.f64 re 2)) (*.f64 2 re))))
(+.f64 1 (fma.f64 4/3 (pow.f64 re 3) (*.f64 2 (+.f64 (*.f64 re re) re))))
(+.f64 1 (fma.f64 2 (fma.f64 re re re) (*.f64 (pow.f64 re 3) 4/3)))
(fma.f64 2 (fma.f64 re re re) (fma.f64 (pow.f64 re 3) 4/3 1))

localize3.0ms (0%)

Local error

Found 2 expressions with local error:

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

series11.0ms (0.2%)

Counts
1 → 21
Calls

6 calls:

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

rewrite41.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
633×pow1_binary64
590×add-log-exp_binary64
589×log1p-expm1-u_binary64
589×expm1-log1p-u_binary64
577×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify32.0ms (0.5%)

Algorithm
egg-herbie
Rules
63×fma-neg_binary64
62×fma-def_binary64
22×unsub-neg_binary64
17×associate-*l*_binary64
15×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013135
13099
26599
313399
422599
532599
639099
Stop Event
saturated
Counts
61 → 46
Calls
Call 1
Inputs
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 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
Outputs
im
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(fma.f64 im re im)

localize7.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.7b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
0.6b
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1)))
0.0b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.6b
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1)))
0.7b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)

series15.0ms (0.2%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
3.0ms
re
@0
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
2.0ms
im
@-inf
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
2.0ms
im
@inf
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
2.0ms
im
@0
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
2.0ms
re
@-inf
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)

rewrite73.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
896×pow1_binary64
839×add-log-exp_binary64
839×log1p-expm1-u_binary64
839×expm1-log1p-u_binary64
819×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify67.0ms (1%)

Algorithm
egg-herbie
Rules
679×unswap-sqr_binary64
632×associate-*l*_binary64
605×associate-*r*_binary64
572×fma-def_binary64
395×+-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0105732
1340704
21110664
35403655
47100647
Stop Event
node limit
Counts
89 → 86
Calls
Call 1
Inputs
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.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 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))))) (*.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 (+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 (sin.f64 im) 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (sin.f64 im)) 1/3) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 1 1/3))) (*.f64 -2/27 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))))) (pow.f64 re 3)) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))))) (*.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))))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 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/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 11) 1) 1/9) (pow.f64 re 2))) (+.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/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 re 3)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 11) 1) 1/9) (pow.f64 re 2))) (+.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))))
Outputs
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (pow.f64 1 1/3) (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) (pow.f64 1 1/3))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.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 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1)))
(fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))))) (*.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) (fma.f64 (*.f64 re re) (fma.f64 (cbrt.f64 (sin.f64 im)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 1/9)) (*.f64 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1))))
(+.f64 (sin.f64 im) (fma.f64 (*.f64 re re) (fma.f64 (cbrt.f64 (sin.f64 im)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/9) (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)))))
(fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (*.f64 re re) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (cbrt.f64 (sin.f64 im)))) -1/9 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (sin.f64 im)))
(fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (*.f64 re re) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (sin.f64 im)) -1/9))) (sin.f64 im)))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (sin.f64 im) 1) 1/3) (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 (sin.f64 im) 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (sin.f64 im)) 1/3) (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 1 1/3))) (*.f64 -2/27 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))))) (pow.f64 re 3)) (+.f64 (*.f64 (sin.f64 im) (pow.f64 1 1/3)) (+.f64 (*.f64 (pow.f64 re 2) (+.f64 (*.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/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 14) 1) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9)) (*.f64 2/9 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 17) 1) 1/9))))) (*.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 (fma.f64 (cbrt.f64 (sin.f64 im)) (+.f64 (*.f64 -2/27 (pow.f64 (sin.f64 im) 2)) (*.f64 (*.f64 -2/3 (cbrt.f64 (/.f64 1 (sin.f64 im)))) (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 (*.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7))) 1)))) (fma.f64 1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/9) (*.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 1 (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 (*.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7))) 1))) (*.f64 -2/27 (*.f64 1 (cbrt.f64 (pow.f64 (sin.f64 im) 7))))))) (pow.f64 re 3) (+.f64 (sin.f64 im) (fma.f64 (*.f64 re re) (fma.f64 (cbrt.f64 (sin.f64 im)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/9) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) 1/9)) (*.f64 re (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) 1)))))
(fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 -2/27 (pow.f64 (sin.f64 im) 2) (*.f64 (fma.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)))) (*.f64 -2/3 (cbrt.f64 (/.f64 1 (sin.f64 im)))))) (fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)))) (fma.f64 -2/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 (fma.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)))) -1/3)))) (pow.f64 re 3) (+.f64 (sin.f64 im) (fma.f64 (*.f64 re re) (fma.f64 (cbrt.f64 (sin.f64 im)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/9) (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18))))))
(fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 -2/27 (pow.f64 (sin.f64 im) 2) (*.f64 -2/3 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -5/27)))) (fma.f64 -2/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -5/27) -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 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) 14) 1/18))) -1/27)))) (pow.f64 re 3) (fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (*.f64 re re) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (cbrt.f64 (sin.f64 im)))) -1/9 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)))) (sin.f64 im))))
(fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 -2/27 (pow.f64 (sin.f64 im) 2) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (cbrt.f64 (pow.f64 (sin.f64 im) 7))) 10/81)) (fma.f64 -2/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/27) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) 5/81)))) (pow.f64 re 3) (fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (*.f64 re re) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (sin.f64 im)) -1/9))) (sin.f64 im))))
(fma.f64 (fma.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 -2/27 (pow.f64 (sin.f64 im) 2) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (sin.f64 im))) (cbrt.f64 (pow.f64 (sin.f64 im) 7))) 10/81)) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) -1/27) (+.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -1/81) 0))) (pow.f64 re 3) (fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 13) 1/18)) (fma.f64 (*.f64 re re) (fma.f64 1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 14) 1/18)) (*.f64 (cbrt.f64 (sin.f64 im)) -1/9))) (sin.f64 im))))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1/3)
(cbrt.f64 (*.f64 (sin.f64 im) (+.f64 1 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 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 1/3 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im)))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 11) 1) 1/9) (pow.f64 re 2))) (+.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/9 (*.f64 (*.f64 re re) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18))) (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/9 (*.f64 re (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18)))) (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 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (*.f64 1/3 re) (fma.f64 -1/9 (*.f64 re (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18)))) (cbrt.f64 (sin.f64 im))))
(fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 1/3 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (fma.f64 -1/9 (*.f64 re (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18)))) (cbrt.f64 (sin.f64 im))))
(+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 1/27 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 7) 1) 1/3)) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 re 3)) (pow.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 im) 11) 1) 1/9) (pow.f64 re 2))) (+.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 (fma.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 (*.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7))) 1)) (pow.f64 re 3)) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)))) (fma.f64 -1/9 (*.f64 (*.f64 re re) (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18))) (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 (*.f64 -1/3 (*.f64 (fma.f64 -2/9 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) (*.f64 1/27 (cbrt.f64 (pow.f64 (sin.f64 im) 7)))) (pow.f64 re 3))) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))) (fma.f64 -1/9 (*.f64 re (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18)))) (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 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) -5/27) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2))) (*.f64 -1/3 (pow.f64 re 3))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18)) (*.f64 1/3 re) (fma.f64 -1/9 (*.f64 re (*.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18)))) (cbrt.f64 (sin.f64 im)))))
(fma.f64 (*.f64 re re) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18) (pow.f64 (pow.f64 (sin.f64 im) 11) 1/18))) (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 im) 7)) 5/81) (*.f64 (pow.f64 re 3) (cbrt.f64 (/.f64 1 (pow.f64 (sin.f64 im) 2)))) (fma.f64 re (*.f64 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18) (*.f64 1/3 (pow.f64 (pow.f64 (sin.f64 im) 7) 1/18))) (cbrt.f64 (sin.f64 im)))))

localize3.0ms (0%)

Local error

Found 2 expressions with local error:

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

series30.0ms (0.5%)

Counts
1 → 12
Calls

6 calls:

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

rewrite37.0ms (0.6%)

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
215147
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 log1p.f64 (expm1.f64 (+.f64 im (*.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 im) (log1p.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 im (*.f64 re im))))))))

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

eval145.0ms (2.2%)

Compiler

Compiled 4570 to 2512 computations (45% saved)

prune87.0ms (1.3%)

Pruning

13 alts after pruning (7 fresh and 6 done)

PrunedKeptTotal
New2967303
Fresh101
Picked011
Done257
Total29913312
Error
0b
Counts
312 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
42.2b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
0.0b
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
42.0b
(*.f64 (+.f64 1 re) im)
21.4b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
22.2b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
20.8b
(*.f64 (exp.f64 re) im)
55.3b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
21.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
42.0b
(+.f64 (*.f64 re im) im)
21.3b
(sin.f64 im)
61.4b
(*.f64 re im)
21.4b
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
41.8b
im
Compiler

Compiled 194 to 137 computations (29.4% saved)

localize8.0ms (0.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (exp.f64 re) 2/3)
0.0b
(cbrt.f64 (exp.f64 re))
0.0b
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
0.0b
(*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im))
0.0b
(*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im))
0.0b
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
0.0b
(cbrt.f64 (exp.f64 re))
0.1b
(pow.f64 (exp.f64 re) 2/3)

series75.0ms (1.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
43.0ms
re
@inf
(pow.f64 (exp.f64 re) 2/3)
14.0ms
re
@-inf
(pow.f64 (exp.f64 re) 2/3)
8.0ms
im
@0
(*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im))
2.0ms
re
@-inf
(*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im))
2.0ms
re
@inf
(*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im))

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
850×pow1_binary64
785×add-log-exp_binary64
785×log1p-expm1-u_binary64
785×expm1-log1p-u_binary64
766×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify90.0ms (1.4%)

Algorithm
egg-herbie
Rules
554×times-frac_binary64
541×fma-def_binary64
449×distribute-rgt-in_binary64
444×unswap-sqr_binary64
358×distribute-lft-out_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
085744
1239738
2715690
32407653
43590653
54884653
65581651
77073651
Stop Event
node limit
Counts
106 → 88
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 2/3 re))
(+.f64 1 (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re)))
(+.f64 1 (+.f64 (*.f64 4/81 (pow.f64 re 3)) (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re))))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 re))
(exp.f64 (*.f64 2/3 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 (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 1/3 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/3 (*.f64 (sin.f64 im) re)) (*.f64 1/18 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/3 (*.f64 (sin.f64 im) re)) (+.f64 (*.f64 1/162 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/18 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im)
(+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3)))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 7))) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3))))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
Outputs
1
(+.f64 1 (*.f64 2/3 re))
(fma.f64 2/3 re 1)
(+.f64 1 (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re)))
(+.f64 1 (fma.f64 2/9 (*.f64 re re) (*.f64 2/3 re)))
(+.f64 1 (fma.f64 2/3 re (*.f64 re (*.f64 re 2/9))))
(fma.f64 2/3 re (fma.f64 re (*.f64 re 2/9) 1))
(+.f64 1 (+.f64 (*.f64 4/81 (pow.f64 re 3)) (+.f64 (*.f64 2/9 (pow.f64 re 2)) (*.f64 2/3 re))))
(+.f64 1 (fma.f64 4/81 (pow.f64 re 3) (fma.f64 2/9 (*.f64 re re) (*.f64 2/3 re))))
(+.f64 (fma.f64 4/81 (pow.f64 re 3) (*.f64 re (*.f64 re 2/9))) (fma.f64 2/3 re 1))
(fma.f64 4/81 (pow.f64 re 3) (fma.f64 2/3 re (fma.f64 re (*.f64 re 2/9) 1)))
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) re)
(exp.f64 (*.f64 2/3 re))
(pow.f64 (exp.f64 2/3) 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))
(fma.f64 re (sin.f64 im) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 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) (fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im)))))
(+.f64 (sin.f64 im) (fma.f64 re (sin.f64 im) (*.f64 (*.f64 re re) (*.f64 (sin.f64 im) 1/2))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 re (*.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 (pow.f64 re 3) (sin.f64 im)) (*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im))))))
(+.f64 (sin.f64 im) (fma.f64 re (sin.f64 im) (fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 (sin.f64 im) 1/6)))))
(fma.f64 (+.f64 1 re) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re (*.f64 re 1/2)) (*.f64 (pow.f64 re 3) 1/6))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 1/6 re)))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 1/6 re))))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.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 (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 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.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 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5)) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 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 im (exp.f64 re)))))
(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 im (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.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 (exp.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 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.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 1/3 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (*.f64 (*.f64 1/3 (sin.f64 im)) re))
(fma.f64 (*.f64 re (sin.f64 im)) 1/3 (sin.f64 im))
(fma.f64 re (*.f64 (sin.f64 im) 1/3) (sin.f64 im))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/3 (*.f64 (sin.f64 im) re)) (*.f64 1/18 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (fma.f64 1/3 (*.f64 re (sin.f64 im)) (*.f64 (*.f64 (*.f64 re re) (sin.f64 im)) 1/18)))
(+.f64 (sin.f64 im) (fma.f64 (*.f64 re (sin.f64 im)) 1/3 (*.f64 (*.f64 re re) (*.f64 (sin.f64 im) 1/18))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re 1/3) (*.f64 (*.f64 re re) 1/18))))
(*.f64 (sin.f64 im) (+.f64 1 (*.f64 re (+.f64 1/3 (*.f64 1/18 re)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 1/3 (*.f64 (sin.f64 im) re)) (+.f64 (*.f64 1/162 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/18 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (fma.f64 1/3 (*.f64 re (sin.f64 im)) (fma.f64 1/162 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 (*.f64 re re) (sin.f64 im)) 1/18))))
(+.f64 (sin.f64 im) (fma.f64 (*.f64 re (sin.f64 im)) 1/3 (fma.f64 (*.f64 re (*.f64 re (sin.f64 im))) 1/18 (*.f64 (pow.f64 re 3) (*.f64 (sin.f64 im) 1/162)))))
(+.f64 (sin.f64 im) (fma.f64 re (*.f64 (sin.f64 im) 1/3) (*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) 1/18) (*.f64 (pow.f64 re 3) 1/162)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re (+.f64 1/3 (*.f64 1/18 re))) (*.f64 (pow.f64 re 3) 1/162))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re 1/3) (*.f64 (*.f64 re re) (+.f64 1/18 (*.f64 re 1/162))))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 re 1/3) (+.f64 1 (*.f64 (*.f64 re re) (+.f64 1/18 (*.f64 1/162 re))))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im)
(*.f64 im (cbrt.f64 (exp.f64 re)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3))))
(fma.f64 (cbrt.f64 (exp.f64 re)) im (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re)))))
(fma.f64 im (cbrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re)))))
(*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3)))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (cbrt.f64 (exp.f64 re))) (fma.f64 (cbrt.f64 (exp.f64 re)) im (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re))))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (cbrt.f64 (exp.f64 re))) (fma.f64 im (cbrt.f64 (exp.f64 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re))))))
(fma.f64 im (cbrt.f64 (exp.f64 re)) (*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) im) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 7))) (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (pow.f64 im 3))))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (cbrt.f64 (exp.f64 re))) (fma.f64 (cbrt.f64 (exp.f64 re)) im (fma.f64 -1/5040 (*.f64 (pow.f64 im 7) (cbrt.f64 (exp.f64 re))) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re)))))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (cbrt.f64 (exp.f64 re))) (fma.f64 im (cbrt.f64 (exp.f64 re)) (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cbrt.f64 (exp.f64 re))) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cbrt.f64 (exp.f64 re)))))))
(+.f64 (*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (cbrt.f64 (exp.f64 re)) (+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (cbrt.f64 (exp.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 (cbrt.f64 (exp.f64 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (pow.f64 (*.f64 1 (exp.f64 re)) 1/3) (sin.f64 im))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))
(*.f64 (sin.f64 im) (pow.f64 (*.f64 1 (exp.f64 re)) 1/3))
(*.f64 (sin.f64 im) (cbrt.f64 (exp.f64 re)))

localize2.0ms (0%)

localize5.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series4.0ms (0.1%)

Counts
2 → 42
Calls

12 calls:

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

rewrite67.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
636×fma-def_binary64
397×log-prod_binary64
350×prod-exp_binary64
330×fma-neg_binary64
296×exp-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify17.0ms (0.3%)

Algorithm
egg-herbie
Rules
63×fma-neg_binary64
62×fma-def_binary64
22×unsub-neg_binary64
17×associate-*l*_binary64
15×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014198
131198
265198
3133198
4222198
5322198
6387198
Stop Event
saturated
Counts
294 → 139
Calls
Call 1
Inputs
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
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 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(*.f64 re im)
(*.f64 re im)
Outputs
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(*.f64 re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(*.f64 re im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(+.f64 im (*.f64 re im))
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 (+.f64 1 re) im)
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(fma.f64 re im im)
im
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(+.f64 (*.f64 re im) im)
(fma.f64 re im im)
(*.f64 re im)
(*.f64 re im)

localize20.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.1b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
3.1b
(*.f64 (-.f64 1 (*.f64 re re)) im)
3.1b
(*.f64 (-.f64 1 (*.f64 re re)) im)
4.1b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
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))
1.0ms
im
@-inf
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))

rewrite63.0ms (1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0926
120017
2286317
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 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 expm1.f64 (log1p.f64 (*.f64 (+.f64 1 re) im)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 im (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 im (*.f64 im (*.f64 re (neg.f64 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 fma.f64 1 im (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 im (*.f64 im (*.f64 re (neg.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im 1 (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im 1 (*.f64 im (*.f64 re (neg.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 im) 2) (*.f64 im (*.f64 re (neg.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 im) 2) (cbrt.f64 im) (*.f64 im (*.f64 re (neg.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (sqrt.f64 im) (*.f64 (*.f64 re (neg.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (sqrt.f64 im) (*.f64 im (*.f64 re (neg.f64 re))))))) (#(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 (log.f64 (pow.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) 3)) 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 expm1.f64 (log1p.f64 (*.f64 (-.f64 1 (*.f64 re re)) im)))))))

simplify51.0ms (0.8%)

Algorithm
egg-herbie
Rules
950×fma-neg_binary64
349×associate-/r/_binary64
345×associate-/l/_binary64
327×associate-*l*_binary64
298×div-sub_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
017496
141475
289475
3196475
4613475
52385475
66079403
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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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 (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)) im)
(/.f64 (-.f64 im (*.f64 re (*.f64 im re))) (-.f64 1 re))
(*.f64 im (/.f64 (-.f64 1 (*.f64 re re)) (-.f64 1 re)))
(*.f64 im (neg.f64 (/.f64 (fma.f64 re re -1) (-.f64 1 re))))
(*.f64 im (/.f64 (neg.f64 (fma.f64 re re -1)) (-.f64 1 re)))
(*.f64 im (/.f64 (-.f64 -1 re) -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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(neg.f64 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 re (neg.f64 re)))
(*.f64 re (neg.f64 (*.f64 im re)))
(*.f64 im (neg.f64 (*.f64 re re)))
(*.f64 (*.f64 im re) (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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.f64 -1 (*.f64 (pow.f64 re 2) im))
(neg.f64 (*.f64 im (*.f64 re re)))
(*.f64 im (*.f64 re (neg.f64 re)))
(*.f64 re (neg.f64 (*.f64 im re)))
(*.f64 im (neg.f64 (*.f64 re re)))
(*.f64 (*.f64 im re) (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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re 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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))
(*.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)))
(-.f64 im (*.f64 im (*.f64 re re)))

localize8.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
3.1b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
0.0b
(+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))
0.0b
(+.f64 1 (*.f64 re (*.f64 re 1/2)))
0.0b
(+.f64 1 (*.f64 re (*.f64 re 1/2)))
0.0b
(+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))
3.1b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))

series10.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

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

rewrite75.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
587×fma-def_binary64
577×log-prod_binary64
451×pow-prod-down_binary64
311×pow2_binary64
242×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01141
124035
2335735
Stop Event
node limit
Counts
3 → 183
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
(+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))
(+.f64 1 (*.f64 re (*.f64 re 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (*.f64 (*.f64 re (*.f64 re 1/2)) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 im) re) 1) (*.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 (sin.f64 im) (*.f64 re (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 im)) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 im)) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 im)) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 im)) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 im) re) 3) (pow.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) 3)) (+.f64 (pow.f64 (*.f64 (sin.f64 im) re) 2) (-.f64 (pow.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) 2) (*.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 im) re) 2) (pow.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) 2)) (-.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3)) (sin.f64 im)) (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2)) (sin.f64 im)) (-.f64 re (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3))) (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2))) (-.f64 re (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 im)) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))) (exp.f64 (*.f64 (sin.f64 im) re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 im) re (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 im) (+.f64 re 1) (*.f64 (sin.f64 im) (*.f64 re (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (sin.f64 im) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (sin.f64 im) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) (sin.f64 im)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 im)) 2) (*.f64 (cbrt.f64 (sin.f64 im)) (fma.f64 re (*.f64 re 1/2) 1)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (sin.f64 im)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) (*.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) (sin.f64 im)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 im)) (*.f64 (sqrt.f64 (sin.f64 im)) re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 im)) (*.f64 (sqrt.f64 (sin.f64 im)) (fma.f64 re (*.f64 re 1/2) 1)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (sin.f64 im)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 im) re) 1 (*.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re 1) (sin.f64 im) (*.f64 (*.f64 re (*.f64 re 1/2)) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))) 2) (cbrt.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))) (*.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)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))) (sqrt.f64 (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1))) (*.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)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 im) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 im) (sqrt.f64 re)) (sqrt.f64 re) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (pow.f64 (cbrt.f64 (sin.f64 im)) 2)) (cbrt.f64 (sin.f64 im)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 (sin.f64 im))) (sqrt.f64 (sin.f64 im)) (*.f64 (sin.f64 im) (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 im) (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2)) (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 im) (hypot.f64 1 (*.f64 re (sqrt.f64 1/2)))) (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 re (*.f64 re 1/2) 1) (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 (*.f64 (fma.f64 re (*.f64 re 1/2) 1) (sqrt.f64 (sin.f64 im))) (sqrt.f64 (sin.f64 im)) (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sin.f64 im)) (log1p.f64 (fma.f64 re (*.f64 re 1/2) re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log.f64 (sin.f64 im)) (log1p.f64 (fma.f64 re (*.f64 re 1/2) re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 re re) (-.f64 re (fma.f64 re (*.f64 re 1/2) 1))) (/.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2) (-.f64 re (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) (sqrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3)) (/.f64 1 (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2)) (/.f64 1 (-.f64 re (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re)) (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 re (fma.f64 re (*.f64 re 1/2) 1)) (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3)) (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3)) (+.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2) (-.f64 (*.f64 re re) (*.f64 re (fma.f64 re (*.f64 re 1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2)) (-.f64 re (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3))) (neg.f64 (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2))) (neg.f64 (-.f64 re (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 re 1) 3) (*.f64 (pow.f64 re 6) 1/8)) (+.f64 (pow.f64 (+.f64 re 1) 2) (-.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4) (*.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2) (*.f64 re re)) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 re 1) 2) (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (-.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 re (*.f64 re 1/2) 1) (-.f64 (fma.f64 re (*.f64 re 1/2) 1) re) (*.f64 re re)) (+.f64 (pow.f64 re 3) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 re (fma.f64 re (*.f64 re 1/2) 1)) (-.f64 (*.f64 re re) (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (exp.f64 (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) re) (exp.f64 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 re (*.f64 re 1/2)))) (exp.f64 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1))) (exp.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 re (*.f64 re 1/2) 1)) (+.f64 1 (expm1.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1))) (+.f64 1 (expm1.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 re 1)) (+.f64 1 (expm1.f64 (*.f64 re (*.f64 re 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re 1 (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (*.f64 re 1/2) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 re (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re (*.f64 re 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 re (*.f64 re 1/2) 1) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 re 1) (*.f64 re (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re 1/2) re (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (*.f64 re 1/2)) 1 (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 re (*.f64 re 1/2) 1) 1 re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1/2 (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re (*.f64 re 1/2))) (cbrt.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (cbrt.f64 (*.f64 re (*.f64 re 1/2))) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2) (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/4 (*.f64 re re))) (*.f64 (cbrt.f64 (*.f64 re 1/2)) re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (*.f64 re 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 1/2)) (*.f64 re (sqrt.f64 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 re 1/2)) (*.f64 (sqrt.f64 (*.f64 re 1/2)) re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (sqrt.f64 re) (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (*.f64 re 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 re 6) 1/8 1) (/.f64 1 (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1)) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (/.f64 1 (-.f64 1 (*.f64 re (*.f64 re 1/2)))) re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 re 1) 1 (*.f64 re (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 re 1)) 2) (cbrt.f64 (+.f64 re 1)) (*.f64 re (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 re 1)) (sqrt.f64 (+.f64 re 1)) (*.f64 re (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 1/4 (*.f64 re re)))) (cbrt.f64 (*.f64 re 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 (*.f64 re 1/2))) (sqrt.f64 (*.f64 re 1/2)) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 re 1/2) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 re 1/2) (sqrt.f64 re)) (sqrt.f64 re) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (fma.f64 re (*.f64 re 1/2) re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (fma.f64 re (*.f64 re 1/2) re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 re (*.f64 re 1/2) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (*.f64 re (*.f64 re 1/2)))) (/.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4) (-.f64 1 (*.f64 re (*.f64 re 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 re (*.f64 re 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 re (*.f64 re 1/2) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 2) (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 re 6) 1/8 1) (/.f64 1 (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (/.f64 1 (-.f64 1 (*.f64 re (*.f64 re 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1) (fma.f64 (pow.f64 re 6) 1/8 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (*.f64 re (*.f64 re 1/2))) (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 re 6) 1/8 1) (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 re 6) 1/8 1) (fma.f64 (pow.f64 (*.f64 re re) 2) 1/4 (-.f64 1 (*.f64 re (*.f64 re 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (-.f64 1 (*.f64 re (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 re 6) 1/8 1)) (neg.f64 (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4))) (neg.f64 (-.f64 1 (*.f64 re (*.f64 re 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 re re) 2) 1/4 -1) (fma.f64 re (*.f64 re 1/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 re (*.f64 re 1/2) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 re (*.f64 re 1/2)) (fma.f64 re (*.f64 re 1/2) -1) 1) (fma.f64 (pow.f64 re 6) 1/8 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (*.f64 re (*.f64 re 1/2))) (-.f64 1 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 re (*.f64 re 1/2) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (*.f64 re 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 re (*.f64 re 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 re re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re 1/2) re 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (*.f64 re 1/2)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re re) 1/2 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 re (*.f64 re 1/2))) (cbrt.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 re (sqrt.f64 1/2)) 4)) (cbrt.f64 (*.f64 re (*.f64 re 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/4 (*.f64 re re))) (*.f64 (cbrt.f64 (*.f64 re 1/2)) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 re) 2) (*.f64 (cbrt.f64 re) (*.f64 re 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 1/2)) (*.f64 re (sqrt.f64 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 re 1/2)) (*.f64 (sqrt.f64 (*.f64 re 1/2)) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 re) (*.f64 (sqrt.f64 re) (*.f64 re 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (cbrt.f64 (*.f64 1/4 (*.f64 re re)))) (cbrt.f64 (*.f64 re 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 re (sqrt.f64 (*.f64 re 1/2))) (sqrt.f64 (*.f64 re 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 re 1/2) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 re 1/2) (sqrt.f64 re)) (sqrt.f64 re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 re (*.f64 re 1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 re (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 re (*.f64 re 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 re (*.f64 re 1/2) 1)))))))

simplify113.0ms (1.7%)

Algorithm
egg-herbie
Rules
1222×distribute-rgt-in_binary64
1091×distribute-lft-in_binary64
910×*-commutative_binary64
434×unswap-sqr_binary64
250×sqr-pow_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041662
1116660
2371608
31789584
43572584
53992584
64687584
74787584
84895584
95033584
107573584
117957584
Stop Event
node limit
Counts
231 → 211
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 5)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (+.f64 (*.f64 -1/5040 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 5))))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 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 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.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 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.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 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
1
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
Outputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) im)
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) im)
(+.f64 im (*.f64 im (fma.f64 1/2 (*.f64 re re) re)))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))))
(fma.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) im (*.f64 -1/6 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 3))))
(fma.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) im (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 5)))))
(fma.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) im (fma.f64 -1/6 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 5)))))
(fma.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) im (fma.f64 -1/6 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 3)) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 (pow.f64 im 5) 1/120))))
(fma.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) im (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im) (+.f64 (*.f64 -1/5040 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 5))))))
(fma.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) im (fma.f64 -1/5040 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 7)) (fma.f64 -1/6 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 5))))))
(fma.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) im (fma.f64 -1/5040 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 7)) (fma.f64 -1/6 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 3)) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 (pow.f64 im 5) 1/120)))))
(+.f64 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (+.f64 (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (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))
(fma.f64 re (sin.f64 im) (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 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (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 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 1/2 (*.f64 re re)) (sin.f64 im))
(*.f64 re (*.f64 (sin.f64 im) (*.f64 1/2 re)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im))))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 re (sin.f64 im)))
(*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (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 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 1/2 (*.f64 re re)) (sin.f64 im))
(*.f64 re (*.f64 (sin.f64 im) (*.f64 1/2 re)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 (sin.f64 im) re (*.f64 1/2 (*.f64 (*.f64 re re) (sin.f64 im))))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 re (sin.f64 im)))
(*.f64 (sin.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (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 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (sin.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (sin.f64 im))
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
1
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(fma.f64 1/2 (*.f64 re re) 1)

eval168.0ms (2.6%)

Compiler

Compiled 8719 to 4798 computations (45% saved)

prune81.0ms (1.2%)

Pruning

15 alts after pruning (6 fresh and 9 done)

PrunedKeptTotal
New5685573
Fresh112
Picked011
Done2810
Total57115586
Error
0b
Counts
586 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
21.4b
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
20.8b
(*.f64 (exp.f64 re) im)
42.2b
(/.f64 (-.f64 im (*.f64 im (*.f64 re re))) (-.f64 1 re))
42.0b
(+.f64 (*.f64 re im) im)
40.6b
(*.f64 (-.f64 1 (*.f64 re re)) (/.f64 1 (/.f64 (-.f64 1 re) im)))
20.8b
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 im (cbrt.f64 (exp.f64 re))))
42.0b
(*.f64 (+.f64 1 re) im)
21.4b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
22.2b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
55.3b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
61.7b
(/.f64 (*.f64 (*.f64 im re) (neg.f64 re)) (-.f64 1 re))
21.2b
(*.f64 (sin.f64 im) (+.f64 re 1))
21.3b
(sin.f64 im)
61.4b
(*.f64 re im)
41.8b
im
Compiler

Compiled 146 to 102 computations (30.1% saved)

regimes55.0ms (0.8%)

Counts
23 → 1
Calls
Call 1
Inputs
im
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
(/.f64 (*.f64 (*.f64 im re) (neg.f64 re)) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 im (*.f64 re 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)))
(sin.f64 im)
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.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))
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 im) (+.f64 re 1))) 3)
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 re) (sin.f64 im))) 3)
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 im (cbrt.f64 (exp.f64 re))))
(*.f64 (pow.f64 (exp.f64 re) 2/3) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 re) 2)) (*.f64 (cbrt.f64 (exp.f64 re)) (sin.f64 im)))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
Calls

5 calls:

12.0ms
(sin.f64 im)
12.0ms
re
12.0ms
im
9.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 210 to 109 computations (48.1% saved)

regimes144.0ms (2.2%)

Counts
16 → 2
Calls
Call 1
Inputs
im
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
(/.f64 (*.f64 (*.f64 im re) (neg.f64 re)) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 im (*.f64 re 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)))
(sin.f64 im)
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2)))))
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
Outputs
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))))
Calls

6 calls:

39.0ms
(sin.f64 im)
38.0ms
(sin.f64 im)
37.0ms
im
16.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b2re
6.4b5im
0.0b2(exp.f64 re)
0.0b2(exp.f64 re)
6.6b5(sin.f64 im)
6.6b5(sin.f64 im)
Compiler

Compiled 149 to 85 computations (43% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.992456503312819
0.9999999999216468
Compiler

Compiled 12 to 9 computations (25% saved)

regimes147.0ms (2.3%)

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

6 calls:

36.0ms
(sin.f64 im)
35.0ms
(sin.f64 im)
35.0ms
im
29.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b2re
6.5b5im
0.0b2(exp.f64 re)
0.0b2(exp.f64 re)
6.6b5(sin.f64 im)
6.6b5(sin.f64 im)
Compiler

Compiled 117 to 67 computations (42.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.992456503312819
0.9999999999216468
Compiler

Compiled 12 to 9 computations (25% saved)

regimes128.0ms (2%)

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

6 calls:

34.0ms
(sin.f64 im)
33.0ms
(sin.f64 im)
33.0ms
im
16.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.1b2re
6.5b5im
0.1b2(exp.f64 re)
0.1b2(exp.f64 re)
6.7b5(sin.f64 im)
6.7b5(sin.f64 im)
Compiler

Compiled 105 to 60 computations (42.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.992456503312819
0.9999999999216468
Compiler

Compiled 12 to 9 computations (25% saved)

regimes88.0ms (1.4%)

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

4 calls:

34.0ms
im
32.0ms
(sin.f64 im)
15.0ms
re
5.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.4b2re
6.6b5im
0.4b2(exp.f64 re)
6.8b5(sin.f64 im)
Compiler

Compiled 91 to 51 computations (44% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999999999216468
0.9999999999733682
Compiler

Compiled 12 to 9 computations (25% saved)

regimes58.0ms (0.9%)

Counts
11 → 2
Calls
Call 1
Inputs
im
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
(/.f64 (*.f64 (*.f64 im re) (neg.f64 re)) (-.f64 1 re))
(/.f64 (-.f64 im (*.f64 im (*.f64 re 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)))
(sin.f64 im)
Outputs
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
(sin.f64 im)
Calls

3 calls:

21.0ms
im
21.0ms
(sin.f64 im)
14.0ms
re
Results
ErrorSegmentsBranch
15.7b2re
19.8b3im
19.8b3(sin.f64 im)
Compiler

Compiled 83 to 46 computations (44.6% saved)

bsearch49.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
48.0ms
-484.37465838698324
-2.6886274792874194
Compiler

Compiled 12 to 9 computations (25% saved)

regimes24.0ms (0.4%)

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

2 calls:

11.0ms
re
6.0ms
im
Results
ErrorSegmentsBranch
36.0b2re
40.6b1im
Compiler

Compiled 77 to 42 computations (45.5% saved)

bsearch47.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
47.0ms
-2.6886274792874194
-0.009658512287828196
Compiler

Compiled 12 to 9 computations (25% saved)

regimes21.0ms (0.3%)

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

2 calls:

11.0ms
re
8.0ms
im
Results
ErrorSegmentsBranch
36.0b2re
41.8b1im
Compiler

Compiled 42 to 22 computations (47.6% saved)

bsearch46.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
-2.6886274792874194
-0.009658512287828196
Compiler

Compiled 12 to 9 computations (25% saved)

regimes10.0ms (0.2%)

Accuracy

Total -20.0b remaining (-47.9%)

Threshold costs -20.0b (-47.9%)

Counts
5 → 1
Calls
Call 1
Inputs
im
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
Outputs
im
Calls

2 calls:

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

Compiled 23 to 11 computations (52.2% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
15×+-commutative_binary64
15×*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049202
180202
294202
3104202
4109202
5110202
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 18446744072787214336/18446744073709551616) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -4260604552772127/8796093022208) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (sin.f64 im))
(if (<=.f64 re -6054250856928449/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (/.f64 (-.f64 im (*.f64 im (*.f64 re re))) (-.f64 1 re)))
(if (<=.f64 re -6054250856928449/2251799813685248) (-.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) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 8962163258467287/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 1 (+.f64 re (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))))
(if (<=.f64 (exp.f64 re) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 8962163258467287/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re 1/2))))))
(if (<=.f64 (exp.f64 re) 18354510353341003776/18446744073709551616) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 8962163258467287/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 18446744072787214336/18446744073709551616) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 1125899906786329/1125899906842624) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -4260604552772127/8796093022208) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (sin.f64 im))
(if (<=.f64 re -4260604552772127/8796093022208) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (sin.f64 im))
(if (<=.f64 re -6054250856928449/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (/.f64 (-.f64 im (*.f64 im (*.f64 re re))) (-.f64 1 re)))
(if (<=.f64 re -6054250856928449/2251799813685248) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (/.f64 (-.f64 im (*.f64 im (*.f64 re re))) (-.f64 1 re)))
(if (<=.f64 re -6054250856928449/2251799813685248) (-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1) (+.f64 (*.f64 re im) im))
(if (<=.f64 re -6054250856928449/2251799813685248) (+.f64 (+.f64 1 (+.f64 im (*.f64 re im))) -1) (+.f64 im (*.f64 re im)))
im

end67.0ms (1%)

Stop Event
fuel
Compiler

Compiled 290 to 165 computations (43.1% saved)

Profiling

Loading profile data...