Details

Time bar (total: 7.1s)

analyze90.0ms (1.3%)

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

Compiled 8 to 6 computations (25% saved)

sample3.2s (44.2%)

Results
1.3s6193×body256valid
1.1s1368×body1024valid
312.0ms666×body1024invalid
261.0ms694×body512valid
85.0ms356×body512invalid
82.0ms412×body256invalid
1.0msbody2048valid

preprocess88.0ms (1.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 7 computations (22.2% saved)

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

eval1.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series6.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

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

simplify139.0ms (1.9%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
039152
1105150
2269142
3869122
43456118
55851118
67287118
77711118
Stop Event
node limit
Counts
19 → 25
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (cos.f64 im) (fma.f64 re (*.f64 re 1/2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (fma.f64 re (*.f64 re 1/2) 1)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im))))
(fma.f64 (+.f64 re 1) (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 re (*.f64 re 1/2)))))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2))))
(*.f64 (cos.f64 im) (+.f64 (fma.f64 1/6 (pow.f64 re 3) 1) (fma.f64 re (*.f64 re 1/2) re)))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(*.f64 (+.f64 (*.f64 im (*.f64 im -1/2)) 1) (exp.f64 re))
(*.f64 (exp.f64 re) (fma.f64 im (*.f64 im -1/2) 1))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 im (*.f64 im -1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (fma.f64 1/24 (pow.f64 im 4) 1)))
(*.f64 (exp.f64 re) (+.f64 1 (fma.f64 im (*.f64 im -1/2) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)) (exp.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 im (*.f64 im -1/2)) 1) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(fma.f64 (exp.f64 re) (fma.f64 im (*.f64 im -1/2) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (exp.f64 re) (fma.f64 -1/720 (pow.f64 im 6) 1)))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 -1/720 (pow.f64 im 6) 1) (fma.f64 im (*.f64 im -1/2) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (fma.f64 im (*.f64 im -1/2) 1) (fma.f64 1/24 (pow.f64 im 4) (*.f64 -1/720 (pow.f64 im 6)))))

eval9.0ms (0.1%)

Compiler

Compiled 275 to 141 computations (48.7% saved)

prune8.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New21425
Fresh000
Picked011
Done000
Total21526
Error
0.0b
Counts
26 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
19.5b
(exp.f64 re)
20.2b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.4b
(cos.f64 im)
0.2b
(-.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)
Compiler

Compiled 34 to 26 computations (23.5% saved)

localize5.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize18.0ms (0.2%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series5.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite75.0ms (1%)

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

simplify168.0ms (2.4%)

Algorithm
egg-herbie
Rules
773×fma-def_binary64
757×distribute-rgt-out_binary64
630×distribute-rgt-in_binary64
619×distribute-lft-in_binary64
521×associate-*l*_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
030268
178262
2249250
3914243
43884243
56204243
66386243
76625243
86844243
97117239
Stop Event
node limit
Counts
48 → 36
Calls
Call 1
Inputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re))
(+.f64 1 (fma.f64 (*.f64 im (fma.f64 re -1/2 -1/2)) im re))
(*.f64 (+.f64 1 re) (fma.f64 -1/2 (*.f64 im im) 1))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) 1))
(+.f64 1 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im (fma.f64 re -1/2 -1/2)) im re)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (fma.f64 1/24 (pow.f64 im 4) 1)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (fma.f64 -1/2 (*.f64 im im) 1)))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) 1)))
(+.f64 (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 1) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im (fma.f64 re -1/2 -1/2)) im re)))
(fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (fma.f64 -1/720 (pow.f64 im 6) 1))))
(fma.f64 (+.f64 1 re) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (+.f64 1 re) (fma.f64 -1/2 (*.f64 im im) 1)))
(*.f64 (+.f64 1 re) (+.f64 (fma.f64 -1/2 (*.f64 im im) 1) (fma.f64 -1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
0.2b
(+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im)))
0.2b
(-.f64 (+.f64 1 (*.f64 (exp.f64 re) (cos.f64 im))) 1)
Compiler

Compiled 30 to 12 computations (60% saved)

series3.0ms (0%)

Counts
2 → 32
Calls

12 calls:

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

rewrite73.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
910×pow1_binary64
844×add-log-exp_binary64
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
828×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify99.0ms (1.4%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
051456
1145452
2388434
31274412
43330408
55725408
66969408
77394408
Stop Event
node limit
Counts
115 → 113
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 re) (cos.f64 im))
(+.f64 1 (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(+.f64 1 (+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
(+.f64 1 (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))
(fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2))))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))))
(fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im))))
(fma.f64 (cos.f64 im) (*.f64 re (*.f64 re 1/2)) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re 1))))
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2))))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))))))
(*.f64 (cos.f64 im) (+.f64 1 (+.f64 re (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6)))))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (exp.f64 re))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 im im)) 1) (exp.f64 re))
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 im (*.f64 im -1/2))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im)))))
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 (*.f64 im im) (+.f64 -1/2 (*.f64 (*.f64 im im) 1/24)))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)) (exp.f64 re))))
(+.f64 (fma.f64 (exp.f64 re) (*.f64 -1/720 (pow.f64 im 6)) (exp.f64 re)) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im)))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))))))
(*.f64 (exp.f64 re) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(*.f64 (exp.f64 re) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))) (+.f64 1 (*.f64 im (*.f64 im -1/2)))))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (cos.f64 im) (exp.f64 re))
(+.f64 1 (cos.f64 im))
(+.f64 (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) 1)
(+.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)
(fma.f64 (+.f64 re 1) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im))) 1)
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im))) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 re (*.f64 re 1/2)))) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re)))) 1)
(+.f64 1 (+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
(+.f64 (fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 (cos.f64 im) re (cos.f64 im)))) 1)
(+.f64 (fma.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (cos.f64 im) (*.f64 re re)) (*.f64 (+.f64 re 1) (cos.f64 im)))) 1)
(+.f64 (fma.f64 (+.f64 re 1) (cos.f64 im) 1) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 re (*.f64 re 1/2)))))
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 (*.f64 re re) (+.f64 (*.f64 re 1/6) 1/2)))))
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6))))))))
(+.f64 1 (*.f64 (cos.f64 im) (+.f64 1 (+.f64 re (*.f64 re (*.f64 re (+.f64 1/2 (*.f64 re 1/6))))))))
(+.f64 1 (exp.f64 re))
(+.f64 (exp.f64 re) 1)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (exp.f64 re)))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (exp.f64 re) 1))
(+.f64 (exp.f64 re) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) 1))
(+.f64 (exp.f64 re) (fma.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 im im)) 1))
(+.f64 (exp.f64 re) (fma.f64 (exp.f64 re) (*.f64 im (*.f64 im -1/2)) 1))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) 1))
(+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) 1))
(+.f64 (exp.f64 re) (+.f64 1 (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4))))) 1)
(+.f64 (*.f64 (exp.f64 re) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))))) 1)
(+.f64 (*.f64 (exp.f64 re) (+.f64 1 (*.f64 (*.f64 im im) (+.f64 -1/2 (*.f64 (*.f64 im im) 1/24))))) 1)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 1 (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))))))
(fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) (+.f64 (+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (exp.f64 re)) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)))) 1))
(+.f64 (fma.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6)) (exp.f64 re))) (fma.f64 -1/2 (*.f64 (exp.f64 re) (*.f64 im im)) 1))
(+.f64 (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (*.f64 im im))))) (fma.f64 (exp.f64 re) (*.f64 -1/720 (pow.f64 im 6)) 1))
(+.f64 (exp.f64 re) (+.f64 1 (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (*.f64 im im)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))))) 1)
(+.f64 (*.f64 (exp.f64 re) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))) (+.f64 1 (*.f64 im (*.f64 im -1/2))))) 1)

eval48.0ms (0.7%)

Compiler

Compiled 2474 to 1326 computations (46.4% saved)

prune27.0ms (0.4%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1695174
Fresh000
Picked101
Done134
Total1718179
Error
0b
Counts
179 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.5b
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
39.7b
(+.f64 1 re)
25.7b
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 im (*.f64 im -1/2))))
19.5b
(exp.f64 re)
20.4b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1))) 1)
20.3b
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))
20.2b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.4b
(cos.f64 im)
Compiler

Compiled 174 to 110 computations (36.8% saved)

localize15.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 40 to 21 computations (47.5% saved)

series5.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite74.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
566×log-prod_binary64
546×fma-def_binary64
450×pow-prod-down_binary64
308×pow2_binary64
281×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify160.0ms (2.2%)

Algorithm
egg-herbie
Rules
948×distribute-rgt-in_binary64
791×distribute-lft-in_binary64
540×sqr-pow_binary64
452×*-commutative_binary64
320×unswap-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042565
1121561
2404525
31860504
43513494
54273494
64425494
74596494
84764494
94986494
106731494
117140494
127581494
Stop Event
node limit
Counts
183 → 172
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
Outputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(fma.f64 1/2 (*.f64 re re) (+.f64 1 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re)))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) re) (fma.f64 1/2 (*.f64 re re) 1))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 im im)) 1) (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (+.f64 1 (*.f64 -1/2 (*.f64 im im))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(fma.f64 1/2 (*.f64 re re) (+.f64 1 (+.f64 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re) (*.f64 1/24 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 4))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 4)) re)) (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 re (+.f64 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/2 (*.f64 im im)) (*.f64 1/24 (pow.f64 im 4)))) (fma.f64 1/2 (*.f64 re re) 1)))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 1/24 (pow.f64 im 4))))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (*.f64 im im)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(fma.f64 1/2 (*.f64 re re) (fma.f64 -1/720 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 6)) (+.f64 1 (+.f64 (fma.f64 -1/2 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (*.f64 im im)) re) (*.f64 1/24 (*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (pow.f64 im 4)))))))
(fma.f64 1/2 (*.f64 re re) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (*.f64 im im)) (fma.f64 1/24 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 4)) re)) (fma.f64 -1/720 (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (pow.f64 im 6)) 1)))
(+.f64 (fma.f64 (pow.f64 im 6) (fma.f64 (+.f64 re 1) -1/720 (*.f64 (*.f64 re re) -1/1440)) 1) (+.f64 (fma.f64 1/2 (*.f64 re re) re) (*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (+.f64 (*.f64 -1/2 (*.f64 im im)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (fma.f64 1/2 (*.f64 re re) 1) (+.f64 re (*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 (*.f64 im im) (+.f64 (*.f64 (*.f64 im im) 1/24) -1/2))))))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))))
(*.f64 (*.f64 1/2 (*.f64 re re)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(fma.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)) (*.f64 re (cos.f64 im)))
(fma.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(*.f64 (cos.f64 im) (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)))
(*.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))))
(*.f64 (*.f64 1/2 (*.f64 re re)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(fma.f64 1/2 (*.f64 (*.f64 re re) (cos.f64 im)) (*.f64 re (cos.f64 im)))
(fma.f64 1/2 (*.f64 re (*.f64 re (cos.f64 im))) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) (fma.f64 1/2 (*.f64 re re) re))
(*.f64 (cos.f64 im) (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (fma.f64 1/2 (*.f64 re re) (+.f64 re 1)) (cos.f64 im))
(*.f64 (+.f64 re (fma.f64 1/2 (*.f64 re re) 1)) (cos.f64 im))
(*.f64 (+.f64 1 (fma.f64 re (*.f64 1/2 re) re)) (cos.f64 im))
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(fma.f64 re (*.f64 1/2 re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(fma.f64 re (*.f64 1/2 re) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(fma.f64 1/2 (*.f64 re re) (+.f64 re 1))
(+.f64 re (fma.f64 1/2 (*.f64 re re) 1))
(+.f64 1 (fma.f64 re (*.f64 1/2 re) re))

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize14.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.4b
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 im (*.f64 im -1/2))))
Compiler

Compiled 33 to 21 computations (36.4% saved)

series6.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite64.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
566×prod-diff_binary64
483×log-prod_binary64
357×fma-def_binary64
330×pow-prod-down_binary64
250×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify67.0ms (0.9%)

Algorithm
egg-herbie
Rules
1018×fma-def_binary64
662×associate-*l*_binary64
584×distribute-lft-out_binary64
534×distribute-rgt-out_binary64
509×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
028418
174349
2240332
31028320
45088320
Stop Event
node limit
Counts
89 → 79
Calls
Call 1
Inputs
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re)))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 2))) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re))))
(+.f64 (*.f64 1/6 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 2))) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
Outputs
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 im im)))
(fma.f64 -1/2 (*.f64 im im) 1)
(fma.f64 im (*.f64 -1/2 im) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re)))
(+.f64 1 (fma.f64 -1/2 (*.f64 im im) (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) re)))
(*.f64 (+.f64 re 1) (fma.f64 -1/2 (*.f64 im im) 1))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (+.f64 1 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (+.f64 1 re))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 2))) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re))))
(fma.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 re re)) (+.f64 1 (fma.f64 -1/2 (*.f64 im im) (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) re))))
(fma.f64 1/2 (*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (*.f64 re re)) (*.f64 (+.f64 re 1) (fma.f64 -1/2 (*.f64 im im) 1)))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (+.f64 (+.f64 1 re) (*.f64 re (*.f64 re 1/2))))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (fma.f64 1/2 (*.f64 re re) (+.f64 1 re)))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (fma.f64 1/2 (*.f64 re re) (+.f64 1 re)))
(+.f64 (*.f64 1/6 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (pow.f64 re 2))) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) re)))))
(fma.f64 1/6 (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 re re)) (+.f64 1 (fma.f64 -1/2 (*.f64 im im) (*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) re)))))
(fma.f64 1/6 (*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (*.f64 re re)) (*.f64 (+.f64 re 1) (fma.f64 -1/2 (*.f64 im im) 1))))
(fma.f64 (*.f64 re re) (+.f64 1/2 (*.f64 (*.f64 im im) -1/4)) (*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 1 re))))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (+.f64 (+.f64 1 re) (*.f64 (*.f64 re re) (+.f64 1/2 (*.f64 re 1/6)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2)))
(*.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 re)))
(*.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2)))
(*.f64 -1/2 (*.f64 (*.f64 im im) (exp.f64 re)))
(*.f64 -1/2 (*.f64 im (*.f64 im (exp.f64 re))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (exp.f64 re))
(*.f64 (fma.f64 -1/2 (*.f64 im im) 1) (exp.f64 re))
(*.f64 (fma.f64 im (*.f64 -1/2 im) 1) (exp.f64 re))

localize29.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 34 to 21 computations (38.2% saved)

series7.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite126.0ms (1.8%)

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

simplify197.0ms (2.8%)

Algorithm
egg-herbie
Rules
591×distribute-rgt-in_binary64
587×distribute-lft-in_binary64
536×associate-*l*_binary64
483×distribute-lft-out_binary64
461×distribute-rgt-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
039556
1107544
2338520
31184518
43167516
56628516
66804516
77043516
87262516
97535516
107872516
Stop Event
node limit
Counts
240 → 214
Calls
Call 1
Inputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 2 re)
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(+.f64 1 (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
Outputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))
(+.f64 1 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re))
(+.f64 1 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) 1))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 1))
(*.f64 (+.f64 1 re) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 1/24 (pow.f64 im 4))))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (*.f64 im im)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) 1)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 1)))
(fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) (*.f64 (+.f64 1 re) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (+.f64 1 re) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 im im))) (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 -1/720 (*.f64 im im))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))
(+.f64 2 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re))
(+.f64 2 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re))
(+.f64 re (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) 2))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im))))))
(+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) 2))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 2))
(+.f64 2 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re)))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (fma.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6)) (+.f64 2 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)))))))
(fma.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)) (+.f64 (fma.f64 -1/2 (*.f64 (+.f64 1 re) (*.f64 im im)) re) (fma.f64 (+.f64 -1/720 (*.f64 re -1/720)) (pow.f64 im 6) 2)))
(+.f64 (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re) (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) 2)))
(+.f64 (fma.f64 (pow.f64 im 4) (fma.f64 re 1/24 1/24) 2) (fma.f64 (pow.f64 im 6) (fma.f64 re -1/720 -1/720) (fma.f64 (*.f64 im im) (fma.f64 re -1/2 -1/2) re)))
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (*.f64 (+.f64 1 re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) 1)
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)
(+.f64 1 (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) (+.f64 1 re) 1)
(fma.f64 (+.f64 1 re) (cos.f64 im) 1)

localize67.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
0.2b
(pow.f64 (cos.f64 im) 2)
0.3b
(pow.f64 (cos.f64 im) 3)
12.5b
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
Compiler

Compiled 121 to 36 computations (70.2% saved)

series42.0ms (0.6%)

Counts
4 → 56
Calls

18 calls:

TimeVariablePointExpression
12.0ms
im
@0
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
10.0ms
im
@-inf
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
5.0ms
im
@inf
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
3.0ms
re
@inf
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
1.0ms
re
@0
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))

rewrite125.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
535×fma-neg_binary64
302×expm1-udef_binary64
302×log1p-udef_binary64
255×log-pow_binary64
188×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01672
138530
2547930
Stop Event
node limit
Counts
4 → 110
Calls
Call 1
Inputs
(/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 im) re) (*.f64 (cos.f64 im) re)) (-.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))))
(pow.f64 (cos.f64 im) 3)
(pow.f64 (cos.f64 im) 2)
(*.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 re 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) 2) (*.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 2) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) (*.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) (/.f64 1 (neg.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) 1) (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) 2) 1) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) 1) (/.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) 2)) (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) 2)) (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) 2) (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) 2)) (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))))) 2)) (/.f64 (hypot.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (*.f64 (cos.f64 im) re) 3/2)) (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) 2) (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))) (/.f64 (cbrt.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3))) (hypot.f64 (*.f64 (cos.f64 im) re) (sqrt.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 6) (pow.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))) 3))) (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 4) (*.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))) (-.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))) (pow.f64 (*.f64 (cos.f64 im) re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 4) (pow.f64 (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))) 2))) (-.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) (neg.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 re 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (cos.f64 im)) re) (exp.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (cos.f64 im)) (pow.f64 (exp.f64 (cos.f64 im)) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 im))) (pow.f64 (exp.f64 (cos.f64 im)) re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (cos.f64 im)) (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 im))) (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) re))) (exp.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (cos.f64 im)) re) (+.f64 1 (expm1.f64 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 im) re))) (+.f64 1 (expm1.f64 (cos.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 3) (pow.f64 (cos.f64 im) 3)) 3) (pow.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2) (*.f64 (cos.f64 im) (-.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 im) (+.f64 re 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 im) re (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 re (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 im) re) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 im) re) 2)) (cbrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 im) re)) (sqrt.f64 (*.f64 (cos.f64 im) re)) (cos.f64 im))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cos.f64 im) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (pow.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 2) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cos.f64 im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 4)) (*.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (*.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 3/2) (pow.f64 (cos.f64 im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cos.f64 im)) 3) (pow.f64 (sqrt.f64 (cos.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (cbrt.f64 (pow.f64 (cos.f64 im) 4))) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (sqrt.f64 (cos.f64 im))) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 im) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cos.f64 im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 im) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cos.f64 im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 im) 3)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/2 (*.f64 1/2 (cos.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cos.f64 im) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (cbrt.f64 (pow.f64 (cos.f64 im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 im)) 2) (*.f64 (cbrt.f64 (cos.f64 im)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cos.f64 im) 4)) (pow.f64 (cbrt.f64 (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 im)) (pow.f64 (cos.f64 im) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 im) 3/2) (sqrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (pow.f64 (cbrt.f64 (cos.f64 im)) 2)) (cbrt.f64 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (cos.f64 (+.f64 im im)) (cos.f64 (-.f64 im im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 im) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cos.f64 im))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 re (pow.f64 (cos.f64 im) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 (cos.f64 im) 2))) 1))))))

simplify92.0ms (1.3%)

Algorithm
egg-herbie
Rules
533×associate-*r*_binary64
525×distribute-rgt-in_binary64
516×associate-*l*_binary64
507×distribute-lft-in_binary64
256×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01832189
15801918
220751823
Stop Event
node limit
Counts
166 → 154
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 re 2)) (*.f64 -1/360 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 -1/720 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -2/45 (pow.f64 re 2)) (+.f64 (*.f64 -2/45 re) 2/45)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 61/240 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 re 2)) (*.f64 1/4 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (pow.f64 im 6)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (-.f64 (cos.f64 im) (+.f64 (*.f64 -1 (cos.f64 im)) (*.f64 2 (cos.f64 im)))) (pow.f64 re 3)))))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))
(-.f64 (+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))) (+.f64 (*.f64 2 (/.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2)))))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (/.f64 (cos.f64 im) re))))
(+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2))) (/.f64 (cos.f64 im) re))))))
1
(+.f64 1 (*.f64 -3/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 im 2)) (*.f64 7/8 (pow.f64 im 4))))
(+.f64 (*.f64 -61/240 (pow.f64 im 6)) (+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 im 2)) (*.f64 7/8 (pow.f64 im 4)))))
1
(+.f64 (*.f64 -1 (pow.f64 im 2)) 1)
(+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -1 (pow.f64 im 2)) 1))
(+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -1 (pow.f64 im 2)) (+.f64 1 (*.f64 -2/45 (pow.f64 im 6)))))
re
(+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2)))))
(+.f64 (*.f64 -2/45 (*.f64 re (pow.f64 im 6))) (+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2))))))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 (pow.f64 (cos.f64 im) 2) re)
Outputs
(/.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (+.f64 1 (pow.f64 re 3)) (+.f64 (*.f64 re re) (-.f64 1 re)))
(/.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (fma.f64 re re 1) re))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))) (*.f64 im im) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re)))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))) (*.f64 im im) (fma.f64 (-.f64 (fma.f64 1/2 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (+.f64 (/.f64 (*.f64 re (*.f64 (*.f64 re re) 1/3)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 1/24 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (/.f64 7/8 (+.f64 (*.f64 re re) (-.f64 1 re)))))) (+.f64 (/.f64 (+.f64 1/3 (-.f64 (*.f64 (*.f64 re re) 1/3) (*.f64 re 1/3))) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (fma.f64 (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (/.f64 (*.f64 (pow.f64 re 3) 1/3) (-.f64 (fma.f64 re re 1) re))) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (+.f64 1/3 (*.f64 1/3 (-.f64 (*.f64 re re) re))) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 re re 1) re)) (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (fma.f64 (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (*.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/3)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (*.f64 1/3 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 (-.f64 (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/24 (pow.f64 re 2)) (*.f64 -1/360 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 -1/720 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -2/45 (pow.f64 re 2)) (+.f64 (*.f64 -2/45 re) 2/45)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 61/240 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 re 2)) (*.f64 1/4 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (pow.f64 im 6)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re))))) (pow.f64 im 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/12 (pow.f64 re 2))) re) (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 7/8 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (+.f64 (/.f64 (*.f64 (-.f64 (+.f64 1/3 (*.f64 1/3 (pow.f64 re 2))) (*.f64 1/3 re)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (*.f64 -1 (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 re 2)) (+.f64 (*.f64 -1 re) 1)) (+.f64 1 (pow.f64 re 3))) (pow.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) 2)) (*.f64 3/2 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 (-.f64 (+.f64 (/.f64 (*.f64 re (*.f64 (*.f64 re re) -2/45)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 -1/2 (/.f64 (*.f64 re (*.f64 (*.f64 re re) 1/3)) (+.f64 (*.f64 re re) (-.f64 1 re))) (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -31/720))) (+.f64 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (*.f64 (*.f64 re re) -2/45) (fma.f64 -2/45 re 2/45))) (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2)) (+.f64 (/.f64 (+.f64 1/3 (-.f64 (*.f64 (*.f64 re re) 1/3) (*.f64 re 1/3))) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))))) (+.f64 (/.f64 61/240 (+.f64 (*.f64 re re) (-.f64 1 re))) (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (-.f64 (fma.f64 1/2 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (+.f64 (/.f64 (*.f64 re (*.f64 (*.f64 re re) 1/3)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 1/24 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (/.f64 7/8 (+.f64 (*.f64 re re) (-.f64 1 re)))))) (+.f64 (/.f64 (+.f64 1/3 (-.f64 (*.f64 (*.f64 re re) 1/3) (*.f64 re 1/3))) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))))))))))))) (pow.f64 im 6) (fma.f64 (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))) (*.f64 im im) (fma.f64 (-.f64 (fma.f64 1/2 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (+.f64 (/.f64 (*.f64 re (*.f64 (*.f64 re re) 1/3)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 1/24 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) (/.f64 7/8 (+.f64 (*.f64 re re) (-.f64 1 re)))))) (+.f64 (/.f64 (+.f64 1/3 (-.f64 (*.f64 (*.f64 re re) 1/3) (*.f64 re 1/3))) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (-.f64 (*.f64 (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))) -3/2) (+.f64 (/.f64 (-.f64 (neg.f64 (*.f64 re re)) (fma.f64 -1 re 1)) (/.f64 (pow.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) 2) (+.f64 1 (pow.f64 re 3)))) (/.f64 3/2 (+.f64 (*.f64 re re) (-.f64 1 re))))))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re)))))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (-.f64 (+.f64 (/.f64 (*.f64 (pow.f64 re 3) -2/45) (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -31/720 (/.f64 -1/2 (/.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 (pow.f64 re 3) 1/3)))) (*.f64 (/.f64 (+.f64 (*.f64 -2/45 (-.f64 (*.f64 re re) re)) -2/45) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (+.f64 (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 re re 1) re)) (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (/.f64 (*.f64 (pow.f64 re 3) 1/3) (-.f64 (fma.f64 re re 1) re))) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (+.f64 1/3 (*.f64 1/3 (-.f64 (*.f64 re re) re))) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 re re 1) re)) (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))))) (+.f64 (*.f64 (/.f64 (+.f64 1/3 (*.f64 1/3 (-.f64 (*.f64 re re) re))) (-.f64 (fma.f64 re re 1) re)) (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (/.f64 61/240 (-.f64 (fma.f64 re re 1) re))))) (pow.f64 im 6) (fma.f64 (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (fma.f64 (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (/.f64 (*.f64 (pow.f64 re 3) 1/3) (-.f64 (fma.f64 re re 1) re))) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (+.f64 1/3 (*.f64 1/3 (-.f64 (*.f64 re re) re))) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 re re 1) re)) (-.f64 (-.f64 (/.f64 (*.f64 (pow.f64 re 3) -3/2) (-.f64 (fma.f64 re re 1) re)) (/.f64 3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (neg.f64 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 (+.f64 (/.f64 (pow.f64 re 3) (/.f64 (-.f64 (fma.f64 re re 1) re) -2/45)) (-.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -31/720 (/.f64 (*.f64 (pow.f64 re 3) -1/6) (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (+.f64 (*.f64 re (fma.f64 re -2/45 2/45)) -2/45) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (+.f64 (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (-.f64 (fma.f64 re re 1) re)) (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (*.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/3)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (*.f64 1/3 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))))) (+.f64 (*.f64 (/.f64 (*.f64 1/3 (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (/.f64 61/240 (-.f64 (fma.f64 re re 1) re)))))) (pow.f64 im 6) (fma.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))) (*.f64 im im) (fma.f64 (-.f64 (+.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/2 (*.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/3)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) 1/24 (/.f64 7/8 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (*.f64 1/3 (-.f64 (fma.f64 re re 1) re)) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3))))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (-.f64 (fma.f64 re re 1) re)) (-.f64 (fma.f64 (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)) -3/2 (/.f64 -3/2 (-.f64 (fma.f64 re re 1) re))) (*.f64 (/.f64 (-.f64 (fma.f64 re (neg.f64 re) re) 1) (pow.f64 (-.f64 (fma.f64 re re 1) re) 2)) (+.f64 1 (pow.f64 re 3)))))) (pow.f64 im 4) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2)) (pow.f64 (cos.f64 im) 2)) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 (cos.f64 im) 3) (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (pow.f64 re 2))) (*.f64 (pow.f64 (cos.f64 im) 2) re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 im) 3) (*.f64 (pow.f64 re 3) (pow.f64 (cos.f64 im) 3))) (-.f64 (fma.f64 (pow.f64 (cos.f64 im) 2) (*.f64 re re) (pow.f64 (cos.f64 im) 2)) (*.f64 re (pow.f64 (cos.f64 im) 2))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 (cos.f64 im) 3)) (+.f64 (pow.f64 (cos.f64 im) 2) (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (*.f64 re re) re))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (-.f64 (cos.f64 im) (+.f64 (*.f64 -1 (cos.f64 im)) (*.f64 2 (cos.f64 im)))) (pow.f64 re 3)))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(-.f64 (+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))) (+.f64 (*.f64 2 (/.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2)))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(fma.f64 re (cos.f64 im) (cos.f64 im))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (/.f64 (cos.f64 im) re))))
(fma.f64 -1 (/.f64 (cos.f64 im) re) (+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (/.f64 (cos.f64 im) re)))
(-.f64 (+.f64 (fma.f64 re (cos.f64 im) (cos.f64 im)) (/.f64 (cos.f64 im) re)) (/.f64 (cos.f64 im) re))
(+.f64 (fma.f64 re (cos.f64 im) (cos.f64 im)) (*.f64 0 (/.f64 (cos.f64 im) re)))
(+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2))) (/.f64 (cos.f64 im) re))))))
(+.f64 (/.f64 (cos.f64 im) (*.f64 re re)) (fma.f64 -1 (/.f64 (cos.f64 im) re) (+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (fma.f64 -1 (/.f64 (cos.f64 im) (*.f64 re re)) (/.f64 (cos.f64 im) re)))))
(+.f64 (/.f64 (cos.f64 im) (*.f64 re re)) (-.f64 (+.f64 (fma.f64 re (cos.f64 im) (cos.f64 im)) (-.f64 (/.f64 (cos.f64 im) re) (/.f64 (cos.f64 im) (*.f64 re re)))) (/.f64 (cos.f64 im) re)))
(+.f64 (/.f64 (cos.f64 im) (*.f64 re re)) (+.f64 (-.f64 (fma.f64 re (cos.f64 im) (cos.f64 im)) (/.f64 (cos.f64 im) (*.f64 re re))) (*.f64 0 (/.f64 (cos.f64 im) re))))
1
(+.f64 1 (*.f64 -3/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 (*.f64 im im) -3/2))
(fma.f64 (*.f64 im im) -3/2 1)
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 im 2)) (*.f64 7/8 (pow.f64 im 4))))
(+.f64 1 (fma.f64 -3/2 (*.f64 im im) (*.f64 7/8 (pow.f64 im 4))))
(+.f64 1 (fma.f64 (*.f64 im im) -3/2 (*.f64 7/8 (pow.f64 im 4))))
(+.f64 (fma.f64 (*.f64 im im) -3/2 1) (*.f64 7/8 (pow.f64 im 4)))
(+.f64 (*.f64 -61/240 (pow.f64 im 6)) (+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 im 2)) (*.f64 7/8 (pow.f64 im 4)))))
(fma.f64 -61/240 (pow.f64 im 6) (+.f64 1 (fma.f64 -3/2 (*.f64 im im) (*.f64 7/8 (pow.f64 im 4)))))
(+.f64 (fma.f64 (*.f64 im im) -3/2 (*.f64 7/8 (pow.f64 im 4))) (fma.f64 (pow.f64 im 6) -61/240 1))
1
(+.f64 (*.f64 -1 (pow.f64 im 2)) 1)
(fma.f64 -1 (*.f64 im im) 1)
(-.f64 1 (*.f64 im im))
(+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -1 (pow.f64 im 2)) 1))
(fma.f64 1/3 (pow.f64 im 4) (fma.f64 -1 (*.f64 im im) 1))
(fma.f64 1/3 (pow.f64 im 4) (-.f64 1 (*.f64 im im)))
(+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -1 (pow.f64 im 2)) (+.f64 1 (*.f64 -2/45 (pow.f64 im 6)))))
(fma.f64 1/3 (pow.f64 im 4) (+.f64 (fma.f64 -1 (*.f64 im im) 1) (*.f64 -2/45 (pow.f64 im 6))))
(fma.f64 1/3 (pow.f64 im 4) (-.f64 (fma.f64 -2/45 (pow.f64 im 6) 1) (*.f64 im im)))
re
(+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 (neg.f64 re) (*.f64 im im)))
(fma.f64 (neg.f64 re) (*.f64 im im) re)
(-.f64 re (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2)))))
(fma.f64 1/3 (*.f64 re (pow.f64 im 4)) (+.f64 re (*.f64 (neg.f64 re) (*.f64 im im))))
(-.f64 (fma.f64 1/3 (*.f64 re (pow.f64 im 4)) re) (*.f64 re (*.f64 im im)))
(+.f64 re (*.f64 re (fma.f64 1/3 (pow.f64 im 4) (*.f64 im (neg.f64 im)))))
(+.f64 (*.f64 -2/45 (*.f64 re (pow.f64 im 6))) (+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 -1 (*.f64 re (pow.f64 im 2))))))
(fma.f64 -2/45 (*.f64 re (pow.f64 im 6)) (fma.f64 1/3 (*.f64 re (pow.f64 im 4)) (+.f64 re (*.f64 (neg.f64 re) (*.f64 im im)))))
(fma.f64 -2/45 (*.f64 re (pow.f64 im 6)) (-.f64 (fma.f64 1/3 (*.f64 re (pow.f64 im 4)) re) (*.f64 re (*.f64 im im))))
(fma.f64 -2/45 (*.f64 re (pow.f64 im 6)) (+.f64 re (*.f64 re (fma.f64 1/3 (pow.f64 im 4) (*.f64 im (neg.f64 im))))))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))
(*.f64 (pow.f64 (cos.f64 im) 2) re)
(*.f64 re (pow.f64 (cos.f64 im) 2))

eval369.0ms (5.2%)

Compiler

Compiled 14485 to 8014 computations (44.7% saved)

prune183.0ms (2.6%)

Pruning

11 alts after pruning (4 fresh and 7 done)

PrunedKeptTotal
New6514655
Fresh000
Picked101
Done077
Total65211663
Error
0b
Counts
663 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
19.5b
(exp.f64 re)
39.7b
(-.f64 (+.f64 1 (+.f64 1 re)) 1)
20.6b
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
39.8b
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
39.7b
(-.f64 (+.f64 re 2) 1)
39.7b
(+.f64 1 re)
25.7b
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 im (*.f64 im -1/2))))
20.4b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1))) 1)
20.3b
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))
20.2b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.4b
(cos.f64 im)
Compiler

Compiled 110 to 85 computations (22.7% saved)

localize23.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 26 to 20 computations (23.1% saved)

series5.0ms (0.1%)

Counts
2 → 6
Calls

6 calls:

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

rewrite166.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
986×pow1_binary64
924×add-log-exp_binary64
922×log1p-expm1-u_binary64
922×expm1-log1p-u_binary64
97×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify183.0ms (2.6%)

Algorithm
egg-herbie
Rules
888×fma-def_binary64
778×sqr-pow_binary64
502×cube-prod_binary64
487×associate-*l*_binary64
482×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0935
11935
22835
35635
413935
543035
6160535
7303735
8340535
9363635
10387935
11422835
12465435
13518335
14577035
15649435
16733535
17773535
Stop Event
node limit
Counts
61 → 61
Calls
Call 1
Inputs
1
(+.f64 1 re)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
Outputs
1
(+.f64 1 re)
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 re (*.f64 re 1/2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(fma.f64 re (*.f64 re 1/2) re)
(*.f64 re (fma.f64 re 1/2 1))
(*.f64 1/2 (pow.f64 re 2))
(*.f64 1/2 (*.f64 re re))
(*.f64 re (*.f64 re 1/2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(fma.f64 1/2 (*.f64 re re) re)
(fma.f64 re (*.f64 re 1/2) re)
(*.f64 re (fma.f64 re 1/2 1))

localize17.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 15 computations (21.1% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite97.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
756×pow1_binary64
714×add-log-exp_binary64
712×log1p-expm1-u_binary64
712×expm1-log1p-u_binary64
703×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify16.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0678
11078
Stop Event
saturated
Counts
109 → 90
Calls
Call 1
Inputs
1
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
2
(+.f64 2 re)
(+.f64 2 re)
(+.f64 2 re)
re
(+.f64 2 re)
(+.f64 2 re)
(+.f64 2 re)
re
(+.f64 2 re)
(+.f64 2 re)
(+.f64 2 re)
Outputs
1
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
re
(+.f64 1 re)
(+.f64 1 re)
(+.f64 1 re)
2
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)
re
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)
re
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 re)
(+.f64 re 2)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
685×pow1_binary64
646×add-log-exp_binary64
644×log1p-expm1-u_binary64
644×expm1-log1p-u_binary64
636×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize35.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3))
0.2b
(pow.f64 (cos.f64 im) 2)
0.3b
(pow.f64 (cos.f64 im) 3)
12.7b
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
Compiler

Compiled 84 to 50 computations (40.5% saved)

series9.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite87.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
719×prod-diff_binary64
488×fma-def_binary64
287×log1p-udef_binary64
286×expm1-udef_binary64
206×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify66.0ms (0.9%)

Algorithm
egg-herbie
Rules
671×fma-def_binary64
539×associate-+l+_binary64
399×associate-+r+_binary64
316×sub-neg_binary64
303×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01161151
13581041
21348994
36717994
Stop Event
node limit
Counts
141 → 134
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (-.f64 (cos.f64 im) (+.f64 (*.f64 -1 (cos.f64 im)) (*.f64 2 (cos.f64 im)))) (pow.f64 re 3)))))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))
(-.f64 (+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))) (+.f64 (*.f64 2 (/.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2)))))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (/.f64 (cos.f64 im) re))))
(+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2))) (/.f64 (cos.f64 im) re))))))
(/.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 4)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 6)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 4)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(-.f64 (+.f64 (pow.f64 re 2) 1) re)
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2))))) re)
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (pow.f64 im 4))) (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2)))))) re)
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (pow.f64 im 4))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/720 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/48 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 1/2 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (pow.f64 im 6))))))) re)
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 1 (cos.f64 im))
(+.f64 (/.f64 1 (cos.f64 im)) (*.f64 -1 (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(/.f64 (pow.f64 re 2) (cos.f64 im))
(+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im)))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(/.f64 (pow.f64 re 2) (cos.f64 im))
(+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im)))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 re 2) (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))))) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (-.f64 (cos.f64 im) (+.f64 (*.f64 -1 (cos.f64 im)) (*.f64 2 (cos.f64 im)))) (pow.f64 re 3)))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(-.f64 (+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 -1 (/.f64 (+.f64 (cos.f64 im) (*.f64 -1 (cos.f64 im))) re))))) (+.f64 (*.f64 2 (/.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2)))))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(fma.f64 (cos.f64 im) re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (/.f64 (cos.f64 im) re))))
(fma.f64 -1 (/.f64 (cos.f64 im) re) (+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (/.f64 (cos.f64 im) re)))
(-.f64 (+.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) (/.f64 (cos.f64 im) re)) (/.f64 (cos.f64 im) re))
(fma.f64 (+.f64 re 1) (cos.f64 im) (*.f64 0 (/.f64 (cos.f64 im) re)))
(+.f64 (/.f64 (cos.f64 im) (pow.f64 re 2)) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) re)) (+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (+.f64 (*.f64 -1 (/.f64 (cos.f64 im) (pow.f64 re 2))) (/.f64 (cos.f64 im) re))))))
(fma.f64 -1 (/.f64 (cos.f64 im) re) (+.f64 (fma.f64 (cos.f64 im) re (cos.f64 im)) (/.f64 (cos.f64 im) re)))
(-.f64 (+.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) (/.f64 (cos.f64 im) re)) (/.f64 (cos.f64 im) re))
(fma.f64 (+.f64 re 1) (cos.f64 im) (*.f64 0 (/.f64 (cos.f64 im) re)))
(/.f64 (+.f64 1 (pow.f64 re 3)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (+.f64 (pow.f64 re 3) 1) (+.f64 (*.f64 re re) (-.f64 1 re)))
(/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re))
(/.f64 (+.f64 (pow.f64 re 3) 1) (fma.f64 re re (-.f64 1 re)))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 re 3) 1) (*.f64 im im)) (+.f64 (*.f64 re re) (-.f64 1 re))) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re)))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 im im))) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))
(+.f64 (/.f64 1 (fma.f64 re re (-.f64 1 re))) (fma.f64 -1/2 (*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (fma.f64 re re (-.f64 1 re)) im)) im) (/.f64 (pow.f64 re 3) (fma.f64 re re (-.f64 1 re)))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 4)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 re 3) 1) (*.f64 im im)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 1/24 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (pow.f64 im 4))) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re))))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 im im))) (fma.f64 1/24 (*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re)))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (fma.f64 re re (-.f64 1 re))) (+.f64 (pow.f64 re 3) 1)) (/.f64 (pow.f64 re 3) (fma.f64 re re (-.f64 1 re)))) (fma.f64 -1/2 (*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (fma.f64 re re (-.f64 1 re)) im)) im) (/.f64 1 (fma.f64 re re (-.f64 1 re)))))
(+.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 2)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 6)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (pow.f64 im 4)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (/.f64 (pow.f64 re 3) (-.f64 (+.f64 (pow.f64 re 2) 1) re))))))
(+.f64 (/.f64 1 (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 re 3) 1) (*.f64 im im)) (+.f64 (*.f64 re re) (-.f64 1 re))) (fma.f64 -1/720 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (pow.f64 im 6))) (fma.f64 1/24 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (pow.f64 im 4))) (/.f64 (pow.f64 re 3) (+.f64 (*.f64 re re) (-.f64 1 re)))))))
(+.f64 (/.f64 1 (-.f64 (fma.f64 re re 1) re)) (fma.f64 -1/2 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 im im))) (fma.f64 -1/720 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (-.f64 (fma.f64 re re 1) re) (pow.f64 im 6))) (fma.f64 1/24 (*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (pow.f64 im 4)) (/.f64 (pow.f64 re 3) (-.f64 (fma.f64 re re 1) re))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 im 4) (fma.f64 re re (-.f64 1 re))) (+.f64 (pow.f64 re 3) 1)) (fma.f64 -1/720 (*.f64 (/.f64 (pow.f64 im 6) (fma.f64 re re (-.f64 1 re))) (+.f64 (pow.f64 re 3) 1)) (/.f64 (pow.f64 re 3) (fma.f64 re re (-.f64 1 re))))) (fma.f64 -1/2 (*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (fma.f64 re re (-.f64 1 re)) im)) im) (/.f64 1 (fma.f64 re re (-.f64 1 re)))))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (cos.f64 im) (+.f64 1 (pow.f64 re 3))) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 re 3)) (cos.f64 im)) (-.f64 (+.f64 (pow.f64 re 2) 1) re))
(/.f64 (cos.f64 im) (/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (+.f64 (pow.f64 re 3) 1)))
(*.f64 (/.f64 (+.f64 (pow.f64 re 3) 1) (-.f64 (fma.f64 re re 1) re)) (cos.f64 im))
(*.f64 (+.f64 (pow.f64 re 3) 1) (/.f64 (cos.f64 im) (fma.f64 re re (-.f64 1 re))))
(-.f64 (+.f64 (pow.f64 re 2) 1) re)
(+.f64 (*.f64 re re) (-.f64 1 re))
(-.f64 (fma.f64 re re 1) re)
(fma.f64 re re (-.f64 1 re))
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2))))) re)
(-.f64 (+.f64 (+.f64 (*.f64 re re) 1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (*.f64 im im)))) re)
(-.f64 (fma.f64 re re (fma.f64 1/2 (*.f64 im (*.f64 im (-.f64 (fma.f64 re re 1) re))) 1)) re)
(-.f64 (fma.f64 (fma.f64 re re (-.f64 1 re)) (*.f64 (*.f64 im im) 1/2) (fma.f64 re re 1)) re)
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (pow.f64 im 4))) (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2)))))) re)
(-.f64 (+.f64 (+.f64 (*.f64 re re) 1) (fma.f64 -1 (*.f64 (pow.f64 im 4) (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) -5/24)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (*.f64 im im))))) re)
(-.f64 (+.f64 (fma.f64 re re 1) (-.f64 (*.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 (*.f64 im im) 1/2)) (*.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 -5/24 (pow.f64 im 4))))) re)
(+.f64 (fma.f64 re re 1) (-.f64 (*.f64 (fma.f64 re re (-.f64 1 re)) (-.f64 (*.f64 (*.f64 im im) 1/2) (*.f64 (pow.f64 im 4) -5/24))) re))
(-.f64 (+.f64 (pow.f64 re 2) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re))) (pow.f64 im 4))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (pow.f64 im 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/720 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (+.f64 (*.f64 1/48 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 1/2 (+.f64 (*.f64 1/24 (-.f64 (+.f64 (pow.f64 re 2) 1) re)) (*.f64 -1/4 (-.f64 (+.f64 (pow.f64 re 2) 1) re)))))) (pow.f64 im 6))))))) re)
(-.f64 (+.f64 (+.f64 (*.f64 re re) 1) (fma.f64 -1 (*.f64 (pow.f64 im 4) (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) -5/24)) (fma.f64 1/2 (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (*.f64 im im)) (neg.f64 (*.f64 (pow.f64 im 6) (fma.f64 -1/720 (+.f64 (*.f64 re re) (-.f64 1 re)) (fma.f64 1/48 (+.f64 (*.f64 re re) (-.f64 1 re)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) -5/24))))))))) re)
(+.f64 (fma.f64 re re 1) (-.f64 (-.f64 (-.f64 (*.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 (*.f64 im im) 1/2)) (*.f64 (-.f64 (fma.f64 re re 1) re) (*.f64 -5/24 (pow.f64 im 4)))) (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (-.f64 (fma.f64 re re 1) re) -5/48) (*.f64 (-.f64 (fma.f64 re re 1) re) 7/360)))) re))
(+.f64 (fma.f64 re re 1) (-.f64 (*.f64 (fma.f64 re re (-.f64 1 re)) (-.f64 (*.f64 (*.f64 im im) 1/2) (*.f64 (pow.f64 im 4) -5/24))) (+.f64 (*.f64 (pow.f64 im 6) (*.f64 (fma.f64 re re (-.f64 1 re)) -61/720)) re)))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (+.f64 (pow.f64 re 2) 1) re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 re re) (-.f64 1 re)) (cos.f64 im))
(/.f64 (-.f64 (fma.f64 re re 1) re) (cos.f64 im))
(/.f64 (fma.f64 re re (-.f64 1 re)) (cos.f64 im))
(/.f64 1 (cos.f64 im))
(+.f64 (/.f64 1 (cos.f64 im)) (*.f64 -1 (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (neg.f64 (/.f64 re (cos.f64 im))))
(-.f64 (/.f64 1 (cos.f64 im)) (/.f64 re (cos.f64 im)))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))
(/.f64 (pow.f64 re 2) (cos.f64 im))
(/.f64 (*.f64 re re) (cos.f64 im))
(/.f64 re (/.f64 (cos.f64 im) re))
(+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im)))
(fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im)))
(-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im)))
(-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im)))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))
(/.f64 (pow.f64 re 2) (cos.f64 im))
(/.f64 (*.f64 re re) (cos.f64 im))
(/.f64 re (/.f64 (cos.f64 im) re))
(+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im)))
(fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im)))
(-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im)))
(-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im)))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (+.f64 (*.f64 -1 (/.f64 re (cos.f64 im))) (/.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (fma.f64 -1 (/.f64 re (cos.f64 im)) (/.f64 (*.f64 re re) (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 re (/.f64 (cos.f64 im) re)) (/.f64 re (cos.f64 im))))
(+.f64 (/.f64 1 (cos.f64 im)) (-.f64 (/.f64 (*.f64 re re) (cos.f64 im)) (/.f64 re (cos.f64 im))))

eval149.0ms (2.1%)

Compiler

Compiled 7416 to 5021 computations (32.3% saved)

prune61.0ms (0.9%)

Pruning

14 alts after pruning (4 fresh and 10 done)

PrunedKeptTotal
New3774381
Fresh000
Picked011
Done1910
Total37814392
Error
0b
Counts
392 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
19.5b
(exp.f64 re)
39.7b
(-.f64 (+.f64 1 (+.f64 1 re)) 1)
39.8b
(+.f64 (*.f64 1/2 (*.f64 re re)) (+.f64 1 re))
20.3b
(*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re))))
20.4b
(cos.f64 im)
61.7b
re
39.7b
(-.f64 (+.f64 re 2) 1)
39.7b
(+.f64 1 re)
25.7b
(*.f64 (exp.f64 re) (+.f64 1 (*.f64 im (*.f64 im -1/2))))
62.1b
(*.f64 re (*.f64 re 1/2))
20.4b
(-.f64 (+.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1))) 1)
20.2b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.6b
(/.f64 (+.f64 1 (pow.f64 re 3)) (/.f64 (*.f64 (pow.f64 (cos.f64 im) 2) (-.f64 (fma.f64 re re 1) re)) (pow.f64 (cos.f64 im) 3)))
39.7b
1
Compiler

Compiled 123 to 94 computations (23.6% saved)

regimes45.0ms (0.6%)

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

5 calls:

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

Compiled 175 to 102 computations (41.7% saved)

regimes77.0ms (1.1%)

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

6 calls:

22.0ms
im
16.0ms
(cos.f64 im)
15.0ms
re
12.0ms
(cos.f64 im)
5.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.1b2re
8.8b3im
0.1b2(exp.f64 re)
0.1b2(exp.f64 re)
9.1b2(cos.f64 im)
9.1b2(cos.f64 im)
Compiler

Compiled 106 to 71 computations (33% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.948705752092192
0.9999998786294041
Compiler

Compiled 12 to 9 computations (25% saved)

regimes72.0ms (1%)

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

6 calls:

22.0ms
im
14.0ms
re
13.0ms
(cos.f64 im)
11.0ms
(cos.f64 im)
5.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.2b2re
8.8b3im
0.2b2(exp.f64 re)
0.2b2(exp.f64 re)
9.1b2(cos.f64 im)
9.1b2(cos.f64 im)
Compiler

Compiled 94 to 65 computations (30.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.948705752092192
0.9999998786294041
Compiler

Compiled 12 to 9 computations (25% saved)

regimes44.0ms (0.6%)

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

4 calls:

17.0ms
im
11.0ms
re
10.0ms
(cos.f64 im)
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.6b2re
9.3b3im
0.6b2(exp.f64 re)
9.2b2(cos.f64 im)
Compiler

Compiled 51 to 36 computations (29.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.948705752092192
0.9999998786294041
Compiler

Compiled 12 to 9 computations (25% saved)

regimes19.0ms (0.3%)

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

3 calls:

9.0ms
im
5.0ms
re
2.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
19.5b1re
19.5b1im
19.5b1(exp.f64 re)
Compiler

Compiled 45 to 32 computations (28.9% saved)

regimes15.0ms (0.2%)

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

2 calls:

8.0ms
re
5.0ms
im
Results
ErrorSegmentsBranch
39.7b1re
39.7b1im
Compiler

Compiled 39 to 28 computations (28.2% saved)

regimes16.0ms (0.2%)

Accuracy

Total -22.2b remaining (-55.9%)

Threshold costs -22.2b (-55.9%)

Counts
2 → 1
Calls
Call 1
Inputs
re
1
Outputs
1
Calls

2 calls:

7.0ms
im
7.0ms
re
Results
ErrorSegmentsBranch
39.7b1re
39.7b1im
Compiler

Compiled 10 to 7 computations (30% saved)

simplify11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02180
12880
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re)))))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 1 re)
1
re
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 (+.f64 re 1) (*.f64 1/2 (*.f64 re re)))))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (*.f64 (cos.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 4278419646001971/4503599627370496) (exp.f64 re) (cos.f64 im))
(exp.f64 re)
(+.f64 1 re)
(+.f64 re 1)
1
re
Compiler

Compiled 69 to 48 computations (30.4% saved)

soundness0.0ms (0%)

end91.0ms (1.3%)

Compiler

Compiled 55 to 27 computations (50.9% saved)

Profiling

Loading profile data...