Details

Time bar (total: 6.8s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
99.9%0%0.1%1
Compiler

Compiled 10 to 7 computations (30% saved)

sample4.9s (71.5%)

Results
2.3s3605×body1024valid
1.6s1271×body2048valid
540.0ms1392×body512valid
221.0ms1337×body128valid
187.0ms649×body256valid
6.0msbody4096valid
Compiler

Compiled 20 to 14 computations (30% saved)

preprocess22.0ms (0.3%)

Algorithm
egg-herbie
Rules
76×fma-def_binary64
57×fma-neg_binary64
27×cancel-sign-sub-inv_binary64
24×sub-neg_binary64
18×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01122
11722
22522
33822
45322
58122
614122
720022
828222
935322
1040522
1140922
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 eps))
Outputs
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 eps))
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 eps))
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
15×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11011
21511
32211
43111
54811
68611
712411
817211
920811
1023411
1123611
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
Outputs
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
35.8b
Counts
2 → 1
Alt Table
StatusErrorProgram
35.8b
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.2b
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
3.4b
(sin.f64 (+.f64 x eps))

series6.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(sin.f64 (+.f64 x eps))
1.0ms
eps
@inf
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
1.0ms
eps
@0
(sin.f64 (+.f64 x eps))
1.0ms
eps
@0
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
0.0ms
x
@0
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))

rewrite58.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
471×fma-def_binary64
445×log-prod_binary64
214×fma-neg_binary64
179×expm1-udef_binary64
179×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
117317
2273717
Stop Event
node limit
Counts
2 → 151
Calls
Call 1
Inputs
(sin.f64 (+.f64 x eps))
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 1) (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (+.f64 x eps)))) (cbrt.f64 (exp.f64 (sin.f64 (+.f64 x eps)))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (+.f64 x eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (+.f64 x eps))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (+.f64 x eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sin.f64 (+.f64 x eps)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (+.f64 x eps)))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (+.f64 x eps)))) (sin.f64 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 (/.f64 (*.f64 x x) (-.f64 x eps))) (cos.f64 (/.f64 (*.f64 eps eps) (-.f64 x eps)))) (*.f64 (cos.f64 (/.f64 (*.f64 x x) (-.f64 x eps))) (sin.f64 (/.f64 (*.f64 eps eps) (-.f64 x eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (+.f64 x eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2) (cbrt.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3)) (fma.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))) (sin.f64 (-.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 (+.f64 x eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (exp.f64 (*.f64 (sin.f64 x) (cos.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 x) (cos.f64 eps) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 1 (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps)))) (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps)))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sin.f64 (+.f64 x eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sin.f64 (+.f64 x eps))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 (+.f64 x eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 (+.f64 x eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (sin.f64 x)) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))) (cbrt.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))))) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2))) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2)) (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3)) (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2)) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3))) (neg.f64 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2))) (neg.f64 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (neg.f64 (sin.f64 x)) 3)) (+.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (-.f64 (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x))) (*.f64 (sin.f64 (+.f64 x eps)) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x)))) (-.f64 (sin.f64 (+.f64 x eps)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps)))) (exp.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (sin.f64 (+.f64 x eps))) (+.f64 1 (expm1.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps)))) (+.f64 1 (expm1.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps)))) (exp.f64 (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (sin.f64 (+.f64 x eps))) (/.f64 1 (exp.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps)))) (/.f64 1 (exp.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (sin.f64 x))) (exp.f64 (sin.f64 (+.f64 x eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (sin.f64 x))) (exp.f64 (sin.f64 (+.f64 x eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (sin.f64 x))) (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (sin.f64 x))) (+.f64 1 (expm1.f64 (sin.f64 (+.f64 x eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 (+.f64 x eps)) 1 (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 (+.f64 x eps)) 1 (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 1 (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 1 (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) 1 (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sin.f64 (+.f64 x eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sin.f64 (+.f64 x eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (sin.f64 x)) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (neg.f64 (cbrt.f64 (sin.f64 x))) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2) (cbrt.f64 (sin.f64 (+.f64 x eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (+.f64 x eps))) 2) (cbrt.f64 (sin.f64 (+.f64 x eps))) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 2) (cbrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (neg.f64 (sqrt.f64 (sin.f64 x))) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 (+.f64 x eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 (+.f64 x eps))) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (sqrt.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) 2 (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) 2 (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2)) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2))) 2 (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 eps) (sin.f64 x) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x)) (pow.f64 (sin.f64 (+.f64 x eps)) 2))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (sin.f64 (+.f64 x eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (+.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps)))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (sin.f64 x))) (cbrt.f64 (neg.f64 (sin.f64 x)))) (cbrt.f64 (neg.f64 (sin.f64 x))) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (sin.f64 x))) (sqrt.f64 (neg.f64 (sin.f64 x))) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (sin.f64 x) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (sin.f64 (+.f64 x eps))) (sqrt.f64 (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)) (sin.f64 (+.f64 x eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2))) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2)) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2))) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2)) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sin.f64 (*.f64 (-.f64 (+.f64 x eps) x) 1/2))) (cos.f64 (*.f64 (+.f64 x (+.f64 x eps)) 1/2)) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))) 1))))))

simplify36.0ms (0.5%)

Algorithm
egg-herbie
Rules
730×fma-neg_binary64
266×cancel-sign-sub-inv_binary64
264×associate-+l-_binary64
245×distribute-rgt-neg-in_binary64
243×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
053602
1172587
2566572
32209569
Stop Event
node limit
Counts
199 → 180
Calls
Call 1
Inputs
(sin.f64 eps)
(+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 x)
(+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
Outputs
(sin.f64 eps)
(+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps))
(fma.f64 (cos.f64 eps) x (sin.f64 eps))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 (*.f64 (sin.f64 eps) (*.f64 x x)) -1/2))
(fma.f64 (cos.f64 eps) x (*.f64 (+.f64 (*.f64 (*.f64 -1/2 x) x) 1) (sin.f64 eps)))
(fma.f64 (cos.f64 eps) x (*.f64 (+.f64 (*.f64 (*.f64 x x) -1/2) 1) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (*.f64 (sin.f64 eps) (*.f64 (*.f64 x x) 1/2))))
(+.f64 (*.f64 (+.f64 (*.f64 (*.f64 -1/2 x) x) 1) (sin.f64 eps)) (*.f64 (cos.f64 eps) (-.f64 x (*.f64 1/6 (pow.f64 x 3)))))
(+.f64 (*.f64 (+.f64 (*.f64 (*.f64 x x) -1/2) 1) (sin.f64 eps)) (*.f64 (cos.f64 eps) (+.f64 x (*.f64 (pow.f64 x 3) -1/6))))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 x)
(+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x))
(fma.f64 eps (cos.f64 x) (sin.f64 x))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (fma.f64 eps (cos.f64 x) (sin.f64 x)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps))))
(+.f64 (sin.f64 x) (fma.f64 eps (cos.f64 x) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2)))
(fma.f64 eps (cos.f64 x) (*.f64 (+.f64 (*.f64 (*.f64 -1/2 eps) eps) 1) (sin.f64 x)))
(fma.f64 eps (cos.f64 x) (*.f64 (+.f64 (*.f64 eps (*.f64 eps -1/2)) 1) (sin.f64 x)))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 eps (cos.f64 x) (sin.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps)))))
(+.f64 (sin.f64 x) (+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2)))
(+.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 (*.f64 -1/2 eps) eps))))
(+.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2)))))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 (+.f64 eps x))
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) x)
(fma.f64 (cos.f64 eps) x (-.f64 (sin.f64 eps) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) x) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 (sin.f64 eps) (*.f64 x (*.f64 x 1/2)) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 1/6 (pow.f64 x 3))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))))
(-.f64 (fma.f64 (cos.f64 eps) x (fma.f64 1/6 (pow.f64 x 3) (sin.f64 eps))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x)))
(-.f64 (+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 (pow.f64 x 3) (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6)))) (fma.f64 (sin.f64 eps) (*.f64 x (*.f64 x 1/2)) x))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (-.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6))) (*.f64 (sin.f64 eps) 1/2))) x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(+.f64 (*.f64 eps (cos.f64 x)) (*.f64 -1/2 (*.f64 (sin.f64 x) (*.f64 eps eps))))
(fma.f64 eps (cos.f64 x) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2))
(fma.f64 eps (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (*.f64 -1/2 eps) eps)))
(*.f64 eps (-.f64 (cos.f64 x) (*.f64 1/2 (*.f64 eps (sin.f64 x)))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 eps (cos.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps)))))
(+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2))
(fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 (*.f64 -1/2 eps) eps)))
(fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 1/24 (*.f64 (sin.f64 x) (pow.f64 eps 4)) (*.f64 eps (cos.f64 x))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps)))))
(fma.f64 1/24 (*.f64 (sin.f64 x) (pow.f64 eps 4)) (+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2)))
(fma.f64 (sin.f64 x) (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 (*.f64 -1/2 eps) eps))))
(+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) (-.f64 (*.f64 1/24 (*.f64 eps eps)) 1/2)))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))
(-.f64 (sin.f64 (+.f64 eps x)) (sin.f64 x))

prune130.0ms (1.9%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1746180
Fresh000
Picked101
Done000
Total1756181
Error
0.2b
Counts
181 → 6
Alt Table
StatusErrorProgram
23.9b
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
43.7b
(-.f64 (fma.f64 (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
23.3b
(-.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
23.2b
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
30.5b
(fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2))))
23.9b
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps)))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
Compiler

Compiled 3455 to 1057 computations (69.4% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.1b
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))
0.2b
(*.f64 (cos.f64 x) (sin.f64 eps))
2.8b
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))

series11.0ms (0.2%)

Counts
4 → 60
Calls

21 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
1.0ms
eps
@inf
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
1.0ms
x
@-inf
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
1.0ms
eps
@-inf
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
1.0ms
x
@0
(*.f64 (cos.f64 x) (sin.f64 eps))

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
817×prod-diff_binary64
300×fma-def_binary64
198×expm1-udef_binary64
198×log1p-udef_binary64
174×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01045
120845
2274045
Stop Event
node limit
Counts
4 → 155
Calls
Call 1
Inputs
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
(*.f64 (cos.f64 x) (sin.f64 eps))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))
(cos.f64 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (*.f64 (sin.f64 x) (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 1) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (*.f64 (cos.f64 x) (sin.f64 eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 2) (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) (sqrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 3)) (fma.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 2) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 2)) (-.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 x) (sin.f64 eps)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 (-.f64 eps x)) (sin.f64 (+.f64 eps x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 x) (sin.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 x) (sin.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 x) (sin.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 x) (sin.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 -1 (sin.f64 x) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (sin.f64 x)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (sin.f64 eps)) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)) (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3)) (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2)) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3))) (neg.f64 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2))) (neg.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (neg.f64 (sin.f64 x)) 3)) (+.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (-.f64 (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x)))) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 1 (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 1 (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 1 (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 1 (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 1 (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 x) (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (sin.f64 x)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)) (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2)) (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 2) (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (*.f64 (cbrt.f64 (cos.f64 x)) (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (neg.f64 (cbrt.f64 (sin.f64 x))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 eps)) 2) (*.f64 (cbrt.f64 (sin.f64 eps)) (cos.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (sin.f64 eps)) 2) (*.f64 (cbrt.f64 (sin.f64 eps)) (cos.f64 x)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (sqrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 x)) (*.f64 (sqrt.f64 (cos.f64 x)) (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 x)) (*.f64 (sqrt.f64 (cos.f64 x)) (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (neg.f64 (sqrt.f64 (sin.f64 x))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 eps)) (*.f64 (sqrt.f64 (sin.f64 eps)) (cos.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 eps)) (*.f64 (sqrt.f64 (sin.f64 eps)) (cos.f64 x)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3) (pow.f64 (sin.f64 x) 3)) (/.f64 1 (fma.f64 (sin.f64 x) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x)) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 2) (pow.f64 (sin.f64 x) 2)) (/.f64 1 (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (sin.f64 x))) (cbrt.f64 (neg.f64 (sin.f64 x)))) (cbrt.f64 (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (sin.f64 x))) (sqrt.f64 (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (sin.f64 eps)) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (sin.f64 x))) (fma.f64 (neg.f64 (sin.f64 x)) 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (sin.f64 eps)) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (sin.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (sin.f64 eps)) (sqrt.f64 (sin.f64 x))) (-.f64 (sqrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (sqrt.f64 (sin.f64 x))) (+.f64 (neg.f64 (sin.f64 x)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2)) (cbrt.f64 (sin.f64 x)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2)) (cbrt.f64 (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2)) (cbrt.f64 (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (sqrt.f64 (sin.f64 eps))) (sqrt.f64 (sin.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 x) (sqrt.f64 (sin.f64 eps))) (sqrt.f64 (sin.f64 eps)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 eps) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 eps) (pow.f64 (cbrt.f64 (cos.f64 x)) 2)) (cbrt.f64 (cos.f64 x)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 eps) (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 eps) (sqrt.f64 (cos.f64 x))) (sqrt.f64 (cos.f64 x)) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 x)) (pow.f64 (cbrt.f64 (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 x)) 2) (cbrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cos.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cos.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cos.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (cos.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cos.f64 x)) 1))))))

simplify46.0ms (0.7%)

Algorithm
egg-herbie
Rules
423×fma-def_binary64
420×distribute-rgt-neg-in_binary64
407×distribute-lft-neg-in_binary64
388×sub-neg_binary64
337×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01011070
13121028
2957945
33769945
Stop Event
node limit
Counts
215 → 207
Calls
Call 1
Inputs
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(sin.f64 eps)
(-.f64 (sin.f64 eps) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4))) (sin.f64 eps)) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4))) (sin.f64 eps)) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 eps) (pow.f64 x 6))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/5040 (*.f64 (pow.f64 eps 7) (cos.f64 x)))))
(sin.f64 eps)
(-.f64 (sin.f64 eps) x)
(-.f64 (sin.f64 eps) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(*.f64 -1 (sin.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (sin.f64 x)))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
1
(-.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 x 4)) 1) (*.f64 1/2 (pow.f64 x 2)))
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 x 4)) 1) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 1/2 (pow.f64 x 2))))
Outputs
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) x)
(fma.f64 (cos.f64 eps) x (-.f64 (sin.f64 eps) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x))
(fma.f64 (cos.f64 eps) x (-.f64 (*.f64 (fma.f64 (*.f64 x -1/2) x 1) (sin.f64 eps)) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 1/6 (pow.f64 x 3))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))))
(-.f64 (fma.f64 (cos.f64 eps) x (fma.f64 1/6 (pow.f64 x 3) (sin.f64 eps))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x)))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (-.f64 (*.f64 (pow.f64 x 3) (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6))) (fma.f64 (sin.f64 eps) (*.f64 x (*.f64 x 1/2)) x)))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (-.f64 (*.f64 (pow.f64 x 3) (+.f64 1/6 (*.f64 (cos.f64 eps) -1/6))) (fma.f64 (sin.f64 eps) (*.f64 x (*.f64 x 1/2)) x)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(+.f64 (*.f64 eps (cos.f64 x)) (*.f64 -1/2 (*.f64 (sin.f64 x) (*.f64 eps eps))))
(fma.f64 eps (cos.f64 x) (*.f64 (*.f64 -1/2 (sin.f64 x)) (*.f64 eps eps)))
(fma.f64 eps (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (*.f64 eps eps) -1/2)))
(fma.f64 eps (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 eps (cos.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps)))))
(+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 -1/2 (sin.f64 x)) (*.f64 eps eps)))
(fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 (sin.f64 x) (*.f64 (*.f64 eps eps) -1/2)))
(fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 1/24 (*.f64 (sin.f64 x) (pow.f64 eps 4)) (*.f64 eps (cos.f64 x))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (sin.f64 x) (*.f64 eps eps)))))
(fma.f64 1/24 (*.f64 (sin.f64 x) (pow.f64 eps 4)) (+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 -1/2 (sin.f64 x)) (*.f64 eps eps))))
(fma.f64 (sin.f64 x) (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 (sin.f64 x) (*.f64 (*.f64 eps eps) -1/2))))
(fma.f64 (sin.f64 x) (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(sin.f64 eps)
(-.f64 (sin.f64 eps) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(+.f64 (sin.f64 eps) (*.f64 -1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(+.f64 (sin.f64 eps) (*.f64 (*.f64 (sin.f64 eps) (*.f64 x x)) -1/2))
(*.f64 (fma.f64 (*.f64 x -1/2) x 1) (sin.f64 eps))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4))) (sin.f64 eps)) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))
(+.f64 (fma.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4)) (sin.f64 eps)) (*.f64 -1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(+.f64 (fma.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4)) (sin.f64 eps)) (*.f64 (*.f64 (sin.f64 eps) (*.f64 x x)) -1/2))
(+.f64 (sin.f64 eps) (*.f64 (sin.f64 eps) (fma.f64 1/24 (pow.f64 x 4) (*.f64 x (*.f64 x -1/2)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4))) (sin.f64 eps)) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 eps) (pow.f64 x 6))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (fma.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4)) (sin.f64 eps)) (fma.f64 1/720 (*.f64 (sin.f64 eps) (pow.f64 x 6)) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (fma.f64 1/24 (*.f64 (sin.f64 eps) (pow.f64 x 4)) (sin.f64 eps)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) (*.f64 (sin.f64 eps) (*.f64 1/720 (pow.f64 x 6)))))
(+.f64 (*.f64 (fma.f64 (*.f64 x -1/2) x 1) (sin.f64 eps)) (*.f64 (sin.f64 eps) (fma.f64 1/24 (pow.f64 x 4) (*.f64 (pow.f64 x 6) -1/720))))
(+.f64 (*.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (sin.f64 eps)) (*.f64 (sin.f64 eps) (fma.f64 (*.f64 x x) -1/2 (*.f64 (pow.f64 x 6) -1/720))))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 (sin.f64 eps) (cos.f64 x))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))))
(+.f64 (*.f64 eps (cos.f64 x)) (*.f64 -1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3))))
(*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))))
(*.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))))
(+.f64 (fma.f64 eps (cos.f64 x) (*.f64 1/120 (*.f64 (cos.f64 x) (pow.f64 eps 5)))) (*.f64 -1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3))))
(fma.f64 eps (cos.f64 x) (*.f64 (cos.f64 x) (-.f64 (*.f64 1/120 (pow.f64 eps 5)) (*.f64 1/6 (pow.f64 eps 3)))))
(*.f64 (cos.f64 x) (-.f64 (fma.f64 1/120 (pow.f64 eps 5) eps) (*.f64 1/6 (pow.f64 eps 3))))
(*.f64 (cos.f64 x) (+.f64 (fma.f64 1/120 (pow.f64 eps 5) eps) (*.f64 (pow.f64 eps 3) -1/6)))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/5040 (*.f64 (pow.f64 eps 7) (cos.f64 x)))))
(-.f64 (fma.f64 eps (cos.f64 x) (*.f64 1/120 (*.f64 (cos.f64 x) (pow.f64 eps 5)))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/5040 (*.f64 (cos.f64 x) (pow.f64 eps 7)))))
(-.f64 (*.f64 (cos.f64 x) (+.f64 eps (*.f64 1/120 (pow.f64 eps 5)))) (*.f64 (cos.f64 x) (+.f64 (*.f64 1/5040 (pow.f64 eps 7)) (*.f64 1/6 (pow.f64 eps 3)))))
(*.f64 (cos.f64 x) (-.f64 (fma.f64 1/120 (pow.f64 eps 5) eps) (fma.f64 1/6 (pow.f64 eps 3) (*.f64 1/5040 (pow.f64 eps 7)))))
(sin.f64 eps)
(-.f64 (sin.f64 eps) x)
(-.f64 (sin.f64 eps) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (sin.f64 eps) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (sin.f64 eps) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x))
(-.f64 (*.f64 (fma.f64 (*.f64 x -1/2) x 1) (sin.f64 eps)) x)
(-.f64 (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (fma.f64 1/6 (pow.f64 x 3) (sin.f64 eps)) (fma.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)) x))
(fma.f64 1/6 (pow.f64 x 3) (-.f64 (*.f64 (fma.f64 (*.f64 x -1/2) x 1) (sin.f64 eps)) x))
(*.f64 -1 (sin.f64 x))
(neg.f64 (sin.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (sin.f64 x))
(fma.f64 eps (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (sin.f64 x)))
(-.f64 (*.f64 eps (cos.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (sin.f64 x)))
(-.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (sin.f64 x))
(fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (neg.f64 (sin.f64 x)))
(-.f64 (+.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/120 (*.f64 (pow.f64 eps 5) (cos.f64 x)))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (sin.f64 x)))
(-.f64 (fma.f64 eps (cos.f64 x) (*.f64 1/120 (*.f64 (cos.f64 x) (pow.f64 eps 5)))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (sin.f64 x)))
(-.f64 (*.f64 (cos.f64 x) (+.f64 eps (*.f64 1/120 (pow.f64 eps 5)))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (sin.f64 x)))
(-.f64 (*.f64 (cos.f64 x) (-.f64 (fma.f64 1/120 (pow.f64 eps 5) eps) (*.f64 1/6 (pow.f64 eps 3)))) (sin.f64 x))
(-.f64 (*.f64 (cos.f64 x) (+.f64 (fma.f64 1/120 (pow.f64 eps 5) eps) (*.f64 (pow.f64 eps 3) -1/6))) (sin.f64 x))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (neg.f64 (sin.f64 x)))
1
(-.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1/2 (*.f64 x x)))
(+.f64 1 (*.f64 (*.f64 x x) -1/2))
(fma.f64 (*.f64 x -1/2) x 1)
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 x 4)) 1) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (*.f64 -1/2 (*.f64 x x)))
(+.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (*.f64 (*.f64 x x) -1/2))
(fma.f64 (*.f64 x x) -1/2 (fma.f64 1/24 (pow.f64 x 4) 1))
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 x 4)) 1) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 1/2 (pow.f64 x 2))))
(-.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (fma.f64 1/720 (pow.f64 x 6) (*.f64 1/2 (*.f64 x x))))
(-.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (fma.f64 1/2 (*.f64 x x) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (fma.f64 1/24 (pow.f64 x 4) 1) (fma.f64 (*.f64 x x) -1/2 (*.f64 (pow.f64 x 6) -1/720)))
(+.f64 1 (fma.f64 1/24 (pow.f64 x 4) (fma.f64 (*.f64 x x) -1/2 (*.f64 (pow.f64 x 6) -1/720))))

prune174.0ms (2.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1989207
Fresh325
Picked101
Done000
Total20211213
Error
0.1b
Counts
213 → 11
Alt Table
StatusErrorProgram
23.9b
(pow.f64 (cbrt.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))) 3)
0.4b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
45.0b
(pow.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3) 1/3)
43.7b
(-.f64 (fma.f64 (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
24.4b
(/.f64 (-.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 2)) (-.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))
25.6b
(/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 3)) (fma.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))) 2) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))))))
23.2b
(fma.f64 (sin.f64 x) (cos.f64 eps) (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (neg.f64 (sin.f64 x))))
30.8b
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
30.5b
(fma.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3))) (*.f64 (sin.f64 x) (*.f64 eps (*.f64 eps -1/2))))
25.5b
(cbrt.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3))
30.7b
(log.f64 (exp.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))
Compiler

Compiled 4856 to 1498 computations (69.2% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.1b
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
0.2b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
1.9b
(+.f64 (cos.f64 eps) -1)

series8.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
2.0ms
eps
@-inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
1.0ms
x
@-inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
1.0ms
x
@0
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
1.0ms
x
@inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
1.0ms
eps
@0
(+.f64 (cos.f64 eps) -1)

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
485×prod-diff_binary64
209×expm1-udef_binary64
209×log1p-udef_binary64
189×fma-def_binary64
146×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01136
122736
2291630
Stop Event
node limit
Counts
3 → 113
Calls
Call 1
Inputs
(+.f64 (cos.f64 eps) -1)
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (cos.f64 eps) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (cos.f64 eps) 2) (+.f64 (cos.f64 eps) 1)) (/.f64 1 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 eps) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (cos.f64 eps) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (cos.f64 eps) -1)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 eps) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 eps) -1)) 2) (cbrt.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (cos.f64 eps) -1)) (sqrt.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (/.f64 1 (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (/.f64 1 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (cos.f64 eps)) 1) (-.f64 (sqrt.f64 (cos.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1)) (+.f64 -1 (pow.f64 (cos.f64 eps) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (cos.f64 eps) 1) (neg.f64 (pow.f64 (sin.f64 eps) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (sin.f64 eps) 2) (-.f64 -1 (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (+.f64 1 (-.f64 (pow.f64 (cos.f64 eps) 2) (*.f64 (cos.f64 eps) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3))) (neg.f64 (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2))) (neg.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (cos.f64 eps) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (cos.f64 eps) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (cos.f64 eps) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 eps) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 eps) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 eps) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 eps)) (pow.f64 (cbrt.f64 (cos.f64 eps)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 eps)) 2) (cbrt.f64 (cos.f64 eps)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 eps)) (sqrt.f64 (cos.f64 eps)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log.f64 (cos.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 eps) -1)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) 1) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) 2) (cbrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) (sqrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) 3) (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3)) (fma.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x)) (-.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 2) (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 2)) (-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (+.f64 (cos.f64 eps) -1)) (sin.f64 x)) (exp.f64 (*.f64 (sin.f64 eps) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) (exp.f64 (*.f64 (sin.f64 eps) (cos.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (sin.f64 eps) (cos.f64 x))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (sin.f64 (+.f64 eps x)) (neg.f64 (sin.f64 x)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 1) (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 3) (pow.f64 (neg.f64 (sin.f64 x)) 3)) (fma.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x)) (-.f64 (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x))) (*.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x))) (*.f64 (neg.f64 (sin.f64 x)) (neg.f64 (sin.f64 x)))) (-.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (sin.f64 x)) (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 x) (+.f64 -1 (pow.f64 (cos.f64 eps) 3))) (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 eps) 1) (*.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 x) (neg.f64 (pow.f64 (sin.f64 eps) 2))) (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 (cos.f64 eps) -1)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (sin.f64 x))) (exp.f64 (*.f64 (cos.f64 eps) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 3) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (+.f64 (cos.f64 eps) -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 eps) (sin.f64 x) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (sin.f64 x) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 x) (cos.f64 eps) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sin.f64 x) -1 (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 2)) (*.f64 (cbrt.f64 (sin.f64 x)) -1) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 2)) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 eps)) 2) (*.f64 (cbrt.f64 (cos.f64 eps)) (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) -1) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (cos.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 eps)) (*.f64 (sqrt.f64 (cos.f64 eps)) (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 1 (*.f64 (neg.f64 (sin.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (sin.f64 x))) (cbrt.f64 (neg.f64 (sin.f64 x)))) (cbrt.f64 (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 eps) (sin.f64 x))) (cbrt.f64 (*.f64 (cos.f64 eps) (sin.f64 x)))) (cbrt.f64 (*.f64 (cos.f64 eps) (sin.f64 x))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (sin.f64 x))) (sqrt.f64 (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (cos.f64 eps) (sin.f64 x))) (sqrt.f64 (*.f64 (cos.f64 eps) (sin.f64 x))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 (cos.f64 eps))) (*.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 (cos.f64 eps))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (cos.f64 eps)) (sqrt.f64 (sin.f64 x))) (*.f64 (sqrt.f64 (cos.f64 eps)) (sqrt.f64 (sin.f64 x))) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (cbrt.f64 (pow.f64 (sin.f64 x) 2))) (cbrt.f64 (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)) (*.f64 (cos.f64 eps) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 x) (pow.f64 (cbrt.f64 (cos.f64 eps)) 2)) (cbrt.f64 (cos.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sin.f64 x) (sqrt.f64 (cos.f64 eps))) (sqrt.f64 (cos.f64 eps)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 eps) (cbrt.f64 (pow.f64 (sin.f64 x) 2))) (cbrt.f64 (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 eps) (sqrt.f64 (sin.f64 x))) (sqrt.f64 (sin.f64 x)) (neg.f64 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 1))))))

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
630×fma-def_binary64
575×sub-neg_binary64
424×cancel-sign-sub-inv_binary64
273×associate-*l*_binary64
257×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01061102
13271032
21070986
34767986
Stop Event
node limit
Counts
173 → 157
Calls
Call 1
Inputs
(*.f64 -1/2 (pow.f64 eps 2))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/2 (pow.f64 eps 2)))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/40320 (pow.f64 eps 8))) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(-.f64 (cos.f64 eps) 1)
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) x)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) x))
(-.f64 (+.f64 (*.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5))) (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) x)))
(-.f64 (+.f64 (*.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5))) (+.f64 (*.f64 1/5040 (pow.f64 x 7)) (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3))))) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 (*.f64 1/5040 (*.f64 (cos.f64 eps) (pow.f64 x 7))) x))))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 -1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(-.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/40320 (*.f64 (pow.f64 eps 8) (sin.f64 x)))) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
Outputs
(*.f64 -1/2 (pow.f64 eps 2))
(*.f64 -1/2 (*.f64 eps eps))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/2 (pow.f64 eps 2)))
(+.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 -1/2 (*.f64 eps eps)))
(fma.f64 1/24 (pow.f64 eps 4) (*.f64 -1/2 (*.f64 eps eps)))
(fma.f64 -1/2 (*.f64 eps eps) (*.f64 1/24 (pow.f64 eps 4)))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 1/720 (pow.f64 eps 6) (*.f64 (*.f64 eps eps) 1/2)))
(-.f64 (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 (*.f64 eps eps) 1/2 (*.f64 1/720 (pow.f64 eps 6))))
(fma.f64 1/24 (pow.f64 eps 4) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 (pow.f64 eps 6) -1/720)))
(-.f64 (+.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/40320 (pow.f64 eps 8))) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(-.f64 (fma.f64 1/24 (pow.f64 eps 4) (*.f64 1/40320 (pow.f64 eps 8))) (fma.f64 1/720 (pow.f64 eps 6) (*.f64 (*.f64 eps eps) 1/2)))
(-.f64 (fma.f64 1/24 (pow.f64 eps 4) (*.f64 1/40320 (pow.f64 eps 8))) (fma.f64 (*.f64 eps eps) 1/2 (*.f64 1/720 (pow.f64 eps 6))))
(fma.f64 1/24 (pow.f64 eps 4) (fma.f64 1/40320 (pow.f64 eps 8) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 (pow.f64 eps 6) -1/720))))
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(-.f64 (cos.f64 eps) 1)
(+.f64 (cos.f64 eps) -1)
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(+.f64 (*.f64 eps (cos.f64 x)) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x))))
(fma.f64 eps (cos.f64 x) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x))))
(fma.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)) (*.f64 eps (cos.f64 x)))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 eps (cos.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))))
(+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x))))
(fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (*.f64 eps (cos.f64 x))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))))
(fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))))
(+.f64 (*.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6))) (*.f64 (sin.f64 x) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 1/24 (pow.f64 eps 4)))))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(sin.f64 eps)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) x)
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) x)
(fma.f64 (cos.f64 eps) x (-.f64 (sin.f64 eps) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (sin.f64 eps)) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) x) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 1/2 (*.f64 x (*.f64 x (sin.f64 eps))) x))
(-.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (fma.f64 (sin.f64 eps) (*.f64 1/2 (*.f64 x x)) x))
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (+.f64 (sin.f64 eps) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 x (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2))))))
(-.f64 (+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (*.f64 1/6 (pow.f64 x 3))) (+.f64 (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) x) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (fma.f64 (cos.f64 eps) x (fma.f64 1/6 (pow.f64 x 3) (sin.f64 eps))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (fma.f64 1/2 (*.f64 x (*.f64 x (sin.f64 eps))) x)))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (-.f64 (*.f64 (pow.f64 x 3) (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6))) (fma.f64 (sin.f64 eps) (*.f64 1/2 (*.f64 x x)) x)))
(+.f64 (fma.f64 (cos.f64 eps) x (sin.f64 eps)) (-.f64 (*.f64 (pow.f64 x 3) (+.f64 1/6 (*.f64 (cos.f64 eps) -1/6))) (fma.f64 (sin.f64 eps) (*.f64 1/2 (*.f64 x x)) x)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(-.f64 (+.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (sin.f64 x))) (sin.f64 x))
(-.f64 (fma.f64 (cos.f64 eps) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
(fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
(*.f64 (-.f64 (cos.f64 eps) 1) x)
(*.f64 (+.f64 (cos.f64 eps) -1) x)
(-.f64 (*.f64 (cos.f64 eps) x) x)
(-.f64 (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3))) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) x))
(-.f64 (fma.f64 (cos.f64 eps) x (*.f64 1/6 (pow.f64 x 3))) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) x))
(-.f64 (fma.f64 (cos.f64 eps) x (*.f64 (pow.f64 x 3) (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6)))) x)
(-.f64 (fma.f64 (cos.f64 eps) x (*.f64 (pow.f64 x 3) (+.f64 1/6 (*.f64 (cos.f64 eps) -1/6)))) x)
(-.f64 (+.f64 (*.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5))) (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3)))) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) x)))
(-.f64 (fma.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5)) (fma.f64 (cos.f64 eps) x (*.f64 1/6 (pow.f64 x 3)))) (fma.f64 1/120 (pow.f64 x 5) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) x)))
(+.f64 (*.f64 (cos.f64 eps) (fma.f64 1/120 (pow.f64 x 5) x)) (-.f64 (*.f64 (pow.f64 x 3) (-.f64 1/6 (*.f64 (cos.f64 eps) 1/6))) (fma.f64 1/120 (pow.f64 x 5) x)))
(+.f64 (*.f64 (cos.f64 eps) (fma.f64 1/120 (pow.f64 x 5) x)) (-.f64 (*.f64 (pow.f64 x 3) (+.f64 1/6 (*.f64 (cos.f64 eps) -1/6))) (fma.f64 1/120 (pow.f64 x 5) x)))
(-.f64 (+.f64 (*.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5))) (+.f64 (*.f64 1/5040 (pow.f64 x 7)) (+.f64 (*.f64 (cos.f64 eps) x) (*.f64 1/6 (pow.f64 x 3))))) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3))) (+.f64 (*.f64 1/5040 (*.f64 (cos.f64 eps) (pow.f64 x 7))) x))))
(-.f64 (fma.f64 1/120 (*.f64 (cos.f64 eps) (pow.f64 x 5)) (fma.f64 1/5040 (pow.f64 x 7) (fma.f64 (cos.f64 eps) x (*.f64 1/6 (pow.f64 x 3))))) (fma.f64 1/120 (pow.f64 x 5) (fma.f64 1/6 (*.f64 (cos.f64 eps) (pow.f64 x 3)) (fma.f64 1/5040 (*.f64 (cos.f64 eps) (pow.f64 x 7)) x))))
(-.f64 (fma.f64 1/5040 (pow.f64 x 7) (fma.f64 1/6 (pow.f64 x 3) (*.f64 (cos.f64 eps) (fma.f64 1/120 (pow.f64 x 5) x)))) (+.f64 x (fma.f64 1/120 (pow.f64 x 5) (*.f64 (cos.f64 eps) (fma.f64 1/6 (pow.f64 x 3) (*.f64 1/5040 (pow.f64 x 7)))))))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 -1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))
(-.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 -1/2 (*.f64 (*.f64 eps eps) (sin.f64 x))))
(*.f64 (sin.f64 x) (fma.f64 1/24 (pow.f64 eps 4) (*.f64 -1/2 (*.f64 eps eps))))
(*.f64 (sin.f64 x) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 1/24 (pow.f64 eps 4))))
(-.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (fma.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x)) (*.f64 1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))))
(-.f64 (*.f64 (pow.f64 eps 4) (*.f64 (sin.f64 x) 1/24)) (*.f64 (sin.f64 x) (fma.f64 (*.f64 eps eps) 1/2 (*.f64 1/720 (pow.f64 eps 6)))))
(*.f64 (sin.f64 x) (fma.f64 1/24 (pow.f64 eps 4) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 (pow.f64 eps 6) -1/720))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/40320 (*.f64 (pow.f64 eps 8) (sin.f64 x)))) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (*.f64 1/40320 (*.f64 (pow.f64 eps 8) (sin.f64 x)))) (fma.f64 1/720 (*.f64 (pow.f64 eps 6) (sin.f64 x)) (*.f64 1/2 (*.f64 (*.f64 eps eps) (sin.f64 x)))))
(-.f64 (*.f64 (sin.f64 x) (fma.f64 1/24 (pow.f64 eps 4) (*.f64 1/40320 (pow.f64 eps 8)))) (*.f64 (sin.f64 x) (fma.f64 (*.f64 eps eps) 1/2 (*.f64 1/720 (pow.f64 eps 6)))))
(*.f64 (sin.f64 x) (fma.f64 1/24 (pow.f64 eps 4) (fma.f64 1/40320 (pow.f64 eps 8) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 (pow.f64 eps 6) -1/720)))))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))
(*.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x))
(*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))

prune191.0ms (2.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1748182
Fresh6410
Picked101
Done000
Total18112193
Error
0.1b
Counts
193 → 12
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
0.4b
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
43.7b
(-.f64 (fma.f64 (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (sqrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
0.6b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
25.5b
(cbrt.f64 (pow.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))) 3))
0.6b
(fma.f64 (sin.f64 eps) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 x)))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
30.7b
(log.f64 (exp.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))
0.5b
(fma.f64 (sin.f64 eps) (log1p.f64 (expm1.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
14.4b
(fma.f64 (sin.f64 eps) (cos.f64 x) (fma.f64 (sqrt.f64 (cos.f64 eps)) (*.f64 (sqrt.f64 (cos.f64 eps)) (sin.f64 x)) (neg.f64 (sin.f64 x))))
30.8b
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
29.8b
(fma.f64 (sin.f64 eps) (fma.f64 (*.f64 x -1/2) x 1) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.5b
(fma.f64 (sin.f64 eps) (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
Compiler

Compiled 3750 to 1649 computations (56% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
0.2b
(*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x))
0.2b
(pow.f64 (sin.f64 eps) 2)
0.3b
(+.f64 (cos.f64 eps) 1)

series23.0ms (0.3%)

Counts
4 → 64
Calls

18 calls:

TimeVariablePointExpression
8.0ms
x
@0
(*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x))
3.0ms
x
@0
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
1.0ms
x
@inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
1.0ms
x
@-inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
1.0ms
eps
@-inf
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
474×prod-diff_binary64
158×add-sqr-sqrt_binary64
154×pow1_binary64
153×*-un-lft-identity_binary64
146×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01554
131542
2410042
Stop Event
node limit
Counts
4 → 120
Calls
Call 1
Inputs
(+.f64 (cos.f64 eps) 1)
(pow.f64 (sin.f64 eps) 2)
(*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x))
(fma.f64 (sin.f64 eps) (cos.f64 x) (/.f64 (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)) (+.f64 (cos.f64 eps) 1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 eps) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (cos.f64 eps) 2) (+.f64 (cos.f64 eps) -1)) (/.f64 1 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 eps) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 eps) 2) (/.f64 1 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (cos.f64 eps) 1)) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 2)) (cbrt.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 2)) (neg.f64 (cbrt.f64 (+.f64 (cos.f64 eps) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (cos.f64 eps) 1)) (sqrt.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (cos.f64 eps) 1)) (neg.f64 (sqrt.f64 (+.f64 (cos.f64 eps) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (cos.f64 eps) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (cos.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (+.f64 (cos.f64 eps) 1))) (sqrt.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 2))) (cbrt.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (cos.f64 eps))) (+.f64 1 (pow.f64 (cos.f64 eps) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (cos.f64 eps) -1) (pow.f64 (sin.f64 eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 (cos.f64 eps) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (+.f64 (cos.f64 eps) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (cos.f64 eps) 3)) (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (cos.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (cos.f64 eps) 3)) (+.f64 1 (-.f64 (pow.f64 (cos.f64 eps) 2) (cos.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (cos.f64 eps) 3))) (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (cos.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (cos.f64 eps) 3))) (neg.f64 (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (cos.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (cos.f64 eps) 2)) (-.f64 1 (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (cos.f64 eps) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (cos.f64 eps) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (cos.f64 eps) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (cos.f64 eps) 1))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 eps) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (exp.f64 (+.f64 (cos.f64 eps) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 eps) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (cos.f64 eps) 2)) (cbrt.f64 (cos.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 eps)) (sqrt.f64 (cos.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (cos.f64 eps) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (cos.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (cos.f64 eps)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (cos.f64 eps) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (cos.f64 eps) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (sin.f64 eps) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1/2 (*.f64 1/2 (cos.f64 (*.f64 2 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 eps) 1) (+.f64 (cos.f64 eps) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 eps) (sin.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 eps) (neg.f64 (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 eps) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sin.f64 eps) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 eps)) 2) (cbrt.f64 (pow.f64 (sin.f64 eps) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 eps)) 2) (*.f64 (cbrt.f64 (sin.f64 eps)) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (sin.f64 eps) 4)) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (sin.f64 eps) 4)) (neg.f64 (pow.f64 (cbrt.f64 (sin.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 eps)) (*.f64 (sqrt.f64 (sin.f64 eps)) (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 eps) (sqrt.f64 (sin.f64 eps))) (sqrt.f64 (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 eps)) (sin.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (cbrt.f64 (pow.f64 (sin.f64 eps) 4))) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 eps) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2)) (cbrt.f64 (sin.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1 (sin.f64 eps)) (sin.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1 (cbrt.f64 (pow.f64 (sin.f64 eps) 4))) (pow.f64 (cbrt.f64 (sin.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (cos.f64 (-.f64 eps eps)) (cos.f64 (+.f64 eps eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (pow.f64 (pow.f64 (sin.f64 eps) 2) 3)) (+.f64 0 (+.f64 (pow.f64 (sin.f64 eps) 4) (*.f64 0 (pow.f64 (sin.f64 eps) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (pow.f64 (cos.f64 eps) 2) 3) 1) (+.f64 (*.f64 (pow.f64 (cos.f64 eps) 2) (pow.f64 (cos.f64 eps) 2)) (+.f64 1 (*.f64 (pow.f64 (cos.f64 eps) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (pow.f64 (sin.f64 eps) 4)) (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (cos.f64 eps) 2) (pow.f64 (cos.f64 eps) 2)) 1) (+.f64 (pow.f64 (cos.f64 eps) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (sin.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (sin.f64 eps) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (sin.f64 eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (sin.f64 eps) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (sin.f64 eps) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (sin.f64 eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 eps) (cos.f64 eps) -1)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (sin.f64 eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (sin.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (sin.f64 eps))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 eps) (sqrt.f64 (sin.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (sin.f64 eps) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (sin.f64 eps) 2)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (sin.f64 eps) 2) 3) (pow.f64 (sin.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (pow.f64 (sin.f64 eps) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (sin.f64 x))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) 1) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 2) (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) 3) (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (-.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 2) (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 2)) (-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 1))))))

simplify49.0ms (0.7%)

Algorithm
egg-herbie
Rules
490×distribute-rgt-neg-in_binary64
381×associate-*l*_binary64
379×associate-*r*_binary64
362×fma-def_binary64
303×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01051312
13151272
29851224
340381224
Stop Event
node limit
Counts
184 → 171
Calls
Call 1
Inputs
2
(-.f64 2 (*.f64 1/2 (pow.f64 eps 2)))
(-.f64 (+.f64 2 (*.f64 1/24 (pow.f64 eps 4))) (*.f64 1/2 (pow.f64 eps 2)))
(-.f64 (+.f64 2 (*.f64 1/24 (pow.f64 eps 4))) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(pow.f64 eps 2)
(-.f64 (pow.f64 eps 2) (*.f64 1/3 (pow.f64 eps 4)))
(-.f64 (+.f64 (*.f64 2/45 (pow.f64 eps 6)) (pow.f64 eps 2)) (*.f64 1/3 (pow.f64 eps 4)))
(-.f64 (+.f64 (*.f64 2/45 (pow.f64 eps 6)) (pow.f64 eps 2)) (+.f64 (*.f64 1/3 (pow.f64 eps 4)) (*.f64 1/315 (pow.f64 eps 8))))
(*.f64 -1 (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(-.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(-.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (+.f64 (*.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/315 (*.f64 (pow.f64 eps 8) (sin.f64 x)))) (+.f64 (*.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (pow.f64 (sin.f64 eps) 2) x))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (*.f64 (pow.f64 (sin.f64 eps) 2) x))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (+.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(-.f64 (+.f64 (*.f64 1/5040 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 7))) (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(sin.f64 eps)
(-.f64 (sin.f64 eps) (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))))
(-.f64 (sin.f64 eps) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)) (+.f64 1 (cos.f64 eps)))) (sin.f64 eps)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
Outputs
2
(-.f64 2 (*.f64 1/2 (pow.f64 eps 2)))
(+.f64 2 (*.f64 -1/2 (*.f64 eps eps)))
(+.f64 2 (*.f64 (*.f64 eps eps) -1/2))
(fma.f64 (*.f64 eps eps) -1/2 2)
(-.f64 (+.f64 2 (*.f64 1/24 (pow.f64 eps 4))) (*.f64 1/2 (pow.f64 eps 2)))
(+.f64 2 (-.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/2 (*.f64 eps eps))))
(+.f64 2 (fma.f64 1/24 (pow.f64 eps 4) (*.f64 (*.f64 eps eps) -1/2)))
(fma.f64 (*.f64 eps eps) -1/2 (fma.f64 1/24 (pow.f64 eps 4) 2))
(-.f64 (+.f64 2 (*.f64 1/24 (pow.f64 eps 4))) (+.f64 (*.f64 1/720 (pow.f64 eps 6)) (*.f64 1/2 (pow.f64 eps 2))))
(+.f64 2 (-.f64 (*.f64 1/24 (pow.f64 eps 4)) (fma.f64 1/720 (pow.f64 eps 6) (*.f64 1/2 (*.f64 eps eps)))))
(-.f64 (fma.f64 1/24 (pow.f64 eps 4) 2) (fma.f64 1/2 (*.f64 eps eps) (*.f64 1/720 (pow.f64 eps 6))))
(+.f64 2 (fma.f64 1/24 (pow.f64 eps 4) (fma.f64 (*.f64 eps eps) -1/2 (*.f64 (pow.f64 eps 6) -1/720))))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(+.f64 1 (cos.f64 eps))
(pow.f64 eps 2)
(*.f64 eps eps)
(-.f64 (pow.f64 eps 2) (*.f64 1/3 (pow.f64 eps 4)))
(-.f64 (*.f64 eps eps) (*.f64 (pow.f64 eps 4) 1/3))
(fma.f64 eps eps (*.f64 (pow.f64 eps 4) -1/3))
(-.f64 (+.f64 (*.f64 2/45 (pow.f64 eps 6)) (pow.f64 eps 2)) (*.f64 1/3 (pow.f64 eps 4)))
(+.f64 (fma.f64 2/45 (pow.f64 eps 6) (*.f64 eps eps)) (*.f64 -1/3 (pow.f64 eps 4)))
(fma.f64 (pow.f64 eps 6) 2/45 (fma.f64 eps eps (*.f64 (pow.f64 eps 4) -1/3)))
(fma.f64 (pow.f64 eps 4) -1/3 (fma.f64 eps eps (*.f64 (pow.f64 eps 6) 2/45)))
(-.f64 (+.f64 (*.f64 2/45 (pow.f64 eps 6)) (pow.f64 eps 2)) (+.f64 (*.f64 1/3 (pow.f64 eps 4)) (*.f64 1/315 (pow.f64 eps 8))))
(-.f64 (fma.f64 2/45 (pow.f64 eps 6) (*.f64 eps eps)) (fma.f64 1/3 (pow.f64 eps 4) (*.f64 1/315 (pow.f64 eps 8))))
(+.f64 (fma.f64 (pow.f64 eps 6) 2/45 (fma.f64 eps eps (*.f64 (pow.f64 eps 4) -1/3))) (*.f64 -1/315 (pow.f64 eps 8)))
(fma.f64 eps eps (fma.f64 (pow.f64 eps 6) 2/45 (fma.f64 (pow.f64 eps 4) -1/3 (*.f64 (pow.f64 eps 8) -1/315))))
(fma.f64 (pow.f64 eps 6) 2/45 (fma.f64 eps eps (fma.f64 (pow.f64 eps 4) -1/3 (*.f64 (pow.f64 eps 8) -1/315))))
(*.f64 -1 (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(neg.f64 (*.f64 (*.f64 eps eps) (sin.f64 x)))
(*.f64 (*.f64 eps eps) (neg.f64 (sin.f64 x)))
(*.f64 (neg.f64 eps) (*.f64 eps (sin.f64 x)))
(-.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x)))
(-.f64 (*.f64 (*.f64 (pow.f64 eps 4) 1/3) (sin.f64 x)) (*.f64 (*.f64 eps eps) (sin.f64 x)))
(*.f64 (sin.f64 x) (-.f64 (*.f64 (pow.f64 eps 4) 1/3) (*.f64 eps eps)))
(*.f64 (sin.f64 x) (fma.f64 (pow.f64 eps 4) 1/3 (*.f64 eps (neg.f64 eps))))
(-.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (+.f64 (*.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 (*.f64 (pow.f64 eps 4) 1/3) (sin.f64 x)) (fma.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x)) (*.f64 (*.f64 eps eps) (sin.f64 x))))
(-.f64 (*.f64 (pow.f64 eps 4) (*.f64 1/3 (sin.f64 x))) (*.f64 (sin.f64 x) (fma.f64 eps eps (*.f64 (pow.f64 eps 6) 2/45))))
(*.f64 (sin.f64 x) (-.f64 (*.f64 (pow.f64 eps 4) 1/3) (fma.f64 eps eps (*.f64 (pow.f64 eps 6) 2/45))))
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 1/315 (*.f64 (pow.f64 eps 8) (sin.f64 x)))) (+.f64 (*.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x))) (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (fma.f64 1/3 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (*.f64 (*.f64 1/315 (pow.f64 eps 8)) (sin.f64 x))) (fma.f64 2/45 (*.f64 (pow.f64 eps 6) (sin.f64 x)) (*.f64 (*.f64 eps eps) (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 x) (fma.f64 (pow.f64 eps 4) 1/3 (*.f64 1/315 (pow.f64 eps 8)))) (*.f64 (sin.f64 x) (fma.f64 eps eps (*.f64 (pow.f64 eps 6) 2/45))))
(*.f64 (sin.f64 x) (-.f64 (fma.f64 (pow.f64 eps 4) 1/3 (*.f64 1/315 (pow.f64 eps 8))) (fma.f64 eps eps (*.f64 (pow.f64 eps 6) 2/45))))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (pow.f64 (sin.f64 eps) 2) x))
(neg.f64 (*.f64 x (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 x))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (*.f64 (pow.f64 (sin.f64 eps) 2) x))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (*.f64 x (pow.f64 (sin.f64 eps) 2)))
(fma.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)) (*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 x)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (-.f64 (*.f64 1/6 (pow.f64 x 3)) x))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (+.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(-.f64 (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3))) (fma.f64 (pow.f64 (sin.f64 eps) 2) x (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(-.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 x 3) 1/6)) (fma.f64 x (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 x 5) 1/120))))
(-.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (*.f64 1/6 (pow.f64 x 3))) (*.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 x (*.f64 1/120 (pow.f64 x 5)))))
(-.f64 (+.f64 (*.f64 1/5040 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 7))) (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)))) (+.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(-.f64 (fma.f64 1/5040 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 7)) (*.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)))) (fma.f64 (pow.f64 (sin.f64 eps) 2) x (*.f64 1/120 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 5)))))
(-.f64 (fma.f64 1/6 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)) (*.f64 (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 x 7) 1/5040))) (fma.f64 x (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 (sin.f64 eps) 2) (*.f64 (pow.f64 x 5) 1/120))))
(-.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/5040 (pow.f64 x 7)))) (*.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 x (*.f64 1/120 (pow.f64 x 5)))))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 -1 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(neg.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)))
(*.f64 (pow.f64 (sin.f64 eps) 2) (neg.f64 (sin.f64 x)))
(*.f64 eps (cos.f64 x))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x))))
(-.f64 (*.f64 eps (cos.f64 x)) (*.f64 (*.f64 1/2 (*.f64 eps eps)) (sin.f64 x)))
(fma.f64 eps (cos.f64 x) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2))
(fma.f64 (*.f64 (sin.f64 x) -1/2) (*.f64 eps eps) (*.f64 eps (cos.f64 x)))
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (*.f64 eps (cos.f64 x)) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 (*.f64 1/2 (*.f64 eps eps)) (sin.f64 x))))
(+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2))
(fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 eps (*.f64 (*.f64 eps (sin.f64 x)) -1/2)))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x))) (*.f64 eps (cos.f64 x))) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
(-.f64 (fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (*.f64 eps (cos.f64 x))) (fma.f64 1/6 (*.f64 (cos.f64 x) (pow.f64 eps 3)) (*.f64 (*.f64 1/2 (*.f64 eps eps)) (sin.f64 x))))
(fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (+.f64 (*.f64 (cos.f64 x) (-.f64 eps (*.f64 1/6 (pow.f64 eps 3)))) (*.f64 (*.f64 eps (*.f64 eps (sin.f64 x))) -1/2)))
(fma.f64 1/24 (*.f64 (pow.f64 eps 4) (sin.f64 x)) (fma.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6)) (*.f64 eps (*.f64 (*.f64 eps (sin.f64 x)) -1/2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(sin.f64 eps)
(-.f64 (sin.f64 eps) (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))))
(-.f64 (sin.f64 eps) (/.f64 (pow.f64 (sin.f64 eps) 2) (/.f64 (+.f64 1 (cos.f64 eps)) x)))
(-.f64 (sin.f64 eps) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) x))
(-.f64 (sin.f64 eps) (*.f64 x (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps)))))
(-.f64 (sin.f64 eps) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (sin.f64 eps) (+.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (/.f64 (+.f64 1 (cos.f64 eps)) x)) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x)))))
(-.f64 (sin.f64 eps) (fma.f64 1/2 (*.f64 x (*.f64 x (sin.f64 eps))) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) x)))
(-.f64 (sin.f64 eps) (*.f64 x (+.f64 (*.f64 (sin.f64 eps) (*.f64 1/2 x)) (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))))))
(-.f64 (+.f64 (*.f64 1/6 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)) (+.f64 1 (cos.f64 eps)))) (sin.f64 eps)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) x) (+.f64 1 (cos.f64 eps))) (*.f64 1/2 (*.f64 (sin.f64 eps) (pow.f64 x 2)))))
(-.f64 (-.f64 (fma.f64 1/6 (/.f64 (pow.f64 (sin.f64 eps) 2) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 x 3))) (sin.f64 eps)) (/.f64 (pow.f64 (sin.f64 eps) 2) (/.f64 (+.f64 1 (cos.f64 eps)) x))) (*.f64 1/2 (*.f64 (sin.f64 eps) (*.f64 x x))))
(-.f64 (fma.f64 1/6 (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (pow.f64 x 3)) (sin.f64 eps)) (fma.f64 1/2 (*.f64 x (*.f64 x (sin.f64 eps))) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) x)))
(fma.f64 1/6 (*.f64 (pow.f64 x 3) (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps)))) (-.f64 (sin.f64 eps) (*.f64 x (+.f64 (*.f64 (sin.f64 eps) (*.f64 1/2 x)) (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps)))))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (sin.f64 x) (/.f64 (+.f64 1 (cos.f64 eps)) (pow.f64 (sin.f64 eps) 2))))
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (neg.f64 (sin.f64 x)) (+.f64 1 (cos.f64 eps))) (pow.f64 (sin.f64 eps) 2)))
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (+.f64 1 (cos.f64 eps))) (neg.f64 (sin.f64 x))))

prune218.0ms (3.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1683171
Fresh3811
Picked101
Done000
Total17211183
Error
0.0b
Counts
183 → 11
Alt Table
StatusErrorProgram
0.5b
(fma.f64 (sin.f64 eps) (log1p.f64 (expm1.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
14.4b
(fma.f64 (sin.f64 eps) (cos.f64 x) (fma.f64 (sqrt.f64 (cos.f64 eps)) (*.f64 (sqrt.f64 (cos.f64 eps)) (sin.f64 x)) (neg.f64 (sin.f64 x))))
20.7b
(cbrt.f64 (pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 3))
33.4b
(pow.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) 2)
30.8b
(fma.f64 (sin.f64 x) (cos.f64 eps) (-.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
0.6b
(fma.f64 (sin.f64 eps) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 x)))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
30.7b
(log.f64 (exp.f64 (fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))))
29.8b
(fma.f64 (sin.f64 eps) (fma.f64 (*.f64 x -1/2) x 1) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.6b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.5b
(fma.f64 (sin.f64 eps) (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
Compiler

Compiled 4066 to 2114 computations (48% saved)

regimes480.0ms (7%)

Accuracy

Total 0.3b remaining (80.6%)

Threshold costs 0.3b (80.6%)

Counts
233 → 1
Compiler

Compiled 3547 to 1165 computations (67.2% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01529
12229
22829
33829
44529
55029
65229
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))
Outputs
(-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (pow.f64 (sin.f64 eps) 2)) (+.f64 1 (cos.f64 eps))))

end206.0ms (3%)

Stop Event
fuel
Compiler

Compiled 233 to 165 computations (29.2% saved)

Profiling

Loading profile data...