Details

Time bar (total: 7.2s)

analyze109.0ms (1.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
50%50%50%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
75%74.9%25%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
77.4%74.9%21.9%0.1%3.1%0%0%6
78.7%74.9%20.3%0.1%4.7%0%0%7
80.7%74.9%18%0.1%7%0%0%8
81.7%74.9%16.8%0.1%8.2%0%0%9
82.9%74.9%15.4%0.1%9.6%0%0%10
83.6%74.9%14.7%0.1%10.2%0%0%11
84.3%74.9%14%0.1%11%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample1.9s (26.6%)

Results
794.0ms6190×body256valid
563.0ms1370×body1024valid
224.0ms689×body1024infinite
155.0ms692×body512valid
65.0ms306×body512infinite
64.0ms512×body256infinite
2.0msbody2048valid
Bogosity

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

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite67.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify97.0ms (1.3%)

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

Useful iterations: 4 (0.0ms)

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

eval6.0ms (0.1%)

Compiler

Compiled 292 to 144 computations (50.7% saved)

prune8.0ms (0.1%)

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
18.8b
(+.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))))))
18.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
18.9b
(sin.f64 im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
32.9b
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))
21.8b
(*.f64 (exp.f64 re) im)
Compiler

Compiled 113 to 77 computations (31.9% saved)

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite61.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify115.0ms (1.6%)

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

Useful iterations: 3 (0.0ms)

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

localize4.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize5.0ms (0.1%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 re (log.f64 (sin.f64 im)))
0.2b
(log.f64 (sin.f64 im))
1.1b
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))
Compiler

Compiled 20 to 6 computations (70% saved)

series73.0ms (1%)

Counts
3 → 23
Calls

15 calls:

TimeVariablePointExpression
47.0ms
im
@inf
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))
18.0ms
im
@-inf
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))
3.0ms
re
@0
(+.f64 re (log.f64 (sin.f64 im)))
1.0ms
im
@0
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))
1.0ms
re
@0
(exp.f64 (+.f64 re (log.f64 (sin.f64 im))))

rewrite117.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
754×pow1_binary64
697×add-log-exp_binary64
697×log1p-expm1-u_binary64
697×expm1-log1p-u_binary64
681×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify60.0ms (0.8%)

Algorithm
egg-herbie
Rules
727×unsub-neg_binary64
522×fma-neg_binary64
348×unswap-sqr_binary64
339×*-commutative_binary64
339×fma-def_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
064391
1177334
2492315
31746299
44260297
Stop Event
node limit
Counts
98 → 107
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))))))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (+.f64 re (log.f64 im)))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2)))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 6))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2))))))
(log.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 2)) (log.f64 im))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (log.f64 im)))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 (log.f64 im) (*.f64 -1/2835 (pow.f64 im 6)))))
(log.f64 (sin.f64 im))
re
re
(+.f64 re (log.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (log.f64 im)))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (log.f64 im))))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (+.f64 (log.f64 im) (*.f64 -1/2835 (pow.f64 im 6))))))
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 (*.f64 (+.f64 re 1) (sin.f64 im)) (*.f64 (*.f64 re re) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 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 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (fma.f64 (sin.f64 im) re (fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) (fma.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 3) 1/6))))
(fma.f64 (+.f64 re 1) (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 re (*.f64 re 1/2)) (*.f64 1/6 (pow.f64 re 3)))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (neg.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (neg.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (neg.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (*.f64 -1 re)))
(exp.f64 (-.f64 (log.f64 (sin.f64 im)) (neg.f64 re)))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp.f64 (+.f64 re (log.f64 im)))
(*.f64 im (exp.f64 re))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 im im))))
(fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 im (exp.f64 re)))
(*.f64 (+.f64 (*.f64 im (*.f64 im -1/6)) 1) (*.f64 im (exp.f64 re)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2)))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (fma.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4)) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 im im)))))
(fma.f64 (exp.f64 re) im (fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 (*.f64 im (exp.f64 re)) (*.f64 (pow.f64 im 4) 1/120))))
(fma.f64 im (exp.f64 re) (*.f64 (*.f64 im (exp.f64 re)) (+.f64 (*.f64 im (*.f64 im -1/6)) (*.f64 1/120 (pow.f64 im 4)))))
(fma.f64 im (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 6))) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 2))))))
(+.f64 (exp.f64 (+.f64 re (log.f64 im))) (fma.f64 1/120 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 4)) (fma.f64 -1/5040 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (pow.f64 im 6)) (*.f64 -1/6 (*.f64 (exp.f64 (+.f64 re (log.f64 im))) (*.f64 im im))))))
(fma.f64 (exp.f64 re) im (fma.f64 1/120 (*.f64 (*.f64 im (exp.f64 re)) (pow.f64 im 4)) (fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 (*.f64 im (exp.f64 re)) (*.f64 (pow.f64 im 6) -1/5040)))))
(fma.f64 im (exp.f64 re) (fma.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3)) (*.f64 (*.f64 im (exp.f64 re)) (+.f64 (*.f64 1/120 (pow.f64 im 4)) (*.f64 -1/5040 (pow.f64 im 6))))))
(+.f64 (*.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 -1/5040 (pow.f64 im 7)) im)))
(log.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 2)) (log.f64 im))
(fma.f64 -1/6 (*.f64 im im) (log.f64 im))
(fma.f64 im (*.f64 im -1/6) (log.f64 im))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (log.f64 im)))
(fma.f64 -1/180 (pow.f64 im 4) (fma.f64 -1/6 (*.f64 im im) (log.f64 im)))
(fma.f64 (pow.f64 im 4) -1/180 (fma.f64 -1/6 (*.f64 im im) (log.f64 im)))
(fma.f64 im (*.f64 im -1/6) (fma.f64 (pow.f64 im 4) -1/180 (log.f64 im)))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 (log.f64 im) (*.f64 -1/2835 (pow.f64 im 6)))))
(fma.f64 -1/180 (pow.f64 im 4) (+.f64 (fma.f64 -1/6 (*.f64 im im) (log.f64 im)) (*.f64 (pow.f64 im 6) -1/2835)))
(fma.f64 (pow.f64 im 4) -1/180 (fma.f64 -1/6 (*.f64 im im) (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im))))
(fma.f64 -1/6 (*.f64 im im) (fma.f64 (pow.f64 im 4) -1/180 (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im))))
(fma.f64 im (*.f64 im -1/6) (fma.f64 (pow.f64 im 4) -1/180 (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im))))
(log.f64 (sin.f64 im))
re
re
(+.f64 re (log.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (log.f64 im)))
(fma.f64 -1/6 (*.f64 im im) (+.f64 re (log.f64 im)))
(+.f64 re (fma.f64 -1/6 (*.f64 im im) (log.f64 im)))
(fma.f64 im (*.f64 im -1/6) (+.f64 re (log.f64 im)))
(+.f64 re (fma.f64 im (*.f64 im -1/6) (log.f64 im)))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (log.f64 im))))
(fma.f64 -1/180 (pow.f64 im 4) (fma.f64 -1/6 (*.f64 im im) (+.f64 re (log.f64 im))))
(+.f64 (fma.f64 (pow.f64 im 4) -1/180 (fma.f64 -1/6 (*.f64 im im) (log.f64 im))) re)
(+.f64 re (fma.f64 im (*.f64 im -1/6) (fma.f64 (pow.f64 im 4) -1/180 (log.f64 im))))
(+.f64 (fma.f64 im (*.f64 im -1/6) (log.f64 im)) (fma.f64 (pow.f64 im 4) -1/180 re))
(+.f64 (*.f64 -1/180 (pow.f64 im 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 2)) (+.f64 re (+.f64 (log.f64 im) (*.f64 -1/2835 (pow.f64 im 6))))))
(fma.f64 -1/180 (pow.f64 im 4) (fma.f64 -1/6 (*.f64 im im) (+.f64 re (+.f64 (log.f64 im) (*.f64 (pow.f64 im 6) -1/2835)))))
(fma.f64 (pow.f64 im 4) -1/180 (+.f64 (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im)) (fma.f64 -1/6 (*.f64 im im) re)))
(+.f64 re (fma.f64 -1/6 (*.f64 im im) (fma.f64 (pow.f64 im 4) -1/180 (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im)))))
(+.f64 re (fma.f64 im (*.f64 im -1/6) (fma.f64 (pow.f64 im 4) -1/180 (fma.f64 (pow.f64 im 6) -1/2835 (log.f64 im)))))

localize44.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 im) re)
1.5b
(*.f64 (sin.f64 im) (pow.f64 re 3))
2.7b
(*.f64 (sin.f64 im) (pow.f64 re 2))
8.1b
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
Compiler

Compiled 112 to 64 computations (42.9% saved)

series13.0ms (0.2%)

Counts
4 → 19
Calls

24 calls:

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

rewrite88.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
782×log-prod_binary64
444×fma-def_binary64
400×pow2_binary64
281×pow1/3_binary64
278×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify82.0ms (1.1%)

Algorithm
egg-herbie
Rules
673×associate-+l+_binary64
536×distribute-lft-in_binary64
515×associate-*l*_binary64
504×fma-def_binary64
464×associate-+r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082512
1223512
2760471
33442448
46354448
57247448
Stop Event
node limit
Counts
153 → 168
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)
(+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/10080 (pow.f64 re 2)) (*.f64 -1/30240 (pow.f64 re 3))) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 (pow.f64 re 2) im)
(+.f64 (*.f64 (pow.f64 re 2) im) (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(+.f64 (*.f64 (pow.f64 re 2) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 (pow.f64 re 2) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (pow.f64 im 5))))))
(*.f64 (pow.f64 re 3) im)
(+.f64 (*.f64 (pow.f64 re 3) im) (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))))
(+.f64 (*.f64 (pow.f64 re 3) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 3) (pow.f64 im 7))) (+.f64 (*.f64 (pow.f64 re 3) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))))
(*.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))))
Outputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)
(*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im)
(*.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im)
(*.f64 re (*.f64 im (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))
(fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im))
(fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3)))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3)))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 re (*.f64 re (pow.f64 im 3))) (+.f64 -1/12 (*.f64 re -1/36))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 re re) (*.f64 (pow.f64 im 3) (+.f64 -1/12 (*.f64 re -1/36)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)))
(fma.f64 (fma.f64 1/240 (*.f64 re re) (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im)))
(fma.f64 (fma.f64 (*.f64 re re) 1/240 (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/240 (*.f64 re 1/720))) (pow.f64 im 5) (*.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (fma.f64 (*.f64 re (*.f64 re (+.f64 1/240 (*.f64 re 1/720)))) (pow.f64 im 5) (*.f64 (*.f64 re (*.f64 re (pow.f64 im 3))) (+.f64 -1/12 (*.f64 re -1/36)))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 (*.f64 re re) (pow.f64 im 5)) (+.f64 1/240 (*.f64 re 1/720)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/10080 (pow.f64 re 2)) (*.f64 -1/30240 (pow.f64 re 3))) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))))
(fma.f64 (fma.f64 1/240 (*.f64 re re) (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (fma.f64 (fma.f64 -1/10080 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/30240)) (pow.f64 im 7) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im))))
(fma.f64 (fma.f64 (*.f64 re re) 1/240 (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/10080 (*.f64 (pow.f64 re 3) -1/30240)) (pow.f64 im 7)))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/240 (*.f64 re 1/720))) (pow.f64 im 5) (fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/10080 (*.f64 re -1/30240))) (pow.f64 im 7) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3)))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3) (fma.f64 (*.f64 re (*.f64 re (+.f64 1/240 (*.f64 re 1/720)))) (pow.f64 im 5) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 (*.f64 re re) (pow.f64 im 7)) (+.f64 -1/10080 (*.f64 re -1/30240))))))
(fma.f64 (*.f64 re (*.f64 re (+.f64 1/240 (*.f64 re 1/720)))) (pow.f64 im 5) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 (pow.f64 im 7) (+.f64 -1/10080 (*.f64 re -1/30240)))))))
(*.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 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)))
(*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)))
(*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(+.f64 (*.f64 (pow.f64 re 2) im) (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(fma.f64 (*.f64 re re) im (*.f64 -1/6 (*.f64 (*.f64 re re) (pow.f64 im 3))))
(fma.f64 (*.f64 re re) im (*.f64 (*.f64 re re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (*.f64 re re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) im))
(*.f64 (*.f64 re re) (+.f64 im (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 re (*.f64 re (+.f64 im (*.f64 (pow.f64 im 3) -1/6))))
(+.f64 (*.f64 (pow.f64 re 2) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (pow.f64 im 5)))))
(fma.f64 (*.f64 re re) im (fma.f64 -1/6 (*.f64 (*.f64 re re) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (*.f64 re re) (pow.f64 im 5)))))
(fma.f64 (*.f64 re re) im (fma.f64 -1/6 (*.f64 re (*.f64 re (pow.f64 im 3))) (*.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 re re))))
(fma.f64 (*.f64 re re) (*.f64 (pow.f64 im 3) -1/6) (*.f64 (*.f64 re re) (+.f64 im (*.f64 (pow.f64 im 5) 1/120))))
(*.f64 (*.f64 re re) (+.f64 im (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6))))
(+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 (pow.f64 re 2) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (pow.f64 im 5))))))
(fma.f64 -1/5040 (*.f64 (*.f64 re re) (pow.f64 im 7)) (fma.f64 (*.f64 re re) im (fma.f64 -1/6 (*.f64 (*.f64 re re) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (*.f64 re re) (pow.f64 im 5))))))
(fma.f64 -1/5040 (*.f64 re (*.f64 re (pow.f64 im 7))) (fma.f64 (*.f64 re re) im (fma.f64 -1/6 (*.f64 re (*.f64 re (pow.f64 im 3))) (*.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 re re)))))
(+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) im)) (*.f64 (*.f64 re re) (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 (*.f64 re re) (+.f64 (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 im (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 (*.f64 re re) (+.f64 (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 5) 1/120)) (+.f64 im (*.f64 (pow.f64 im 3) -1/6))))
(*.f64 (pow.f64 re 3) im)
(+.f64 (*.f64 (pow.f64 re 3) im) (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))))
(fma.f64 (pow.f64 re 3) im (*.f64 (*.f64 -1/6 (pow.f64 re 3)) (pow.f64 im 3)))
(fma.f64 (pow.f64 re 3) im (*.f64 (pow.f64 re 3) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (pow.f64 re 3) (+.f64 im (*.f64 (pow.f64 im 3) -1/6)))
(+.f64 (*.f64 (pow.f64 re 3) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5)))))
(fma.f64 (pow.f64 re 3) im (fma.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5)))))
(fma.f64 (pow.f64 re 3) im (fma.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3)) (*.f64 (pow.f64 re 3) (*.f64 (pow.f64 im 5) 1/120))))
(fma.f64 (pow.f64 re 3) im (*.f64 (pow.f64 re 3) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 5) 1/120))))
(*.f64 (pow.f64 re 3) (+.f64 im (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6))))
(+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 3) (pow.f64 im 7))) (+.f64 (*.f64 (pow.f64 re 3) im) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))))
(fma.f64 -1/5040 (*.f64 (pow.f64 re 3) (pow.f64 im 7)) (fma.f64 (pow.f64 re 3) im (fma.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3)) (*.f64 1/120 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))))
(fma.f64 -1/5040 (*.f64 (pow.f64 re 3) (pow.f64 im 7)) (fma.f64 (pow.f64 re 3) im (fma.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 3)) (*.f64 (pow.f64 re 3) (*.f64 (pow.f64 im 5) 1/120)))))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 im (*.f64 (pow.f64 im 3) -1/6))) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 (pow.f64 re 3) (+.f64 (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 im (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(fma.f64 -1/6 (*.f64 re (pow.f64 im 3)) (*.f64 re im))
(fma.f64 re im (*.f64 re (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 re (+.f64 im (*.f64 (pow.f64 im 3) -1/6)))
(+.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 (*.f64 re 1/120) (pow.f64 im 5) (*.f64 re im)))
(fma.f64 re im (*.f64 re (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 5) 1/120))))
(*.f64 re (+.f64 im (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6))))
(+.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 (*.f64 re 1/120) (pow.f64 im 5) (*.f64 re im))))
(fma.f64 re (*.f64 (pow.f64 im 7) -1/5040) (fma.f64 re im (*.f64 re (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 5) 1/120)))))
(*.f64 re (+.f64 (+.f64 im (*.f64 (pow.f64 im 7) -1/5040)) (+.f64 (*.f64 (pow.f64 im 5) 1/120) (*.f64 (pow.f64 im 3) -1/6))))
(*.f64 re (+.f64 (+.f64 im (*.f64 (pow.f64 im 5) 1/120)) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 3) -1/6))))

eval121.0ms (1.7%)

Compiler

Compiled 7171 to 3707 computations (48.3% saved)

prune149.0ms (2.1%)

Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New3057312
Fresh000
Picked101
Done145
Total30711318
Error
0.0b
Counts
318 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (fma.f64 (*.f64 (*.f64 1/6 (sin.f64 im)) (*.f64 re re)) re (*.f64 (sin.f64 im) (*.f64 (*.f64 re re) 1/2)))))
18.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
19.0b
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
35.7b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
40.3b
(*.f64 (+.f64 1 re) im)
42.6b
(exp.f64 re)
61.2b
(*.f64 (sin.f64 im) re)
18.8b
(*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1)))
18.9b
(sin.f64 im)
21.8b
(*.f64 (exp.f64 re) im)
Compiler

Compiled 201 to 134 computations (33.3% saved)

localize36.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 1/6 (sin.f64 im))
2.7b
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) 1/2))
2.7b
(*.f64 (*.f64 1/6 (sin.f64 im)) (*.f64 re re))
8.1b
(fma.f64 (*.f64 (*.f64 1/6 (sin.f64 im)) (*.f64 re re)) re (*.f64 (sin.f64 im) (*.f64 (*.f64 re re) 1/2)))
Compiler

Compiled 107 to 41 computations (61.7% saved)

series9.0ms (0.1%)

Counts
4 → 76
Calls

21 calls:

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

rewrite76.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
629×log-prod_binary64
413×pow-prod-down_binary64
351×prod-diff_binary64
309×pow2_binary64
256×pow-unpow_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify127.0ms (1.8%)

Algorithm
egg-herbie
Rules
674×associate-+l+_binary64
628×fma-def_binary64
608×distribute-rgt-out_binary64
466×associate-+r+_binary64
464×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0781406
12191406
26991258
329881234
460491234
579491234
Stop Event
node limit
Counts
169 → 132
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)
(+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/10080 (pow.f64 re 2)) (*.f64 -1/30240 (pow.f64 re 3))) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/6 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3)))))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/30240 (*.f64 (pow.f64 re 2) (pow.f64 im 7))))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 im)
(+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im))
(+.f64 (*.f64 -1/36 (pow.f64 im 3)) (+.f64 (*.f64 1/720 (pow.f64 im 5)) (*.f64 1/6 im)))
(+.f64 (*.f64 -1/30240 (pow.f64 im 7)) (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (+.f64 (*.f64 1/720 (pow.f64 im 5)) (*.f64 1/6 im))))
Outputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)
(*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im)
(*.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im)
(*.f64 (*.f64 re (*.f64 re im)) (+.f64 1/2 (*.f64 re 1/6)))
(*.f64 re (*.f64 (*.f64 re im) (+.f64 1/2 (*.f64 re 1/6))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))
(fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im))
(fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3)))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (*.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re -1/36) -1/12)) (pow.f64 im 3)))
(fma.f64 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))) im (*.f64 (*.f64 re (*.f64 re (pow.f64 im 3))) (+.f64 -1/12 (*.f64 re -1/36))))
(fma.f64 (*.f64 re (*.f64 re (+.f64 -1/12 (*.f64 re -1/36)))) (pow.f64 im 3) (*.f64 re (*.f64 (*.f64 re im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im)))
(fma.f64 (fma.f64 1/240 (*.f64 re re) (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im)))
(fma.f64 (fma.f64 (*.f64 re re) 1/240 (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (fma.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re -1/36) -1/12)) (pow.f64 im 3) (*.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/720) 1/240)) (pow.f64 im 5))))
(fma.f64 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))) im (fma.f64 (*.f64 re (*.f64 re (+.f64 1/240 (*.f64 re 1/720)))) (pow.f64 im 5) (*.f64 (*.f64 re (*.f64 re (pow.f64 im 3))) (+.f64 -1/12 (*.f64 re -1/36)))))
(fma.f64 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))) im (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/240 (*.f64 re 1/720))) (pow.f64 im 5) (*.f64 (*.f64 re (*.f64 re (pow.f64 im 3))) (+.f64 -1/12 (*.f64 re -1/36)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/240 (pow.f64 re 2)) (*.f64 1/720 (pow.f64 re 3))) (pow.f64 im 5)) (+.f64 (*.f64 (+.f64 (*.f64 -1/12 (pow.f64 re 2)) (*.f64 -1/36 (pow.f64 re 3))) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/10080 (pow.f64 re 2)) (*.f64 -1/30240 (pow.f64 re 3))) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))) im))))
(fma.f64 (fma.f64 1/240 (*.f64 re re) (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 -1/12 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (fma.f64 (fma.f64 -1/10080 (*.f64 re re) (*.f64 (pow.f64 re 3) -1/30240)) (pow.f64 im 7) (*.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im))))
(fma.f64 (fma.f64 (*.f64 re re) 1/240 (*.f64 (pow.f64 re 3) 1/720)) (pow.f64 im 5) (fma.f64 (fma.f64 (*.f64 re re) -1/12 (*.f64 (pow.f64 re 3) -1/36)) (pow.f64 im 3) (fma.f64 (fma.f64 1/2 (*.f64 re re) (*.f64 1/6 (pow.f64 re 3))) im (*.f64 (fma.f64 (*.f64 re re) -1/10080 (*.f64 (pow.f64 re 3) -1/30240)) (pow.f64 im 7)))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/720) 1/240)) (pow.f64 im 5) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))) im (fma.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re -1/36) -1/12)) (pow.f64 im 3) (*.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re -1/30240) -1/10080)) (pow.f64 im 7)))))
(fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/12 (*.f64 re -1/36))) (pow.f64 im 3) (fma.f64 (*.f64 re (*.f64 re (+.f64 1/240 (*.f64 re 1/720)))) (pow.f64 im 5) (fma.f64 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))) im (*.f64 (*.f64 re (*.f64 re (pow.f64 im 7))) (+.f64 -1/10080 (*.f64 re -1/30240))))))
(fma.f64 (*.f64 re (*.f64 re (+.f64 -1/12 (*.f64 re -1/36)))) (pow.f64 im 3) (fma.f64 (*.f64 (*.f64 re re) (+.f64 1/240 (*.f64 re 1/720))) (pow.f64 im 5) (fma.f64 (*.f64 (*.f64 re re) (+.f64 -1/10080 (*.f64 re -1/30240))) (pow.f64 im 7) (*.f64 re (*.f64 (*.f64 re im) (+.f64 1/2 (*.f64 re 1/6)))))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)))
(*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(*.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)))
(*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (pow.f64 re 3) (sin.f64 im)) (*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re)))
(fma.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im))))
(*.f64 (sin.f64 im) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6))))
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 1/6 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 1/6 (*.f64 re re)) im)
(*.f64 (*.f64 re re) (*.f64 1/6 im))
(*.f64 (*.f64 re im) (*.f64 re 1/6))
(*.f64 1/6 (*.f64 re (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 1/6 im)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(fma.f64 1/6 (*.f64 (*.f64 re re) im) (*.f64 -1/36 (*.f64 (*.f64 re re) (pow.f64 im 3))))
(fma.f64 1/6 (*.f64 re (*.f64 re im)) (*.f64 (*.f64 re re) (*.f64 -1/36 (pow.f64 im 3))))
(*.f64 (*.f64 re re) (fma.f64 1/6 im (*.f64 -1/36 (pow.f64 im 3))))
(*.f64 re (*.f64 re (fma.f64 1/6 im (*.f64 -1/36 (pow.f64 im 3)))))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3)))))
(fma.f64 1/720 (*.f64 (*.f64 re re) (pow.f64 im 5)) (fma.f64 1/6 (*.f64 (*.f64 re re) im) (*.f64 -1/36 (*.f64 (*.f64 re re) (pow.f64 im 3)))))
(fma.f64 1/720 (*.f64 re (*.f64 re (pow.f64 im 5))) (fma.f64 1/6 (*.f64 re (*.f64 re im)) (*.f64 (*.f64 re re) (*.f64 -1/36 (pow.f64 im 3)))))
(fma.f64 (*.f64 re re) (*.f64 1/6 im) (*.f64 (*.f64 re re) (fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/720 (pow.f64 im 5)))))
(*.f64 (*.f64 re re) (fma.f64 1/6 im (fma.f64 1/720 (pow.f64 im 5) (*.f64 -1/36 (pow.f64 im 3)))))
(*.f64 (*.f64 re re) (fma.f64 1/6 im (fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/720 (pow.f64 im 5)))))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 -1/36 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/30240 (*.f64 (pow.f64 re 2) (pow.f64 im 7))))))
(fma.f64 1/720 (*.f64 (*.f64 re re) (pow.f64 im 5)) (fma.f64 1/6 (*.f64 (*.f64 re re) im) (fma.f64 -1/36 (*.f64 (*.f64 re re) (pow.f64 im 3)) (*.f64 -1/30240 (*.f64 (*.f64 re re) (pow.f64 im 7))))))
(fma.f64 1/720 (*.f64 re (*.f64 re (pow.f64 im 5))) (fma.f64 1/6 (*.f64 re (*.f64 re im)) (fma.f64 -1/36 (*.f64 re (*.f64 re (pow.f64 im 3))) (*.f64 (*.f64 re re) (*.f64 -1/30240 (pow.f64 im 7))))))
(+.f64 (*.f64 (*.f64 re re) (fma.f64 -1/30240 (pow.f64 im 7) (*.f64 -1/36 (pow.f64 im 3)))) (*.f64 (*.f64 re re) (fma.f64 1/720 (pow.f64 im 5) (*.f64 1/6 im))))
(*.f64 (*.f64 re re) (fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 1/6 im (fma.f64 1/720 (pow.f64 im 5) (*.f64 -1/36 (pow.f64 im 3))))))
(*.f64 (*.f64 re re) (fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 1/6 im (fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/720 (pow.f64 im 5))))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (*.f64 re re) (sin.f64 im)))
(*.f64 (*.f64 re re) (*.f64 1/6 (sin.f64 im)))
(*.f64 re (*.f64 1/6 (*.f64 re (sin.f64 im))))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (*.f64 re re) im))
(*.f64 1/2 (*.f64 re (*.f64 re im)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 -1/12 (*.f64 (*.f64 re re) (pow.f64 im 3)) (*.f64 1/2 (*.f64 (*.f64 re re) im)))
(fma.f64 1/2 (*.f64 re (*.f64 re im)) (*.f64 (*.f64 re re) (*.f64 -1/12 (pow.f64 im 3))))
(*.f64 (*.f64 re re) (+.f64 (*.f64 1/2 im) (*.f64 -1/12 (pow.f64 im 3))))
(*.f64 (*.f64 re re) (*.f64 im (+.f64 (*.f64 -1/12 (*.f64 im im)) 1/2)))
(*.f64 (*.f64 re (*.f64 re im)) (+.f64 1/2 (*.f64 -1/12 (*.f64 im im))))
(+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 1/240 (*.f64 (*.f64 re re) (pow.f64 im 5)) (fma.f64 -1/12 (*.f64 (*.f64 re re) (pow.f64 im 3)) (*.f64 1/2 (*.f64 (*.f64 re re) im))))
(fma.f64 1/240 (*.f64 re (*.f64 re (pow.f64 im 5))) (fma.f64 1/2 (*.f64 re (*.f64 re im)) (*.f64 (*.f64 re re) (*.f64 -1/12 (pow.f64 im 3)))))
(fma.f64 (*.f64 re re) (*.f64 1/240 (pow.f64 im 5)) (*.f64 (*.f64 re re) (+.f64 (*.f64 1/2 im) (*.f64 -1/12 (pow.f64 im 3)))))
(*.f64 (*.f64 re re) (+.f64 (*.f64 im (+.f64 (*.f64 -1/12 (*.f64 im im)) 1/2)) (*.f64 1/240 (pow.f64 im 5))))
(*.f64 (*.f64 re re) (+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/240 (pow.f64 im 5)) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 2) (pow.f64 im 5))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))))
(fma.f64 1/240 (*.f64 (*.f64 re re) (pow.f64 im 5)) (fma.f64 -1/12 (*.f64 (*.f64 re re) (pow.f64 im 3)) (fma.f64 -1/10080 (*.f64 (*.f64 re re) (pow.f64 im 7)) (*.f64 1/2 (*.f64 (*.f64 re re) im)))))
(fma.f64 (*.f64 re (*.f64 re 1/240)) (pow.f64 im 5) (fma.f64 -1/12 (*.f64 re (*.f64 re (pow.f64 im 3))) (fma.f64 (*.f64 1/2 (*.f64 re re)) im (*.f64 (*.f64 re re) (*.f64 -1/10080 (pow.f64 im 7))))))
(+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 1/2 im) (*.f64 -1/10080 (pow.f64 im 7)))) (*.f64 (*.f64 re re) (+.f64 (*.f64 -1/12 (pow.f64 im 3)) (*.f64 1/240 (pow.f64 im 5)))))
(*.f64 (*.f64 re re) (+.f64 (+.f64 (*.f64 1/2 im) (*.f64 -1/10080 (pow.f64 im 7))) (+.f64 (*.f64 1/240 (pow.f64 im 5)) (*.f64 -1/12 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (*.f64 re re))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 (*.f64 re re) (*.f64 1/2 (sin.f64 im)))
(*.f64 re (*.f64 (*.f64 1/2 re) (sin.f64 im)))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(*.f64 1/6 im)
(+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im))
(fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/6 im))
(fma.f64 1/6 im (*.f64 -1/36 (pow.f64 im 3)))
(+.f64 (*.f64 -1/36 (pow.f64 im 3)) (+.f64 (*.f64 1/720 (pow.f64 im 5)) (*.f64 1/6 im)))
(fma.f64 -1/36 (pow.f64 im 3) (fma.f64 1/720 (pow.f64 im 5) (*.f64 1/6 im)))
(fma.f64 -1/36 (pow.f64 im 3) (fma.f64 1/6 im (*.f64 1/720 (pow.f64 im 5))))
(fma.f64 1/6 im (fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/720 (pow.f64 im 5))))
(fma.f64 1/6 im (fma.f64 1/720 (pow.f64 im 5) (*.f64 -1/36 (pow.f64 im 3))))
(+.f64 (*.f64 -1/30240 (pow.f64 im 7)) (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (+.f64 (*.f64 1/720 (pow.f64 im 5)) (*.f64 1/6 im))))
(fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 -1/36 (pow.f64 im 3) (fma.f64 1/720 (pow.f64 im 5) (*.f64 1/6 im))))
(fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 -1/36 (pow.f64 im 3) (fma.f64 1/6 im (*.f64 1/720 (pow.f64 im 5)))))
(fma.f64 -1/36 (pow.f64 im 3) (fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 1/720 (pow.f64 im 5) (*.f64 1/6 im))))
(fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 1/6 im (fma.f64 1/720 (pow.f64 im 5) (*.f64 -1/36 (pow.f64 im 3)))))
(fma.f64 -1/30240 (pow.f64 im 7) (fma.f64 1/6 im (fma.f64 -1/36 (pow.f64 im 3) (*.f64 1/720 (pow.f64 im 5)))))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

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

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 4 computations (60% saved)

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.3b
(+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))
3.0b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
Compiler

Compiled 34 to 21 computations (38.2% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite91.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
883×prod-diff_binary64
568×fma-def_binary64
422×log-prod_binary64
280×fma-neg_binary64
242×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify133.0ms (1.8%)

Algorithm
egg-herbie
Rules
1286×distribute-rgt-in_binary64
979×fma-def_binary64
426×unswap-sqr_binary64
383×distribute-lft-in_binary64
375×distribute-lft-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038532
1108530
2301500
31092478
43742478
55459478
65921478
76640478
86743478
96883478
107077478
Stop Event
node limit
Counts
240 → 215
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))
1
(+.f64 1 (*.f64 (+.f64 1 re) im))
(+.f64 1 (+.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 1 (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))))
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(+.f64 (sin.f64 im) (+.f64 1 (*.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 (pow.f64 im 3) (+.f64 -1/6 (*.f64 -1/6 re))))
(*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 1 re) (fma.f64 -1/6 (pow.f64 im 3) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im)))
(fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 (+.f64 1 re) im (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 -1/6 re)))))
(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)))
(*.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 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 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 1 re)))))
(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) (*.f64 1/120 (pow.f64 im 5))) (fma.f64 -1/5040 (pow.f64 im 7) im)))
(*.f64 (+.f64 1 re) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 -1/5040 (pow.f64 im 7) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (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))
1
(+.f64 1 (*.f64 (+.f64 1 re) im))
(fma.f64 (+.f64 1 re) im 1)
(+.f64 1 (fma.f64 re im im))
(+.f64 1 (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 1 (fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im)))
(+.f64 1 (fma.f64 (+.f64 1 re) im (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 -1/6 re)))))
(+.f64 (fma.f64 re im im) (fma.f64 (pow.f64 im 3) (fma.f64 re -1/6 -1/6) 1))
(fma.f64 (+.f64 1 re) (fma.f64 -1/6 (pow.f64 im 3) im) 1)
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 1 (+.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)) (+.f64 1 (fma.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))))
(+.f64 1 (fma.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)) (fma.f64 (+.f64 1 re) im (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 -1/6 re))))))
(+.f64 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))))
(+.f64 1 (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (fma.f64 1/120 (pow.f64 im 5) im))))
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 1 (+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)
(+.f64 (sin.f64 im) (+.f64 1 (*.f64 (sin.f64 im) re)))
(fma.f64 (sin.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (sin.f64 im) 1)

eval203.0ms (2.8%)

Compiler

Compiled 8473 to 4659 computations (45% saved)

prune240.0ms (3.3%)

Pruning

15 alts after pruning (9 fresh and 6 done)

PrunedKeptTotal
New4268434
Fresh112
Picked011
Done358
Total43015445
Error
0.0b
Counts
445 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
19.0b
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
61.2b
(*.f64 (sin.f64 im) re)
61.4b
(*.f64 re im)
18.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
40.3b
(+.f64 (*.f64 re im) im)
43.8b
(-.f64 1 1)
40.1b
im
35.7b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
57.0b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
18.8b
(*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1)))
18.8b
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))))
18.9b
(sin.f64 im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
40.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
21.8b
(*.f64 (exp.f64 re) im)
Compiler

Compiled 234 to 162 computations (30.8% saved)

localize82.0ms (1.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))
0.1b
(*.f64 (sin.f64 im) re)
0.1b
(*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6))))
0.3b
(*.f64 re 1/6)
Compiler

Compiled 87 to 47 computations (46% saved)

series17.0ms (0.2%)

Counts
3 → 60
Calls

15 calls:

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

rewrite96.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
612×log-prod_binary64
438×pow-prod-down_binary64
318×prod-diff_binary64
306×pow2_binary64
253×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify53.0ms (0.7%)

Algorithm
egg-herbie
Rules
744×distribute-lft-in_binary64
742×distribute-rgt-in_binary64
686×associate-+l+_binary64
640×distribute-lft-out_binary64
587×associate-+r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0621204
1203932
2693860
33167818
Stop Event
node limit
Counts
130 → 100
Calls
Call 1
Inputs
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/2 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2)))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 1/120 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3))))))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 -1/5040 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 7)))) (+.f64 (*.f64 1/120 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))))))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 7)))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))))))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
Outputs
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/6 re)
(*.f64 1/2 (*.f64 (sin.f64 im) re))
(*.f64 1/2 (*.f64 re (sin.f64 im)))
(*.f64 re (*.f64 1/2 (sin.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 1/6 (*.f64 re (*.f64 re (sin.f64 im))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 1/6 (*.f64 re (*.f64 re (sin.f64 im))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/2 (*.f64 (sin.f64 im) re)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 re (*.f64 im (fma.f64 1/6 re 1/2)))
(*.f64 im (*.f64 re (fma.f64 1/6 re 1/2)))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 3)))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 -1/6 (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re))))
(*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 1/120 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3))))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 1/120 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 5))) (*.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 3))))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 -1/6 (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re)) (*.f64 1/120 (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 5) re)))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 re (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 -1/5040 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 7)))) (+.f64 (*.f64 1/120 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))) (*.f64 -1/6 (*.f64 re (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 -1/5040 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 7))) (fma.f64 1/120 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 5))) (*.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 3)))))))
(fma.f64 re (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 -1/5040 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 7))) (fma.f64 -1/6 (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re)) (*.f64 1/120 (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 5) re))))))
(+.f64 (*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (*.f64 re (fma.f64 1/6 re 1/2)) (+.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 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (*.f64 re re)) (*.f64 1/2 (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (sin.f64 im) (*.f64 re (fma.f64 1/6 re 1/2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 1/2 (*.f64 re (*.f64 re (sin.f64 im))))
(*.f64 re (*.f64 re (*.f64 1/2 (sin.f64 im))))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2)))
(*.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)))
(*.f64 re (*.f64 re (*.f64 im (fma.f64 1/6 re 1/2))))
(*.f64 re (*.f64 im (*.f64 re (fma.f64 1/6 re 1/2))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))))
(fma.f64 -1/6 (*.f64 (*.f64 (*.f64 re re) (fma.f64 1/6 re 1/2)) (pow.f64 im 3)) (*.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2))))
(fma.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re)))))
(*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5))))))
(fma.f64 -1/6 (*.f64 (*.f64 (*.f64 re re) (fma.f64 1/6 re 1/2)) (pow.f64 im 3)) (fma.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 1/120 (*.f64 (*.f64 re re) (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 5))))))
(fma.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re))) (fma.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)) (*.f64 (*.f64 re re) (*.f64 (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 5)) 1/120))))
(fma.f64 re (*.f64 re (*.f64 im (fma.f64 1/6 re 1/2))) (*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 3)))) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 im (+.f64 (*.f64 1/6 re) 1/2))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 7)))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/6 re) 1/2) (pow.f64 im 5)))))))
(fma.f64 -1/6 (*.f64 (*.f64 (*.f64 re re) (fma.f64 1/6 re 1/2)) (pow.f64 im 3)) (fma.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 -1/5040 (*.f64 (*.f64 re re) (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 7))) (*.f64 1/120 (*.f64 (*.f64 re re) (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 5)))))))
(fma.f64 -1/6 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 3) re))) (fma.f64 (*.f64 re re) (*.f64 im (fma.f64 1/6 re 1/2)) (fma.f64 1/120 (*.f64 re (*.f64 (fma.f64 1/6 re 1/2) (*.f64 (pow.f64 im 5) re))) (*.f64 (*.f64 (fma.f64 1/6 re 1/2) (pow.f64 im 7)) (*.f64 (*.f64 re re) -1/5040)))))
(+.f64 (*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (*.f64 re (*.f64 re (fma.f64 1/6 re 1/2))) (+.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 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))
(*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/6 re) 1/2)))
(fma.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3)) (*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 re re))))
(*.f64 (*.f64 re re) (*.f64 (sin.f64 im) (fma.f64 1/6 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (fma.f64 1/6 re 1/2))

localize4.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize5.0ms (0.1%)

Compiler

Compiled 12 to 4 computations (66.7% saved)

localize15.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
2.6b
(*.f64 (-.f64 1 (*.f64 re re)) im)
5.9b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
Compiler

Compiled 34 to 17 computations (50% saved)

series12.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite80.0ms (1.1%)

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

Useful iterations: 1 (0.0ms)

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

simplify89.0ms (1.2%)

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

Useful iterations: 6 (0.0ms)

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

localize28.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
2.6b
(*.f64 (fma.f64 re re -1) (sin.f64 im))
8.2b
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
Compiler

Compiled 32 to 17 computations (46.9% saved)

series13.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
3.0ms
im
@0
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
2.0ms
im
@inf
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
1.0ms
im
@-inf
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
1.0ms
re
@0
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))
1.0ms
re
@-inf
(/.f64 (*.f64 (fma.f64 re re -1) (sin.f64 im)) (+.f64 re -1))

rewrite83.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
497×log-prod_binary64
387×exp-prod_binary64
312×pow-prod-down_binary64
256×pow2_binary64
180×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify69.0ms (1%)

Algorithm
egg-herbie
Rules
925×fma-def_binary64
640×associate-*l*_binary64
552×associate-*r*_binary64
383×associate-/l*_binary64
330×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
051874
1142713
2422691
31590565
Stop Event
node limit
Counts
139 → 120
Calls
Call 1
Inputs
(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))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1))))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (+.f64 (*.f64 1/120 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5)) (-.f64 re 1))) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1)))))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (+.f64 (*.f64 1/120 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5)) (-.f64 re 1))) (+.f64 (*.f64 -1/5040 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 7)) (-.f64 re 1))) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1))))))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(*.f64 -1 (sin.f64 im))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (pow.f64 re 2))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (pow.f64 re 2))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (-.f64 (pow.f64 re 2) 1) im)
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (*.f64 (-.f64 (pow.f64 re 2) 1) im))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5))) (*.f64 (-.f64 (pow.f64 re 2) 1) im)))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (+.f64 (*.f64 -1/5040 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 7))) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5))) (*.f64 (-.f64 (pow.f64 re 2) 1) im))))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
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))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (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))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) im))
(/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) im))
(*.f64 im (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 im (/.f64 (+.f64 re 1) 1))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1))))
(+.f64 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) im)) (*.f64 -1/6 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 3)))))
(fma.f64 -1/6 (/.f64 (*.f64 (fma.f64 re re -1) (pow.f64 im 3)) (+.f64 re -1)) (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) im)))
(fma.f64 -1/6 (*.f64 (/.f64 (pow.f64 im 3) (+.f64 re -1)) (fma.f64 re re -1)) (*.f64 im (/.f64 (fma.f64 re re -1) (+.f64 re -1))))
(*.f64 (/.f64 (+.f64 re 1) 1) (fma.f64 -1/6 (pow.f64 im 3) im))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (+.f64 (*.f64 1/120 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5)) (-.f64 re 1))) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1)))))
(+.f64 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) im)) (fma.f64 1/120 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 5))) (*.f64 -1/6 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 3))))))
(+.f64 (fma.f64 -1/6 (/.f64 (*.f64 (fma.f64 re re -1) (pow.f64 im 3)) (+.f64 re -1)) (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) im))) (*.f64 1/120 (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) (pow.f64 im 5)))))
(fma.f64 -1/6 (*.f64 (/.f64 (pow.f64 im 3) (+.f64 re -1)) (fma.f64 re re -1)) (fma.f64 (/.f64 (fma.f64 re re -1) (+.f64 re -1)) im (*.f64 (/.f64 (fma.f64 re re -1) (+.f64 re -1)) (*.f64 1/120 (pow.f64 im 5)))))
(fma.f64 (*.f64 1/120 (/.f64 (+.f64 re 1) 1)) (pow.f64 im 5) (*.f64 (/.f64 (+.f64 re 1) 1) (fma.f64 -1/6 (pow.f64 im 3) im)))
(+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) im) (-.f64 re 1)) (+.f64 (*.f64 1/120 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5)) (-.f64 re 1))) (+.f64 (*.f64 -1/5040 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 7)) (-.f64 re 1))) (*.f64 -1/6 (/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3)) (-.f64 re 1))))))
(+.f64 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) im)) (fma.f64 1/120 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 5))) (fma.f64 -1/5040 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 7))) (*.f64 -1/6 (/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (pow.f64 im 3)))))))
(+.f64 (fma.f64 1/120 (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) (pow.f64 im 5))) (*.f64 -1/5040 (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) (pow.f64 im 7))))) (fma.f64 -1/6 (/.f64 (*.f64 (fma.f64 re re -1) (pow.f64 im 3)) (+.f64 re -1)) (/.f64 (fma.f64 re re -1) (/.f64 (+.f64 re -1) im))))
(fma.f64 1/120 (*.f64 (pow.f64 im 5) (/.f64 (fma.f64 re re -1) (+.f64 re -1))) (fma.f64 (/.f64 (fma.f64 re re -1) (+.f64 re -1)) im (fma.f64 -1/6 (*.f64 (/.f64 (pow.f64 im 3) (+.f64 re -1)) (fma.f64 re re -1)) (*.f64 (/.f64 (fma.f64 re re -1) (+.f64 re -1)) (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (/.f64 (+.f64 re 1) 1) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 (+.f64 re 1) 1) (fma.f64 1/120 (pow.f64 im 5) (*.f64 -1/5040 (pow.f64 im 7)))))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(/.f64 (*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im)) (-.f64 re 1))
(/.f64 (+.f64 (*.f64 re re) -1) (/.f64 (+.f64 re -1) (sin.f64 im)))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 re re -1)) (+.f64 re -1))
(*.f64 (sin.f64 im) (/.f64 (fma.f64 re re -1) (+.f64 re -1)))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 1))
(*.f64 -1 (sin.f64 im))
(neg.f64 (sin.f64 im))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (sin.f64 im) (pow.f64 re 2))
(*.f64 (sin.f64 im) (*.f64 re re))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (sin.f64 im) (pow.f64 re 2))
(*.f64 (sin.f64 im) (*.f64 re re))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(+.f64 (*.f64 -1 (sin.f64 im)) (*.f64 (sin.f64 im) (pow.f64 re 2)))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) im)
(*.f64 im (+.f64 (*.f64 re re) -1))
(*.f64 im (fma.f64 re re -1))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (*.f64 (-.f64 (pow.f64 re 2) 1) im))
(fma.f64 -1/6 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 3)) (*.f64 im (+.f64 (*.f64 re re) -1)))
(fma.f64 im (fma.f64 re re -1) (*.f64 (fma.f64 re re -1) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (fma.f64 re re -1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (fma.f64 re re -1) (fma.f64 -1/6 (pow.f64 im 3) im))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5))) (*.f64 (-.f64 (pow.f64 re 2) 1) im)))
(fma.f64 -1/6 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 3)) (fma.f64 1/120 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 5)) (*.f64 im (+.f64 (*.f64 re re) -1))))
(fma.f64 -1/6 (*.f64 (fma.f64 re re -1) (pow.f64 im 3)) (fma.f64 im (fma.f64 re re -1) (*.f64 (fma.f64 re re -1) (*.f64 (pow.f64 im 5) 1/120))))
(fma.f64 im (fma.f64 re re -1) (*.f64 (fma.f64 re re -1) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (fma.f64 re re -1) (+.f64 im (fma.f64 1/120 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 3))) (+.f64 (*.f64 -1/5040 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 7))) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (pow.f64 re 2) 1) (pow.f64 im 5))) (*.f64 (-.f64 (pow.f64 re 2) 1) im))))
(fma.f64 -1/6 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 3)) (fma.f64 -1/5040 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 7)) (fma.f64 1/120 (*.f64 (+.f64 (*.f64 re re) -1) (pow.f64 im 5)) (*.f64 im (+.f64 (*.f64 re re) -1)))))
(fma.f64 -1/6 (*.f64 (fma.f64 re re -1) (pow.f64 im 3)) (fma.f64 -1/5040 (*.f64 (fma.f64 re re -1) (pow.f64 im 7)) (fma.f64 im (fma.f64 re re -1) (*.f64 (fma.f64 re re -1) (*.f64 (pow.f64 im 5) 1/120)))))
(+.f64 (*.f64 (fma.f64 re re -1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (fma.f64 re re -1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (fma.f64 re re -1) (+.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 1/120 (pow.f64 im 5) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))
(*.f64 (-.f64 (pow.f64 re 2) 1) (sin.f64 im))
(fma.f64 -1 (sin.f64 im) (*.f64 (sin.f64 im) (*.f64 re re)))
(*.f64 (sin.f64 im) (fma.f64 re re -1))

eval210.0ms (2.9%)

Compiler

Compiled 6513 to 3770 computations (42.1% saved)

prune107.0ms (1.5%)

Pruning

19 alts after pruning (9 fresh and 10 done)

PrunedKeptTotal
New3486354
Fresh134
Picked101
Done01010
Total35019369
Error
0.0b
Counts
369 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
39.9b
(*.f64 (-.f64 1 (*.f64 re re)) (/.f64 1 (/.f64 (-.f64 1 re) im)))
61.2b
(*.f64 (sin.f64 im) re)
18.8b
(*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1)))
12.3b
(/.f64 (neg.f64 (sin.f64 im)) (+.f64 re -1))
61.4b
(*.f64 re im)
18.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
40.3b
(+.f64 (*.f64 re im) im)
43.8b
(-.f64 1 1)
40.1b
im
40.5b
(*.f64 (/.f64 1 (-.f64 1 re)) (*.f64 (-.f64 1 (*.f64 re re)) im))
18.9b
(sin.f64 im)
61.7b
(/.f64 (*.f64 re (*.f64 im (neg.f64 re))) (-.f64 1 re))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
35.7b
(-.f64 (+.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1))) 1)
57.0b
(-.f64 (+.f64 1 (+.f64 im (*.f64 re im))) 1)
21.8b
(*.f64 (exp.f64 re) im)
61.9b
(/.f64 (*.f64 (sin.f64 im) (*.f64 re re)) (+.f64 re -1))
18.8b
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 re (*.f64 re (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/6)))))))
40.5b
(/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re))
Compiler

Compiled 190 to 134 computations (29.5% saved)

regimes403.0ms (5.6%)

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

5 calls:

146.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
44.0ms
(sin.f64 im)
39.0ms
re
28.0ms
im
6.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 262 to 137 computations (47.7% saved)

regimes304.0ms (4.2%)

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

6 calls:

79.0ms
im
73.0ms
(sin.f64 im)
68.0ms
(sin.f64 im)
57.0ms
re
9.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.4b2re
8.0b3im
0.4b2(exp.f64 re)
0.4b2(exp.f64 re)
8.2b3(sin.f64 im)
8.2b3(sin.f64 im)
Compiler

Compiled 159 to 91 computations (42.8% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9989303839059069
0.9999890527704973
Compiler

Compiled 12 to 9 computations (25% saved)

regimes325.0ms (4.5%)

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

6 calls:

206.0ms
(sin.f64 im)
43.0ms
im
39.0ms
(sin.f64 im)
20.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.6b2re
8.0b3im
0.6b2(exp.f64 re)
0.6b2(exp.f64 re)
8.2b3(sin.f64 im)
8.2b3(sin.f64 im)
Compiler

Compiled 143 to 82 computations (42.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999890527704973
0.9999928970388681
Compiler

Compiled 12 to 9 computations (25% saved)

regimes258.0ms (3.6%)

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

5 calls:

78.0ms
(sin.f64 im)
59.0ms
(sin.f64 im)
44.0ms
im
39.0ms
(exp.f64 re)
33.0ms
re
Results
ErrorSegmentsBranch
1.0b2re
8.6b3im
1.0b2(exp.f64 re)
8.8b3(sin.f64 im)
8.8b3(sin.f64 im)
Compiler

Compiled 106 to 61 computations (42.5% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999890527704973
0.9999928970388681
Compiler

Compiled 12 to 9 computations (25% saved)

regimes79.0ms (1.1%)

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

4 calls:

31.0ms
re
16.0ms
(sin.f64 im)
15.0ms
im
11.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.5b2re
18.9b1im
1.5b2(exp.f64 re)
18.9b1(sin.f64 im)
Compiler

Compiled 98 to 57 computations (41.8% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
5.629325515064588e-25
Compiler

Compiled 12 to 9 computations (25% saved)

regimes101.0ms (1.4%)

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

4 calls:

49.0ms
im
28.0ms
re
8.0ms
(exp.f64 re)
8.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
22.5b2re
29.9b3im
22.5b2(exp.f64 re)
22.5b2(exp.f64 re)
Compiler

Compiled 92 to 55 computations (40.2% saved)

bsearch72.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
72.0ms
-55.836637691818716
-0.0010701885416231987
Compiler

Compiled 12 to 9 computations (25% saved)

regimes57.0ms (0.8%)

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

2 calls:

31.0ms
im
22.0ms
re
Results
ErrorSegmentsBranch
22.5b2re
31.8b3im
Compiler

Compiled 45 to 25 computations (44.4% saved)

bsearch75.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
75.0ms
-55.836637691818716
-0.0010701885416231987
Compiler

Compiled 12 to 9 computations (25% saved)

regimes157.0ms (2.2%)

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

2 calls:

140.0ms
im
15.0ms
re
Results
ErrorSegmentsBranch
22.6b2re
31.8b3im
Compiler

Compiled 16 to 10 computations (37.5% saved)

bsearch45.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
-8.581196446704132e+19
-55.836637691818716
Compiler

Compiled 12 to 9 computations (25% saved)

regimes16.0ms (0.2%)

Accuracy

Total -21.7b remaining (-54%)

Threshold costs -21.7b (-54%)

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

2 calls:

8.0ms
im
6.0ms
re
Results
ErrorSegmentsBranch
40.1b1re
40.1b1im
Compiler

Compiled 13 to 7 computations (46.2% saved)

simplify17.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
043144
162144
270144
374144
476144
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 8998192055486251/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 9007109182748445/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 9007109182748445/9007199254740992) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 0) (-.f64 1 1) (sin.f64 im))
(if (<=.f64 re -7858308146953005/140737488355328) (-.f64 1 1) (/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re)))
(if (<=.f64 re -7858308146953005/140737488355328) (-.f64 1 1) (+.f64 (*.f64 re im) im))
(if (<=.f64 re -85811964467041320960) (-.f64 1 1) im)
im
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 8998192055486251/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)) (+.f64 re 1))))
(if (<=.f64 (exp.f64 re) 9007109182748445/9007199254740992) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 9007109182748445/9007199254740992) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 0) (-.f64 1 1) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 0) 0 (sin.f64 im))
(if (<=.f64 re -7858308146953005/140737488355328) (-.f64 1 1) (/.f64 (*.f64 (-.f64 1 (*.f64 re re)) im) (-.f64 1 re)))
(if (<=.f64 re -7858308146953005/140737488355328) 0 (/.f64 (*.f64 im (-.f64 1 (*.f64 re re))) (-.f64 1 re)))
(if (<=.f64 re -7858308146953005/140737488355328) (-.f64 1 1) (+.f64 (*.f64 re im) im))
(if (<=.f64 re -7858308146953005/140737488355328) 0 (+.f64 im (*.f64 re im)))
(if (<=.f64 re -85811964467041320960) (-.f64 1 1) im)
(if (<=.f64 re -85811964467041320960) 0 im)
im
Compiler

Compiled 115 to 79 computations (31.3% saved)

soundness0.0ms (0%)

end115.0ms (1.6%)

Compiler

Compiled 99 to 52 computations (47.5% saved)

Profiling

Loading profile data...