Details

Time bar (total: 11.4s)

analyze241.0ms (2.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
25%74.9%0.1%7
37.4%62.4%0.1%8
37.4%62.4%0.1%9
56.2%43.7%0.1%10
65.5%34.3%0.1%11
65.5%34.3%0.1%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample3.5s (30.8%)

Results
1.8s6350×body256valid
1.2s1256×body1024valid
483.0ms646×body512valid
6.0msbody2048valid

preprocess188.0ms (1.6%)

Algorithm
egg-herbie
Rules
792×fma-neg_binary64
609×fma-def_binary64
208×cancel-sign-sub-inv_binary64
156×distribute-rgt-in_binary64
147×associate--r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02256
15756
212856
323756
442856
570056
6122956
7210156
8277356
9315656
10318856
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x)))
(-.f64 (+.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y)))
(-.f64 (+.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z)))
Outputs
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 y (cos.f64 x)) (*.f64 z (sin.f64 x)))
(+.f64 y (-.f64 (cos.f64 x) (*.f64 z (sin.f64 x))))
(+.f64 (cos.f64 x) (-.f64 y (*.f64 z (sin.f64 x))))
(-.f64 (+.f64 z (cos.f64 y)) (*.f64 x (sin.f64 y)))
(+.f64 z (-.f64 (cos.f64 y) (*.f64 x (sin.f64 y))))
(-.f64 (+.f64 (cos.f64 y) z) (*.f64 x (sin.f64 y)))
(-.f64 (cos.f64 y) (fma.f64 x (sin.f64 y) (neg.f64 z)))
(+.f64 (cos.f64 y) (-.f64 z (*.f64 x (sin.f64 y))))
(-.f64 (+.f64 x (cos.f64 z)) (*.f64 y (sin.f64 z)))
(+.f64 x (-.f64 (cos.f64 z) (*.f64 y (sin.f64 z))))
(+.f64 (cos.f64 z) (-.f64 x (*.f64 y (sin.f64 z))))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify35.0ms (0.3%)

Algorithm
egg-herbie
Rules
228×fma-def_binary64
171×fma-neg_binary64
68×cancel-sign-sub-inv_binary64
43×distribute-rgt-in_binary64
39×associate--r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
11814
23814
36714
411814
518314
632214
753214
868314
984814
1095214
1196214
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Outputs
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))

eval1.0ms (0%)

Compiler

Compiled 21 to 11 computations (47.6% saved)

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
0.0b
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
Compiler

Compiled 24 to 16 computations (33.3% saved)

localize66.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
0.0b
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
Compiler

Compiled 29 to 8 computations (72.4% saved)

series12.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

TimeVariablePointExpression
2.0ms
z
@0
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
1.0ms
x
@0
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
1.0ms
y
@0
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
1.0ms
z
@-inf
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
1.0ms
y
@-inf
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))

rewrite80.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
954×pow1_binary64
880×add-log-exp_binary64
879×log1p-expm1-u_binary64
879×expm1-log1p-u_binary64
103×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify91.0ms (0.8%)

Algorithm
egg-herbie
Rules
866×cancel-sign-sub-inv_binary64
807×fma-def_binary64
680×fma-neg_binary64
375×sub-neg_binary64
331×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048708
1141702
2342694
3967683
43346683
57384683
Stop Event
node limit
Counts
120 → 87
Calls
Call 1
Inputs
(*.f64 -1 (cos.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
-1
(-.f64 (*.f64 y z) 1)
(-.f64 (+.f64 (*.f64 y z) (*.f64 1/2 (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 1/2 (pow.f64 y 2)))) 1)
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
Outputs
(*.f64 -1 (cos.f64 y))
(neg.f64 (cos.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(*.f64 z (sin.f64 y))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(+.f64 (*.f64 -1 (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
-1
(-.f64 (*.f64 y z) 1)
(fma.f64 y z -1)
(-.f64 (+.f64 (*.f64 y z) (*.f64 1/2 (pow.f64 y 2))) 1)
(+.f64 (fma.f64 y z (*.f64 1/2 (*.f64 y y))) -1)
(fma.f64 y z (fma.f64 1/2 (*.f64 y y) -1))
(fma.f64 y z (fma.f64 y (*.f64 y 1/2) -1))
(fma.f64 y (fma.f64 y 1/2 z) -1)
(-.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 1/2 (pow.f64 y 2)))) 1)
(+.f64 (fma.f64 y z (fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (*.f64 1/2 (*.f64 y y)))) -1)
(+.f64 (*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))) (fma.f64 1/2 (*.f64 y y) -1))
(fma.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) (fma.f64 y (*.f64 y 1/2) -1))
(fma.f64 y (*.f64 y 1/2) (fma.f64 z (fma.f64 -1/6 (pow.f64 y 3) y) -1))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))
(fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (fma.f64 -1 (*.f64 y z) x))
(+.f64 1 (-.f64 x (*.f64 y z)))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) x)))
(+.f64 (fma.f64 (*.f64 y y) -1/2 x) (-.f64 1 (*.f64 y z)))
(-.f64 (fma.f64 (*.f64 y y) -1/2 x) (fma.f64 y z -1))
(-.f64 x (fma.f64 y (fma.f64 y 1/2 z) -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x))))
(+.f64 (fma.f64 (*.f64 y y) -1/2 (fma.f64 (*.f64 z (pow.f64 y 3)) 1/6 x)) (-.f64 1 (*.f64 y z)))
(-.f64 (fma.f64 y (*.f64 y -1/2) (fma.f64 z (*.f64 (pow.f64 y 3) 1/6) x)) (fma.f64 y z -1))
(-.f64 (fma.f64 (*.f64 y y) -1/2 x) (fma.f64 z (fma.f64 -1/6 (pow.f64 y 3) y) -1))
(-.f64 x (fma.f64 y (*.f64 y 1/2) (fma.f64 z (fma.f64 -1/6 (pow.f64 y 3) y) -1)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))

localize27.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
0.0b
(+.f64 x (cos.f64 y))
0.1b
(*.f64 z (sin.f64 y))
Compiler

Compiled 27 to 8 computations (70.4% saved)

series12.0ms (0.1%)

Counts
3 → 64
Calls

21 calls:

TimeVariablePointExpression
2.0ms
z
@0
(*.f64 z (sin.f64 y))
1.0ms
y
@0
(*.f64 z (sin.f64 y))
1.0ms
z
@inf
(*.f64 z (sin.f64 y))
1.0ms
y
@inf
(*.f64 z (sin.f64 y))
1.0ms
y
@0
(+.f64 x (cos.f64 y))

rewrite147.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
521×log-prod_binary64
455×fma-def_binary64
372×pow-prod-down_binary64
286×pow2_binary64
217×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify85.0ms (0.7%)

Algorithm
egg-herbie
Rules
673×associate-*l*_binary64
648×cancel-sign-sub-inv_binary64
516×associate-*r*_binary64
506×unswap-sqr_binary64
391×fma-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
066701
1188695
2507684
31578677
44510674
Stop Event
node limit
Counts
274 → 240
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
Outputs
(*.f64 y z)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z))
(fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (*.f64 y z))
(*.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))
(*.f64 z (fma.f64 -1/6 (pow.f64 y 3) y))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (*.f64 1/120 (*.f64 (pow.f64 y 5) z))))
(fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (fma.f64 y z (*.f64 1/120 (*.f64 z (pow.f64 y 5)))))
(fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (*.f64 z (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)))
(*.f64 z (+.f64 (fma.f64 -1/6 (pow.f64 y 3) y) (*.f64 1/120 (pow.f64 y 5))))
(*.f64 z (+.f64 (*.f64 1/120 (pow.f64 y 5)) (fma.f64 -1/6 (pow.f64 y 3) y)))
(*.f64 z (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (fma.f64 1/120 (pow.f64 y 5) y)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (+.f64 (*.f64 y z) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 y 7) z)) (*.f64 1/120 (*.f64 (pow.f64 y 5) z)))))
(fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (fma.f64 y z (fma.f64 -1/5040 (*.f64 z (pow.f64 y 7)) (*.f64 1/120 (*.f64 z (pow.f64 y 5))))))
(fma.f64 -1/6 (*.f64 z (pow.f64 y 3)) (fma.f64 y z (*.f64 z (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/5040 (pow.f64 y 7))))))
(*.f64 z (+.f64 (fma.f64 -1/6 (pow.f64 y 3) y) (fma.f64 1/120 (pow.f64 y 5) (*.f64 -1/5040 (pow.f64 y 7)))))
(*.f64 z (+.f64 (fma.f64 -1/5040 (pow.f64 y 7) (*.f64 1/120 (pow.f64 y 5))) (fma.f64 -1/6 (pow.f64 y 3) y)))
(*.f64 z (+.f64 (fma.f64 1/120 (pow.f64 y 5) (*.f64 -1/5040 (pow.f64 y 7))) (fma.f64 -1/6 (pow.f64 y 3) y)))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) x))
(+.f64 x (fma.f64 y (*.f64 y -1/2) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 1))
(+.f64 1 (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 y (*.f64 y -1/2) 1)))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (fma.f64 -1 (*.f64 y z) x))
(+.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) x)))
(+.f64 (fma.f64 -1/2 (*.f64 y y) x) (-.f64 1 (*.f64 y z)))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) x) (*.f64 y z)))
(-.f64 (fma.f64 y (*.f64 y -1/2) x) (fma.f64 y z -1))
(-.f64 x (fma.f64 y (+.f64 z (*.f64 y 1/2)) -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 (*.f64 z (pow.f64 y 3)) 1/6 x)) (-.f64 1 (*.f64 y z)))
(+.f64 1 (-.f64 (fma.f64 y (*.f64 y -1/2) (fma.f64 z (*.f64 (pow.f64 y 3) 1/6) x)) (*.f64 y z)))
(+.f64 1 (-.f64 (fma.f64 y (*.f64 y -1/2) x) (*.f64 z (fma.f64 -1/6 (pow.f64 y 3) y))))
(-.f64 (fma.f64 y (*.f64 y -1/2) x) (fma.f64 z (fma.f64 -1/6 (pow.f64 y 3) y) -1))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))
(+.f64 (cos.f64 y) (fma.f64 (sin.f64 y) (neg.f64 z) x))
(-.f64 (cos.f64 y) (-.f64 (*.f64 z (sin.f64 y)) x))

eval131.0ms (1.1%)

Compiler

Compiled 5416 to 1506 computations (72.2% saved)

prune130.0ms (1.1%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New31215327
Fresh000
Picked101
Done101
Total31415329
Error
0b
Counts
329 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
1.0b
(pow.f64 (cbrt.f64 (+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))) 3)
7.2b
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
35.4b
x
0.0b
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
46.2b
(*.f64 (sin.f64 y) (neg.f64 z))
18.9b
(-.f64 x (*.f64 z (sin.f64 y)))
17.0b
(+.f64 (cos.f64 y) x)
23.2b
(-.f64 (pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2) (*.f64 z (sin.f64 y)))
27.6b
(-.f64 (+.f64 x (cos.f64 y)) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
17.3b
(-.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x)) (*.f64 z (sin.f64 y)))
27.7b
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
27.4b
(-.f64 (+.f64 x (cos.f64 y)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)))
21.5b
(-.f64 x (-.f64 (*.f64 y z) 1))
23.6b
(-.f64 x -1)
24.7b
(pow.f64 (sqrt.f64 (+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))) 2)
Compiler

Compiled 350 to 247 computations (29.4% saved)

localize24.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (cos.f64 y))
0.0b
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
Compiler

Compiled 25 to 8 computations (68% saved)

series8.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
1.0ms
y
@inf
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
1.0ms
y
@-inf
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
1.0ms
y
@0
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
1.0ms
z
@inf
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))

rewrite70.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
940×pow1_binary64
867×add-log-exp_binary64
866×log1p-expm1-u_binary64
866×expm1-log1p-u_binary64
847×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0914
119012
2255512
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (cos.f64 y)) (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) z) (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 y) z) 1) (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 (sin.f64 y) z) x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 (sin.f64 y) z) (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) 2) (cbrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) (sqrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 y) z) 3) (pow.f64 (+.f64 x (cos.f64 y)) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z)) (-.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) (*.f64 (*.f64 (sin.f64 y) z) (+.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z)) (pow.f64 (+.f64 x (cos.f64 y)) 2)) (-.f64 (*.f64 (sin.f64 y) z) (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (sin.f64 y) z (+.f64 x (cos.f64 y)))))))))

simplify84.0ms (0.7%)

Algorithm
egg-herbie
Rules
622×distribute-rgt-neg-in_binary64
614×cancel-sign-sub-inv_binary64
546×distribute-lft-neg-in_binary64
540×fma-def_binary64
324×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
034487
193457
2235457
3680449
42333449
55024449
Stop Event
node limit
Counts
59 → 39
Calls
Call 1
Inputs
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
x
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
x
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
Outputs
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (fma.f64 -1 (*.f64 y z) x))
(+.f64 1 (-.f64 x (*.f64 y z)))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) x)))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) x) (*.f64 y z)))
(+.f64 (fma.f64 -1/2 (*.f64 y y) x) (-.f64 1 (*.f64 y z)))
(+.f64 x (fma.f64 y (-.f64 (*.f64 y -1/2) z) 1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x))))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x)) (*.f64 y z)))
(+.f64 (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (fma.f64 -1/2 (*.f64 y y) x)) (-.f64 1 (*.f64 y z)))
(+.f64 (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) x) (fma.f64 y (-.f64 (*.f64 y -1/2) z) 1))
(fma.f64 y (-.f64 (*.f64 y -1/2) z) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) (+.f64 1 x)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
x
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(+.f64 x (fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y)))

localize7.0ms (0.1%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize16.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 y) (neg.f64 z))
Compiler

Compiled 14 to 6 computations (57.1% saved)

series5.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(*.f64 (sin.f64 y) (neg.f64 z))
1.0ms
y
@0
(*.f64 (sin.f64 y) (neg.f64 z))
1.0ms
y
@-inf
(*.f64 (sin.f64 y) (neg.f64 z))
1.0ms
z
@0
(*.f64 (sin.f64 y) (neg.f64 z))
0.0ms
z
@-inf
(*.f64 (sin.f64 y) (neg.f64 z))

rewrite62.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
495×pow1_binary64
474×add-sqr-sqrt_binary64
454×add-log-exp_binary64
453×log1p-expm1-u_binary64
453×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
068
11226
215446
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (sin.f64 y) (neg.f64 z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sin.f64 y) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sin.f64 y) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sin.f64 y) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sin.f64 y) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sin.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sin.f64 y) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sin.f64 y) z)))))))

simplify125.0ms (1.1%)

Algorithm
egg-herbie
Rules
694×distribute-rgt-neg-in_binary64
572×distribute-lft-neg-in_binary64
552×fma-def_binary64
478×fma-neg_binary64
437×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
028247
178241
2218228
3635226
42085226
54311226
66266226
77823226
Stop Event
node limit
Counts
37 → 23
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
Outputs
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (+.f64 (neg.f64 y) (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z))))
(fma.f64 -1 (*.f64 y z) (fma.f64 -1/120 (*.f64 z (pow.f64 y 5)) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))))
(-.f64 (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 y z))
(*.f64 z (-.f64 (fma.f64 1/6 (pow.f64 y 3) (*.f64 -1/120 (pow.f64 y 5))) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (fma.f64 -1/120 (pow.f64 y 5) (neg.f64 y))))
(+.f64 (*.f64 1/5040 (*.f64 (pow.f64 y 7) z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/120 (*.f64 (pow.f64 y 5) z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(fma.f64 1/5040 (*.f64 z (pow.f64 y 7)) (fma.f64 -1 (*.f64 y z) (fma.f64 -1/120 (*.f64 z (pow.f64 y 5)) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))))
(fma.f64 1/5040 (*.f64 z (pow.f64 y 7)) (-.f64 (*.f64 z (+.f64 (*.f64 -1/120 (pow.f64 y 5)) (*.f64 1/6 (pow.f64 y 3)))) (*.f64 y z)))
(*.f64 z (+.f64 (fma.f64 1/6 (pow.f64 y 3) (*.f64 -1/120 (pow.f64 y 5))) (-.f64 (*.f64 1/5040 (pow.f64 y 7)) y)))
(*.f64 z (-.f64 (fma.f64 1/5040 (pow.f64 y 7) (fma.f64 1/6 (pow.f64 y 3) (*.f64 -1/120 (pow.f64 y 5)))) y))
(*.f64 z (fma.f64 1/5040 (pow.f64 y 7) (fma.f64 1/6 (pow.f64 y 3) (fma.f64 -1/120 (pow.f64 y 5) (neg.f64 y)))))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))

localize46.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
0.1b
(*.f64 z (sin.f64 y))
Compiler

Compiled 20 to 7 computations (65% saved)

series37.0ms (0.3%)

Counts
1 → 16
Calls

6 calls:

TimeVariablePointExpression
34.0ms
z
@-inf
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
1.0ms
y
@0
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
1.0ms
y
@-inf
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
1.0ms
y
@inf
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
1.0ms
z
@0
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))

rewrite99.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
115111
2208711
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (sin.f64 y)) z (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 z) (sin.f64 y) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 1 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z (sin.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 z (sin.f64 y))) 2) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))) (sqrt.f64 (*.f64 z (sin.f64 y))) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) (neg.f64 z)) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) (pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2) (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2)) (/.f64 1 (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (*.f64 z (sin.f64 y)))) (-.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))) (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2)) (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3))) (neg.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2))) (neg.f64 (+.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 (sin.f64 y) (neg.f64 z)) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (-.f64 (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z))) (*.f64 (cos.f64 y) (*.f64 (sin.f64 y) (neg.f64 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 (sin.f64 y) (neg.f64 z)) (*.f64 (sin.f64 y) (neg.f64 z)))) (-.f64 (cos.f64 y) (*.f64 (sin.f64 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) (*.f64 (sin.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) (*.f64 (sin.f64 y) (neg.f64 z)))))))

simplify176.0ms (1.5%)

Algorithm
egg-herbie
Rules
619×distribute-rgt-neg-in_binary64
541×distribute-lft-neg-in_binary64
469×sub-neg_binary64
376×cancel-sign-sub-inv_binary64
357×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027181
169168
2169162
3502158
41669158
53782158
66290158
77533158
Stop Event
node limit
Counts
53 → 49
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(cos.f64 y)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
Outputs
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (neg.f64 (*.f64 y z)))
(-.f64 1 (*.f64 y z))
(fma.f64 y (neg.f64 z) 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (*.f64 -1/2 (*.f64 y y))))
(+.f64 1 (-.f64 (*.f64 -1/2 (*.f64 y y)) (*.f64 y z)))
(+.f64 1 (*.f64 y (-.f64 (*.f64 y -1/2) z)))
(fma.f64 y (fma.f64 y -1/2 (neg.f64 z)) 1)
(fma.f64 y (-.f64 (*.f64 y -1/2) z) 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) (*.f64 1/6 (*.f64 z (pow.f64 y 3)))) (*.f64 y z)))
(+.f64 (*.f64 y (-.f64 (*.f64 y -1/2) z)) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) 1))
(fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (fma.f64 y (fma.f64 y -1/2 (neg.f64 z)) 1))
(fma.f64 y (*.f64 y -1/2) (fma.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)) 1))
(fma.f64 y (*.f64 y -1/2) (fma.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) 1))
(cos.f64 y)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (cos.f64 y))
0.0b
(sqrt.f64 (+.f64 x (cos.f64 y)))
0.1b
(*.f64 z (sin.f64 y))
0.2b
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
Compiler

Compiled 43 to 14 computations (67.4% saved)

series43.0ms (0.4%)

Counts
2 → 32
Calls

12 calls:

TimeVariablePointExpression
35.0ms
x
@0
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
2.0ms
y
@0
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
1.0ms
x
@inf
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
1.0ms
x
@-inf
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
1.0ms
y
@inf
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)

rewrite69.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
758×pow1_binary64
707×add-log-exp_binary64
706×log1p-expm1-u_binary64
706×expm1-log1p-u_binary64
690×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
117314
2194514
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)
(sqrt.f64 (+.f64 x (cos.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (cos.f64 y))) (/.f64 (pow.f64 (cos.f64 y) 2) (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (sqrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))) (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) (cbrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x (cos.f64 y)) 1/4) (*.f64 (pow.f64 (+.f64 x (cos.f64 y)) 1/4) (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (/.f64 1 (fma.f64 x x (*.f64 (cos.f64 y) (-.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (/.f64 1 (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (pow.f64 (+.f64 x (cos.f64 y)) 1/4)) (pow.f64 (+.f64 x (cos.f64 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (cbrt.f64 (+.f64 x (cos.f64 y)))) (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (cos.f64 y) (-.f64 (cos.f64 y) x))) (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (cos.f64 y)) (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (fma.f64 x x (*.f64 (cos.f64 y) (-.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (-.f64 (*.f64 x x) (*.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (-.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))) (neg.f64 (fma.f64 x x (*.f64 (cos.f64 y) (-.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))) (neg.f64 (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) x)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (+.f64 x (cos.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))) (cbrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x (cos.f64 y)) 1/4) (pow.f64 (+.f64 x (cos.f64 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2)) (sqrt.f64 (cbrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))) (sqrt.f64 (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))) (sqrt.f64 (fma.f64 x x (*.f64 (cos.f64 y) (-.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (cos.f64 y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 x) (sqrt.f64 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))))

simplify106.0ms (0.9%)

Algorithm
egg-herbie
Rules
497×distribute-rgt-in_binary64
478×distribute-lft-in_binary64
427×fma-def_binary64
339×fma-neg_binary64
290×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
093725
1268706
2810587
33352479
47951479
Stop Event
node limit
Counts
91 → 86
Calls
Call 1
Inputs
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) (pow.f64 x 4)) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) (pow.f64 x 4)) (+.f64 (cos.f64 y) x))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 4) (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (+.f64 1 x))) 1/24) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2))) x)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x))) (*.f64 -1 (+.f64 1/720 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x)))))) (pow.f64 y 6)) (+.f64 (*.f64 (pow.f64 y 4) (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (+.f64 1 x))) 1/24) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2))) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(sqrt.f64 (cos.f64 y))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (sqrt.f64 (cos.f64 y)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (sqrt.f64 (cos.f64 y))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5))) (pow.f64 x 3))) (sqrt.f64 (cos.f64 y)))))
(sqrt.f64 (+.f64 1 x))
(+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x))))))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (pow.f64 y 4)) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x)))))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (pow.f64 y 6) (+.f64 1/720 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x))))) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (pow.f64 y 4)) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x))))))))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
Outputs
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) (pow.f64 x 4)) (+.f64 (cos.f64 y) x))
(fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 (cos.f64 y) 3)) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2)) (/.f64 5/64 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 4) (+.f64 (cos.f64 y) x))
(+.f64 x (fma.f64 (-.f64 (/.f64 5/64 (pow.f64 (cos.f64 y) 3)) (+.f64 (/.f64 1/16 (pow.f64 (cos.f64 y) 3)) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (pow.f64 x 4) (cos.f64 y)))
(+.f64 x (fma.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)) 1/64) (*.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)) -1/64)) (pow.f64 x 4) (cos.f64 y)))
(+.f64 (cos.f64 y) (fma.f64 (pow.f64 x 4) 0 x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) (pow.f64 x 4)) (+.f64 (cos.f64 y) x))
(fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 (cos.f64 y) 3)) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2)) (/.f64 5/64 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 4) (+.f64 (cos.f64 y) x))
(+.f64 x (fma.f64 (-.f64 (/.f64 5/64 (pow.f64 (cos.f64 y) 3)) (+.f64 (/.f64 1/16 (pow.f64 (cos.f64 y) 3)) (pow.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) 2))) (pow.f64 x 4) (cos.f64 y)))
(+.f64 x (fma.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)) 1/64) (*.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)) -1/64)) (pow.f64 x 4) (cos.f64 y)))
(+.f64 (cos.f64 y) (fma.f64 (pow.f64 x 4) 0 x))
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) x))
(+.f64 x (fma.f64 y (*.f64 y -1/2) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 4) (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (+.f64 1 x))) 1/24) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2))) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 (pow.f64 y 4) (+.f64 (/.f64 1/16 (+.f64 x 1)) (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2))) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 (pow.f64 y 4) (+.f64 1/24 (-.f64 (/.f64 1/16 (+.f64 x 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2))) x)))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 (pow.f64 y 4) (+.f64 (/.f64 1/16 (+.f64 x 1)) (-.f64 1/24 (/.f64 1/16 (+.f64 x 1)))) x)))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 (pow.f64 y 4) 1/24 x)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x))) (*.f64 -1 (+.f64 1/720 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x)))))) (pow.f64 y 6)) (+.f64 (*.f64 (pow.f64 y 4) (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (+.f64 1 x))) 1/24) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2))) x))))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 (fma.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1)) (neg.f64 (+.f64 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1))) 1/720))) (pow.f64 y 6) (fma.f64 (pow.f64 y 4) (+.f64 (/.f64 1/16 (+.f64 x 1)) (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2))) x))))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 (-.f64 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1))) (fma.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1)) 1/720)) (pow.f64 y 6) (fma.f64 (pow.f64 y 4) (+.f64 1/24 (-.f64 (/.f64 1/16 (+.f64 x 1)) (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2))) x))))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 (+.f64 -1/720 (*.f64 (/.f64 (-.f64 1/24 (/.f64 1/16 (+.f64 x 1))) (+.f64 x 1)) 0)) (pow.f64 y 6) (fma.f64 (pow.f64 y 4) (+.f64 (/.f64 1/16 (+.f64 x 1)) (-.f64 1/24 (/.f64 1/16 (+.f64 x 1)))) x))))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 (pow.f64 y 4) 1/24 (fma.f64 (pow.f64 y 6) -1/720 x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(sqrt.f64 (cos.f64 y))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (sqrt.f64 (cos.f64 y)))
(fma.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y)))
(fma.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (sqrt.f64 (cos.f64 y))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (*.f64 x x)) (fma.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y))))
(fma.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3)))) (*.f64 x x) (fma.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (*.f64 x (*.f64 x -1/8)) (fma.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (cos.f64 y))) x)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5))) (pow.f64 x 3))) (sqrt.f64 (cos.f64 y)))))
(fma.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (*.f64 x x)) (fma.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 1 (cos.f64 y)))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5))) (pow.f64 x 3)) (sqrt.f64 (cos.f64 y)))))
(fma.f64 -1/8 (*.f64 x (*.f64 x (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))))) (fma.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 1 (cos.f64 y)))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5))) (pow.f64 x 3)) (sqrt.f64 (cos.f64 y)))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (*.f64 x (*.f64 x -1/8)) (fma.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5)))) (fma.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y)))))
(fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 3))) (*.f64 x (*.f64 x -1/8)) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (cos.f64 y) 5))) (*.f64 1/16 (pow.f64 x 3)) (fma.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 1 (cos.f64 y)))) (sqrt.f64 (cos.f64 y)))))
(sqrt.f64 (+.f64 1 x))
(sqrt.f64 (+.f64 x 1))
(+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x))))))
(+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 -1/4 (*.f64 (*.f64 y y) (sqrt.f64 (/.f64 1 (+.f64 x 1))))))
(fma.f64 -1/4 (*.f64 y (*.f64 y (sqrt.f64 (/.f64 1 (+.f64 x 1))))) (sqrt.f64 (+.f64 x 1)))
(fma.f64 (*.f64 y y) (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) (sqrt.f64 (+.f64 x 1)))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (pow.f64 y 4)) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x)))))))
(fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (*.f64 (pow.f64 y 4) (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)))) (+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 -1/4 (*.f64 (*.f64 y y) (sqrt.f64 (/.f64 1 (+.f64 x 1)))))))
(fma.f64 1/2 (*.f64 (pow.f64 y 4) (*.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (sqrt.f64 (/.f64 1 (+.f64 x 1))))) (fma.f64 -1/4 (*.f64 y (*.f64 y (sqrt.f64 (/.f64 1 (+.f64 x 1))))) (sqrt.f64 (+.f64 x 1))))
(+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (+.f64 (*.f64 (*.f64 y y) -1/4) (*.f64 (pow.f64 y 4) (*.f64 (-.f64 1/24 (/.f64 1/16 (+.f64 x 1))) 1/2)))))
(+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 1/48 (*.f64 (/.f64 -1/16 (+.f64 x 1)) 1/2))) (*.f64 y (*.f64 y -1/4)))))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 (pow.f64 y 6) (+.f64 1/720 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (+.f64 1 x))))) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 1 x)))) 2)) (pow.f64 y 4)) (sqrt.f64 (/.f64 1 (+.f64 1 x))))) (+.f64 (sqrt.f64 (+.f64 1 x)) (*.f64 -1/4 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (+.f64 1 x))))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1))) 1/720) (pow.f64 y 6))) (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (*.f64 (pow.f64 y 4) (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)))) (+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 -1/4 (*.f64 (*.f64 y y) (sqrt.f64 (/.f64 1 (+.f64 x 1))))))))
(+.f64 (fma.f64 -1/4 (*.f64 y (*.f64 y (sqrt.f64 (/.f64 1 (+.f64 x 1))))) (sqrt.f64 (+.f64 x 1))) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (+.f64 (*.f64 -1/2 (*.f64 (fma.f64 -1/4 (/.f64 (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)) (+.f64 x 1)) 1/720) (pow.f64 y 6))) (*.f64 1/2 (*.f64 (pow.f64 y 4) (-.f64 1/24 (pow.f64 (*.f64 -1/4 (sqrt.f64 (/.f64 1 (+.f64 x 1)))) 2)))))))
(+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (+.f64 (fma.f64 -1/2 (*.f64 (fma.f64 -1/4 (/.f64 (-.f64 1/24 (/.f64 1/16 (+.f64 x 1))) (+.f64 x 1)) 1/720) (pow.f64 y 6)) (*.f64 (pow.f64 y 4) (*.f64 (-.f64 1/24 (/.f64 1/16 (+.f64 x 1))) 1/2))) (*.f64 (*.f64 y y) -1/4))))
(+.f64 (sqrt.f64 (+.f64 x 1)) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 x 1))) (+.f64 (*.f64 y (*.f64 y -1/4)) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 (+.f64 -1/96 (/.f64 1/64 (+.f64 x 1))) (+.f64 x 1)) 1/720) (pow.f64 y 6)) (*.f64 (pow.f64 y 4) (+.f64 1/48 (*.f64 (/.f64 -1/16 (+.f64 x 1)) 1/2)))))))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))
(sqrt.f64 (+.f64 (cos.f64 y) x))

eval191.0ms (1.7%)

Compiler

Compiled 6183 to 2532 computations (59% saved)

prune150.0ms (1.3%)

Pruning

19 alts after pruning (16 fresh and 3 done)

PrunedKeptTotal
New37013383
Fresh7310
Picked101
Done134
Total37919398
Error
0b
Counts
398 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 (-.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1) (*.f64 z (sin.f64 y)))
57.2b
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
17.3b
(-.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x)) (*.f64 z (sin.f64 y)))
56.8b
(*.f64 y (neg.f64 z))
38.4b
(pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)
44.4b
(cos.f64 y)
28.1b
(pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)
18.9b
(fma.f64 (sin.f64 y) (neg.f64 z) x)
7.2b
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
18.9b
(-.f64 x (*.f64 z (sin.f64 y)))
46.2b
(*.f64 (sin.f64 y) (neg.f64 z))
17.0b
(+.f64 (cos.f64 y) x)
50.3b
1
43.6b
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
35.4b
x
27.7b
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
27.7b
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
21.5b
(-.f64 x (-.f64 (*.f64 y z) 1))
23.6b
(-.f64 x -1)
Compiler

Compiled 352 to 255 computations (27.6% saved)

localize41.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (cos.f64 y))
0.1b
(*.f64 z (sin.f64 y))
0.1b
(-.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1)
0.2b
(+.f64 1 (+.f64 x (cos.f64 y)))
Compiler

Compiled 46 to 19 computations (58.7% saved)

series6.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(+.f64 1 (+.f64 x (cos.f64 y)))
1.0ms
y
@0
(+.f64 1 (+.f64 x (cos.f64 y)))
0.0ms
y
@inf
(+.f64 1 (+.f64 x (cos.f64 y)))
0.0ms
x
@inf
(+.f64 1 (+.f64 x (cos.f64 y)))
0.0ms
x
@-inf
(+.f64 1 (+.f64 x (cos.f64 y)))

rewrite118.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
844×prod-diff_binary64
560×unpow-prod-down_binary64
455×fma-def_binary64
357×log-prod_binary64
257×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0821
118515
2277815
Stop Event
node limit
Counts
2 → 192
Calls
Call 1
Inputs
(+.f64 1 (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 x (cos.f64 y)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 (-.f64 1 x) (cos.f64 y))) (/.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) (-.f64 (-.f64 1 x) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 (cos.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) (*.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) (pow.f64 (*.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (*.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (pow.f64 (*.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) (/.f64 1 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) (pow.f64 (/.f64 1 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2)) (/.f64 1 (-.f64 (-.f64 1 x) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2)) (pow.f64 (/.f64 1 (-.f64 (-.f64 1 x) (cos.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (+.f64 x (+.f64 (cos.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))) 2) 3) (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1) (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (-.f64 1 x) (cos.f64 y)) (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) (+.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) (-.f64 (-.f64 1 x) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2)) (-.f64 (-.f64 1 x) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3))) (neg.f64 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2))) (neg.f64 (-.f64 (-.f64 1 x) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 1 x) 3) (pow.f64 (cos.f64 y) 3)) (+.f64 (pow.f64 (+.f64 1 x) 2) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (+.f64 1 x) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) 1) (+.f64 (cos.f64 y) (-.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 x) 2) (pow.f64 (cos.f64 y) 2)) (-.f64 (+.f64 1 x) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) 1) (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2)) 1) (-.f64 (-.f64 1 x) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1) (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (-.f64 1 x) (cos.f64 y)) (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 x (+.f64 (cos.f64 y) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (cos.f64 y)) (exp.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 y))) (exp.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 1 x)) (+.f64 1 (expm1.f64 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (+.f64 (cos.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (+.f64 x (cos.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (+.f64 (cos.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (+.f64 x (cos.f64 y)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (+.f64 (cos.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 y) 1 (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x (cos.f64 y)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 y)) (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) (cbrt.f64 (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (+.f64 (cos.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (+.f64 (cos.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (sqrt.f64 (+.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (+.f64 (cos.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (/.f64 1 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (+.f64 x (cos.f64 y)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (+.f64 x (cos.f64 y)) 2) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (/.f64 1 (-.f64 x (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 x) 1 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 x (cos.f64 y)) 2)) 2) (cbrt.f64 (+.f64 (+.f64 x (cos.f64 y)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (+.f64 x (cos.f64 y)) 2)) (sqrt.f64 (+.f64 (+.f64 x (cos.f64 y)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 (+.f64 1 x)) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 x (cos.f64 y))))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (cos.f64 y) (-.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (+.f64 (cos.f64 y) (-.f64 x 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (+.f64 (cos.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (cos.f64 y) (-.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 x) (+.f64 (cos.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 x (cos.f64 y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 x (cos.f64 y))))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) (cbrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (sqrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (pow.f64 (/.f64 1 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (/.f64 1 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (pow.f64 (/.f64 1 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (+.f64 x (cos.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y))))) (pow.f64 (/.f64 1 (+.f64 (+.f64 x (cos.f64 y)) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (/.f64 1 (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (pow.f64 (/.f64 1 (-.f64 x (cos.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (+.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 x (cos.f64 y)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 x (cos.f64 y)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) 1) (pow.f64 (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 x (cos.f64 y))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 x (cos.f64 y)))) 2) 3) (cbrt.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) (sqrt.f64 (+.f64 x (cos.f64 y)))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (cos.f64 y)) (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 x (cos.f64 y)) 2) (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (-.f64 1 (*.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (-.f64 (*.f64 x x) (*.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y))))) (+.f64 (+.f64 x (cos.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (-.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))) (neg.f64 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))) (neg.f64 (-.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y)))))) (neg.f64 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y)))))) (neg.f64 (+.f64 (+.f64 x (cos.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) (-.f64 x 1)) 3)) (+.f64 1 (-.f64 (pow.f64 (+.f64 (cos.f64 y) (-.f64 x 1)) 2) (+.f64 (cos.f64 y) (-.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) (-.f64 x 1)) 2)) (-.f64 1 (+.f64 (cos.f64 y) (-.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (cos.f64 y)) (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y)))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (+.f64 x (cos.f64 y)) 2) (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y)))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 y))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (cos.f64 y)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 y))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (cos.f64 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (sqrt.f64 (*.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (+.f64 x (cos.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 x (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 x (cos.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 x (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 x (+.f64 (cos.f64 y) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (cos.f64 y) (-.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 x) (+.f64 (cos.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 y) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x (cos.f64 y)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 y)) (pow.f64 (cbrt.f64 (cos.f64 y)) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x (cos.f64 y))) 2) (cbrt.f64 (+.f64 x (cos.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 2) (*.f64 (cbrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) (sqrt.f64 (+.f64 x (cos.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) (*.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (pow.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) 2) (+.f64 (+.f64 x (cos.f64 y)) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 3) (pow.f64 (cos.f64 y) 3)) (/.f64 1 (fma.f64 (cos.f64 y) (-.f64 (cos.f64 y) x) (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 3)) (/.f64 1 (fma.f64 (+.f64 x (cos.f64 y)) (+.f64 (cos.f64 y) (-.f64 x 1)) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 x (cos.f64 y))))) (/.f64 1 (+.f64 (+.f64 x (cos.f64 y)) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (/.f64 1 (-.f64 x (cos.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 (+.f64 x (cos.f64 y)) 2)) (/.f64 1 (-.f64 (-.f64 1 x) (cos.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) (-.f64 x 1))) 2) (cbrt.f64 (+.f64 (cos.f64 y) (-.f64 x 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2) (cbrt.f64 (+.f64 1 x)) (+.f64 (cos.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (cos.f64 y) (-.f64 x 1))) (sqrt.f64 (+.f64 (cos.f64 y) (-.f64 x 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 (+.f64 1 x)) (+.f64 (cos.f64 y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 x (+.f64 (cos.f64 y) 1))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 x (cos.f64 y))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 1) (-.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 1) 1)))))

simplify276.0ms (2.4%)

Algorithm
egg-herbie
Rules
3453×fma-def_binary64
726×sqr-pow_binary64
538×cube-prod_binary64
375×*-commutative_binary64
336×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031384
178384
2189384
3560384
41999384
53098384
63683384
73913384
84108384
94359384
104674384
115072384
125503384
135994384
146597384
156855384
167101384
177363384
187635384
197899384
Stop Event
node limit
Counts
240 → 212
Calls
Call 1
Inputs
(+.f64 1 (cos.f64 y))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
x
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
x
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
Outputs
(+.f64 1 (cos.f64 y))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
x
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
x
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 2 x)
(+.f64 x 2)
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) x))
(+.f64 x (fma.f64 -1/2 (*.f64 y y) 2))
(fma.f64 y (*.f64 y -1/2) (+.f64 x 2))
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 2 (fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 y (*.f64 y -1/2) 2))
(fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) (+.f64 x 2)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 2 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 2))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) 2)))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/2 (*.f64 y y) (fma.f64 -1/720 (pow.f64 y 6) 2)))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 y (*.f64 y -1/2) (fma.f64 -1/720 (pow.f64 y 6) 2)))
(+.f64 x (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) (fma.f64 -1/720 (pow.f64 y 6) 2)))
(+.f64 x (fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) (fma.f64 -1/720 (pow.f64 y 6) 2))))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(+.f64 1 (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (+.f64 1 x))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) x))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) x))
(+.f64 x (fma.f64 y (*.f64 y -1/2) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(fma.f64 y (*.f64 y -1/2) (+.f64 x (fma.f64 1/24 (pow.f64 y 4) 1)))
(+.f64 x (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) 1))
(+.f64 x (fma.f64 y (*.f64 y (fma.f64 y (*.f64 y 1/24) -1/2)) 1))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 1))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) 1)))
(+.f64 1 (fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) (fma.f64 -1/720 (pow.f64 y 6) x))))
(fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) (+.f64 1 (fma.f64 -1/720 (pow.f64 y 6) x)))
(fma.f64 y (*.f64 y -1/2) (fma.f64 1/24 (pow.f64 y 4) (+.f64 1 (fma.f64 -1/720 (pow.f64 y 6) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)

localize8.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (cos.f64 y) x)
Compiler

Compiled 11 to 5 computations (54.5% saved)

series3.0ms (0%)

Counts
1 → 7
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
(+.f64 (cos.f64 y) x)
0.0ms
y
@inf
(+.f64 (cos.f64 y) x)
0.0ms
y
@-inf
(+.f64 (cos.f64 y) x)
0.0ms
x
@-inf
(+.f64 (cos.f64 y) x)
0.0ms
x
@inf
(+.f64 (cos.f64 y) x)

rewrite68.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
612×pow1_binary64
569×add-log-exp_binary64
569×log1p-expm1-u_binary64
569×expm1-log1p-u_binary64
556×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
11086
215116
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (cos.f64 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (cos.f64 y) 2) (-.f64 (cos.f64 y) x)) (/.f64 (*.f64 x x) (-.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) (cbrt.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) (sqrt.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x (-.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (/.f64 1 (-.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x (-.f64 x (cos.f64 y)))) (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (cos.f64 y) x) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x (-.f64 x (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x (-.f64 x (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x))) (neg.f64 (-.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (-.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (cos.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (cos.f64 y))))))

simplify205.0ms (1.8%)

Algorithm
egg-herbie
Rules
2501×fma-def_binary64
726×sqr-pow_binary64
538×cube-prod_binary64
383×*-commutative_binary64
336×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02463
15763
213163
340063
4153363
5264363
6322863
7345463
8364963
9390063
10421563
11461463
12505063
13554663
14614963
15640563
16665163
17691363
18718763
19745163
Stop Event
node limit
Counts
40 → 42
Calls
Call 1
Inputs
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(cos.f64 y)
x
x
Outputs
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) x))
(fma.f64 y (*.f64 -1/2 y) (+.f64 1 x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 1 (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) x))
(fma.f64 1/24 (pow.f64 y 4) (fma.f64 y (*.f64 -1/2 y) (+.f64 1 x)))
(+.f64 1 (fma.f64 y (fma.f64 1/24 (pow.f64 y 3) (*.f64 -1/2 y)) x))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 1))
(+.f64 1 (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 1/24 (pow.f64 y 4) x))))
(cos.f64 y)
x
x

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
3.6b
(*.f64 (pow.f64 y 3) z)
6.4b
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
Compiler

Compiled 44 to 27 computations (38.6% saved)

series13.0ms (0.1%)

Counts
3 → 15
Calls

18 calls:

TimeVariablePointExpression
4.0ms
z
@inf
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
2.0ms
z
@0
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
1.0ms
y
@0
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
1.0ms
y
@inf
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
1.0ms
y
@-inf
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))

rewrite99.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
579×log-prod_binary64
484×fma-def_binary64
371×pow-prod-down_binary64
287×pow2_binary64
256×pow-unpow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01234
125931
2328230
Stop Event
node limit
Counts
3 → 140
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(*.f64 (pow.f64 y 3) z)
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))) (/.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36) (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) (pow.f64 (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) 2) (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) (sqrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36)) (/.f64 1 (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) (pow.f64 (*.f64 y z) 2)) (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3)))) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3)) (fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) (pow.f64 (*.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3)) (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 y z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36)) (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3))) (neg.f64 (fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36))) (neg.f64 (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36 (pow.f64 (*.f64 y z) 2)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) (pow.f64 (*.f64 y z) 2)) (fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216 (pow.f64 (*.f64 y z) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 y z (*.f64 -1/6 (*.f64 z (pow.f64 y 3)))) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) z) (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 y z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (neg.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 z -1) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (neg.f64 y) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) -1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 z (pow.f64 y 3)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 y 3)) 1/6 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6)) (pow.f64 (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6)) 2) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6)) 2) (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y z)) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (neg.f64 (cbrt.f64 (*.f64 y z))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 2) (*.f64 (*.f64 y (cbrt.f64 z)) 1/6) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 y (cbrt.f64 z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (sqrt.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (neg.f64 (sqrt.f64 (*.f64 y z))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (*.f64 y z)) -1) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 z) (pow.f64 y 3/2)) (*.f64 (*.f64 (sqrt.f64 z) (pow.f64 y 3/2)) 1/6) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 y) z (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (pow.f64 y 3)) z (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 z) y (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (*.f64 y z))) (sqrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2)) (cbrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 z) (pow.f64 y 3) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (pow.f64 (*.f64 y (cbrt.f64 z)) 2)) (*.f64 y (cbrt.f64 z)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (*.f64 (sqrt.f64 z) (pow.f64 y 3/2))) (*.f64 (sqrt.f64 z) (pow.f64 y 3/2)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/6 (pow.f64 y 3)) 1) z (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/6 (pow.f64 y 3)) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 1/6 (pow.f64 y 3)) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 z) y (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (*.f64 y z)) 2)) (cbrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (sqrt.f64 (*.f64 y z))) (sqrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) 1) z (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (pow.f64 y 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (pow.f64 y 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (pow.f64 y 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (pow.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (cbrt.f64 z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 z) (pow.f64 y 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 y z)) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (pow.f64 y 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (cbrt.f64 z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 z) (pow.f64 y 3/2))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 6) 1/36))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 1/6) z) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 y (cbrt.f64 z)) (cbrt.f64 1/6))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (*.f64 y (cbrt.f64 z)) 9) 1/216)) 1/3))))))

simplify126.0ms (1.1%)

Algorithm
egg-herbie
Rules
1327×fma-def_binary64
792×fma-neg_binary64
561×cancel-sign-sub-inv_binary64
472×unswap-sqr_binary64
405×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020194
149182
2136182
3442182
41446182
52864182
64437182
75201182
86113182
96241182
106371182
Stop Event
node limit
Counts
155 → 146
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
Outputs
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 (pow.f64 y 3) (*.f64 z 1/6))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 (pow.f64 y 3) (*.f64 z 1/6))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (+.f64 (*.f64 -1 y) (*.f64 1/6 (pow.f64 y 3))) z)
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) z))
(*.f64 z (fma.f64 -1 y (*.f64 1/6 (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
0.1b
(*.f64 z (sin.f64 y))
0.2b
(pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2)
10.1b
(sqrt.f64 (*.f64 z (sin.f64 y)))
Compiler

Compiled 36 to 13 computations (63.9% saved)

series27.0ms (0.2%)

Counts
3 → 18
Calls

18 calls:

TimeVariablePointExpression
3.0ms
y
@0
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
2.0ms
y
@0
(pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2)
2.0ms
z
@inf
(pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2)
2.0ms
z
@-inf
(pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2)
2.0ms
z
@0
(sqrt.f64 (*.f64 z (sin.f64 y)))

rewrite95.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
964×pow1_binary64
895×add-log-exp_binary64
894×log1p-expm1-u_binary64
894×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
121525
2245925
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 z (sin.f64 y)))
(pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2)
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 z (sin.f64 y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (sin.f64 y))) (cbrt.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))) (cbrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (sin.f64 y)) 1/4) (pow.f64 (*.f64 z (sin.f64 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 y)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2))) (sqrt.f64 (cbrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2)) 1/2) (pow.f64 (cbrt.f64 (*.f64 z (sin.f64 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (sin.f64 y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (sin.f64 y)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (sin.f64 y)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 z (sin.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (sin.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (sin.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) (sqrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (sin.f64 y))) (cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (sin.f64 y))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))) (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2)) (cbrt.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z z)) (*.f64 (cbrt.f64 z) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (sin.f64 y)) 2) (*.f64 (cbrt.f64 (sin.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 (sin.f64 y)) (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (sin.f64 y)) 1/4) (*.f64 (pow.f64 (*.f64 z (sin.f64 y)) 1/4) (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sin.f64 y)) (*.f64 (sqrt.f64 (sin.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) (pow.f64 (*.f64 z (sin.f64 y)) 1/4)) (pow.f64 (*.f64 z (sin.f64 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (pow.f64 (cbrt.f64 (sin.f64 y)) 2)) (cbrt.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (sqrt.f64 (sin.f64 y))) (sqrt.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) (cbrt.f64 (*.f64 z z))) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) (cbrt.f64 (*.f64 z (sin.f64 y)))) (cbrt.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) (sqrt.f64 z)) (sqrt.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (sin.f64 y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (sin.f64 y)) z (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 z) (sin.f64 y) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z (sin.f64 y)))) (sqrt.f64 (*.f64 z (sin.f64 y))) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (*.f64 z (neg.f64 (sin.f64 y))) 1 (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z (sin.f64 y)))) (cbrt.f64 (pow.f64 (*.f64 z (sin.f64 y)) 2)) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 (sin.f64 y))) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) (pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2) (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2)) (/.f64 1 (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (*.f64 z (sin.f64 y)))) (-.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y)))) (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y)) (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2)) (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (sin.f64 y)) 3))) (neg.f64 (+.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (sin.f64 y)) (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (pow.f64 (*.f64 z (sin.f64 y)) 2))) (neg.f64 (+.f64 (*.f64 z (sin.f64 y)) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 (*.f64 z (neg.f64 (sin.f64 y))) 3)) (+.f64 (pow.f64 (cos.f64 y) 2) (-.f64 (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y)))) (*.f64 (cos.f64 y) (*.f64 z (neg.f64 (sin.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 z (neg.f64 (sin.f64 y))) (*.f64 z (neg.f64 (sin.f64 y))))) (-.f64 (cos.f64 y) (*.f64 z (neg.f64 (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) (*.f64 z (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) (*.f64 z (neg.f64 (sin.f64 y))))))))

simplify43.0ms (0.4%)

Algorithm
egg-herbie
Rules
100×fma-def_binary64
56×fma-neg_binary64
29×cancel-sign-sub-inv_binary64
18×sub-neg_binary64
13×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08140
116140
227140
344140
463140
597140
6151140
7200140
8265140
9339140
10389140
11395140
Stop Event
saturated
Counts
108 → 94
Calls
Call 1
Inputs
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
1
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(cos.f64 y)
Outputs
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
(*.f64 z (sin.f64 y))
1
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(cos.f64 y)

eval205.0ms (1.8%)

Compiler

Compiled 10566 to 5062 computations (52.1% saved)

prune115.0ms (1%)

Pruning

22 alts after pruning (16 fresh and 6 done)

PrunedKeptTotal
New6097616
Fresh2911
Picked011
Done257
Total61322635
Error
0b
Counts
635 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
27.8b
(-.f64 (-.f64 (+.f64 1 (cos.f64 y)) 1) (*.f64 z (sin.f64 y)))
43.6b
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
56.8b
(*.f64 y (neg.f64 z))
17.1b
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
27.7b
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
35.4b
x
0.1b
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))
27.7b
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
38.4b
(pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)
44.4b
(cos.f64 y)
32.7b
(/.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))
28.1b
(pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)
18.9b
(fma.f64 (sin.f64 y) (neg.f64 z) x)
7.2b
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
18.9b
(-.f64 x (*.f64 z (sin.f64 y)))
46.2b
(*.f64 (sin.f64 y) (neg.f64 z))
18.8b
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
57.2b
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
17.0b
(+.f64 (cos.f64 y) x)
50.3b
1
21.5b
(-.f64 x (-.f64 (*.f64 y z) 1))
23.6b
(-.f64 x -1)
Compiler

Compiled 383 to 281 computations (26.6% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))
0.1b
(*.f64 z (sin.f64 y))
0.1b
(+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1)
0.4b
(+.f64 (cos.f64 y) 1)
Compiler

Compiled 47 to 24 computations (48.9% saved)

series5.0ms (0%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 (cos.f64 y) 1)
0.0ms
y
@-inf
(+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1)
0.0ms
x
@inf
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))
0.0ms
y
@inf
(+.f64 (cos.f64 y) 1)
0.0ms
z
@inf
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))

rewrite113.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
767×fma-def_binary64
682×log-prod_binary64
383×fma-neg_binary64
267×log1p-udef_binary64
265×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify87.0ms (0.8%)

Algorithm
egg-herbie
Rules
648×distribute-rgt-neg-in_binary64
620×cancel-sign-sub-inv_binary64
467×unswap-sqr_binary64
464×associate-*l*_binary64
361×fma-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
053725
1149720
2387716
31156710
43431708
57311708
Stop Event
node limit
Counts
330 → 289
Calls
Call 1
Inputs
2
(+.f64 2 (*.f64 -1/2 (pow.f64 y 2)))
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
Outputs
2
(+.f64 2 (*.f64 -1/2 (pow.f64 y 2)))
(+.f64 2 (*.f64 -1/2 (*.f64 y y)))
(fma.f64 -1/2 (*.f64 y y) 2)
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4))))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) (*.f64 1/24 (pow.f64 y 4))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) 2) (*.f64 1/24 (pow.f64 y 4)))
(fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) 2))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/24 (pow.f64 y 4)))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 2 (fma.f64 -1/2 (*.f64 y y) (*.f64 1/24 (pow.f64 y 4)))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (*.f64 1/24 (pow.f64 y 4))) (fma.f64 -1/720 (pow.f64 y 6) 2))
(fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) 2)))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(+.f64 1 (cos.f64 y))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) x))
(fma.f64 -1/2 (*.f64 y y) (+.f64 1 x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 1 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 1))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) 1)))
(+.f64 1 (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
x
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (fma.f64 -1 (*.f64 y z) x))
(+.f64 1 (-.f64 x (*.f64 y z)))
(+.f64 x (fma.f64 z (neg.f64 y) 1))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x)))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) x)))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) x) (*.f64 y z)))
(-.f64 (fma.f64 -1/2 (*.f64 y y) (+.f64 1 x)) (*.f64 y z))
(-.f64 (fma.f64 -1/2 (*.f64 y y) x) (fma.f64 y z -1))
(-.f64 x (fma.f64 y (+.f64 z (*.f64 y 1/2)) -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 3) z)) x))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/6 (*.f64 z (pow.f64 y 3)) x)) (-.f64 1 (*.f64 y z)))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) x)) (*.f64 y z)))
(-.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) x)) (fma.f64 y z -1))
(-.f64 (fma.f64 -1/2 (*.f64 y y) x) (fma.f64 z (-.f64 y (*.f64 1/6 (pow.f64 y 3))) -1))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(-.f64 (+.f64 (cos.f64 y) x) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (cos.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (+.f64 (cos.f64 y) x))
(+.f64 (cos.f64 y) (-.f64 x (*.f64 z (sin.f64 y))))
(+.f64 x (fma.f64 (neg.f64 z) (sin.f64 y) (cos.f64 y)))

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (-.f64 (*.f64 y z) 1))
0.0b
(-.f64 (*.f64 y z) 1)
Compiler

Compiled 22 to 10 computations (54.5% saved)

series5.0ms (0%)

Counts
2 → 42
Calls

15 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 x (-.f64 (*.f64 y z) 1))
0.0ms
y
@0
(-.f64 (*.f64 y z) 1)
0.0ms
y
@-inf
(-.f64 (*.f64 y z) 1)
0.0ms
y
@inf
(-.f64 (*.f64 y z) 1)
0.0ms
x
@-inf
(-.f64 x (-.f64 (*.f64 y z) 1))

rewrite70.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
985×pow1_binary64
916×add-log-exp_binary64
915×log1p-expm1-u_binary64
915×expm1-log1p-u_binary64
93×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
117713
2248513
Stop Event
node limit
Counts
2 → 75
Calls
Call 1
Inputs
(-.f64 (*.f64 y z) 1)
(-.f64 x (-.f64 (*.f64 y z) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z -1)) (pow.f64 (cbrt.f64 (fma.f64 y z -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z -1)) 2) (cbrt.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z -1)) (sqrt.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) -1) (/.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (fma.f64 y z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 2) -1) (/.f64 1 (fma.f64 y z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 y z)) 1) (-.f64 (sqrt.f64 (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (fma.f64 y z 1)) (+.f64 (pow.f64 (*.f64 y z) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 y z 1) (+.f64 (pow.f64 (*.f64 y z) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) -1) (+.f64 (pow.f64 (*.f64 y z) 2) (fma.f64 y z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) -1) (+.f64 (pow.f64 (*.f64 y z) 2) (-.f64 1 (*.f64 (*.f64 y z) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 2) -1) (fma.f64 y z 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 2) -1) (-.f64 (*.f64 y z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) -1)) (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (fma.f64 y z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) -1)) (neg.f64 (fma.f64 y z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (neg.f64 (fma.f64 y z -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (fma.f64 y z -1)) (fma.f64 (neg.f64 (fma.f64 y z -1)) 1 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (fma.f64 y z -1)) (fma.f64 (neg.f64 (cbrt.f64 (fma.f64 y z -1))) (pow.f64 (cbrt.f64 (fma.f64 y z -1)) 2) (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (fma.f64 y z -1)) (fma.f64 (neg.f64 (sqrt.f64 (fma.f64 y z -1))) (sqrt.f64 (fma.f64 y z -1)) (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (fma.f64 y z -1)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x (*.f64 y z)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (fma.f64 y z -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 x (fma.f64 y z -1))) (pow.f64 (cbrt.f64 (-.f64 x (fma.f64 y z -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 x (fma.f64 y z -1))) 2) (cbrt.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x (fma.f64 y z -1))) (sqrt.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y z -1) 3)) (/.f64 1 (fma.f64 x x (*.f64 (fma.f64 y z -1) (+.f64 (fma.f64 y z -1) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 y z -1) 2)) (/.f64 1 (+.f64 (fma.f64 y z -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (fma.f64 y z -1))) (-.f64 (sqrt.f64 x) (sqrt.f64 (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (fma.f64 y z -1) (+.f64 (fma.f64 y z -1) x))) (-.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y z -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 y z -1) x) (-.f64 (*.f64 x x) (pow.f64 (fma.f64 y z -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y z -1) 3)) (fma.f64 x x (*.f64 (fma.f64 y z -1) (+.f64 (fma.f64 y z -1) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 y z -1) 2)) (+.f64 (fma.f64 y z -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y z -1) 3))) (neg.f64 (fma.f64 x x (*.f64 (fma.f64 y z -1) (+.f64 (fma.f64 y z -1) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 y z -1) 2))) (neg.f64 (+.f64 (fma.f64 y z -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (neg.f64 (fma.f64 y z -1)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (neg.f64 (fma.f64 y z -1)) (neg.f64 (fma.f64 y z -1))) (*.f64 x (neg.f64 (fma.f64 y z -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (-.f64 x (*.f64 y z)) 3) 1) (+.f64 (*.f64 (-.f64 x (*.f64 y z)) (-.f64 x (*.f64 y z))) (-.f64 1 (*.f64 (-.f64 x (*.f64 y z)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (neg.f64 (fma.f64 y z -1)) (neg.f64 (fma.f64 y z -1)))) (-.f64 x (neg.f64 (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (-.f64 x (*.f64 y z)) (-.f64 x (*.f64 y z))) 1) (-.f64 (-.f64 x (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (fma.f64 y z -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 x (fma.f64 y z -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 x (fma.f64 y z -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 x (fma.f64 y z -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 x (fma.f64 y z -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 x (fma.f64 y z -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 x (fma.f64 y z -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 x (fma.f64 y z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (neg.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (neg.f64 (fma.f64 y z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (neg.f64 (fma.f64 y z -1)))))))

simplify37.0ms (0.3%)

Algorithm
egg-herbie
Rules
180×fma-def_binary64
147×fma-neg_binary64
58×cancel-sign-sub-inv_binary64
37×sub-neg_binary64
28×unsub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
013329
135329
259329
3101275
4138275
5232275
6372275
7484275
8617275
9746275
10761275
Stop Event
saturated
Counts
117 → 86
Calls
Call 1
Inputs
-1
(*.f64 y z)
(*.f64 y z)
-1
(*.f64 y z)
(*.f64 y z)
(-.f64 1 (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
x
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
x
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
Outputs
-1
(*.f64 y z)
(*.f64 y z)
-1
(*.f64 y z)
(*.f64 y z)
(-.f64 1 (*.f64 y z))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
x
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
x
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 x)
(-.f64 x -1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 x)
(-.f64 x -1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) x))
(-.f64 (+.f64 1 x) (*.f64 y z))
(+.f64 1 (fma.f64 (neg.f64 y) z x))
(+.f64 1 (fma.f64 z (neg.f64 y) x))
(-.f64 x (fma.f64 y z -1))

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (cos.f64 y) x)
0.1b
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
0.2b
(+.f64 1 (+.f64 (cos.f64 y) x))
Compiler

Compiled 26 to 12 computations (53.8% saved)

series3.0ms (0%)

Counts
2 → 31
Calls

12 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 1 (+.f64 (cos.f64 y) x))
0.0ms
y
@0
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
0.0ms
y
@inf
(+.f64 1 (+.f64 (cos.f64 y) x))
0.0ms
x
@inf
(+.f64 1 (+.f64 (cos.f64 y) x))
0.0ms
x
@0
(+.f64 1 (+.f64 (cos.f64 y) x))

rewrite84.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
844×prod-diff_binary64
562×unpow-prod-down_binary64
455×fma-def_binary64
357×log-prod_binary64
257×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0821
118515
2277815
Stop Event
node limit
Counts
2 → 192
Calls
Call 1
Inputs
(+.f64 1 (+.f64 (cos.f64 y) x))
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (cos.f64 y) x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (+.f64 (cos.f64 y) x))) (/.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) (-.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) (*.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) (pow.f64 (*.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (*.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (pow.f64 (*.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) (/.f64 1 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) (pow.f64 (/.f64 1 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2)) (/.f64 1 (-.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2)) (pow.f64 (/.f64 1 (-.f64 1 (+.f64 (cos.f64 y) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))) 2) 3) (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1) (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (+.f64 (cos.f64 y) x)) (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) (+.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) (-.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2)) (-.f64 1 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3))) (neg.f64 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2))) (neg.f64 (-.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 1 (cos.f64 y)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (+.f64 1 (cos.f64 y)) 2) (-.f64 (*.f64 x x) (*.f64 (+.f64 1 (cos.f64 y)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) 1) (+.f64 (+.f64 (cos.f64 y) x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 (cos.f64 y)) 2) (*.f64 x x)) (-.f64 (+.f64 1 (cos.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) 1) (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2)) 1) (-.f64 1 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1) (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (+.f64 (cos.f64 y) x)) (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 1 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (exp.f64 (+.f64 1 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (+.f64 1 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 1 (cos.f64 y))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 1 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (+.f64 (cos.f64 y) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (+.f64 1 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (cos.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (+.f64 (cos.f64 y) x) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 y) 1 (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (+.f64 1 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (cos.f64 y) x) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (+.f64 1 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (+.f64 1 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) (cbrt.f64 (+.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 y)) (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (+.f64 1 (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) (sqrt.f64 (+.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (+.f64 (cos.f64 y) x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (+.f64 (cos.f64 y) x) 2) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (/.f64 1 (-.f64 (cos.f64 y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (cos.f64 y)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)) 2) (cbrt.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (cos.f64 y))) 2) (cbrt.f64 (+.f64 1 (cos.f64 y))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)) (sqrt.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (cos.f64 y))) (sqrt.f64 (+.f64 1 (cos.f64 y))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (cos.f64 y) x)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (+.f64 (cos.f64 y) x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (+.f64 (+.f64 (cos.f64 y) x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (cos.f64 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 (cos.f64 y) x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (cos.f64 y)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 y) x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 y) x)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) (cbrt.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) (sqrt.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (pow.f64 (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (pow.f64 (/.f64 1 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (+.f64 (cos.f64 y) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x)))) (pow.f64 (/.f64 1 (+.f64 (+.f64 (cos.f64 y) x) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (/.f64 1 (-.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (pow.f64 (/.f64 1 (-.f64 (cos.f64 y) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (cos.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 y) x))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 y) x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) 1) (pow.f64 (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (cos.f64 y) x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 y) x))) 2) 3) (cbrt.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2)) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) (sqrt.f64 (+.f64 (cos.f64 y) x))) 1/3) (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2)) (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (cos.f64 y) x) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 (cos.f64 y) x) 2) (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (-.f64 1 (*.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (fma.f64 x x (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x)))) (+.f64 (+.f64 (cos.f64 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3))) (neg.f64 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x))) (neg.f64 (-.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x))))) (neg.f64 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x))))) (neg.f64 (+.f64 (+.f64 (cos.f64 y) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (+.f64 (+.f64 (cos.f64 y) x) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (+.f64 (+.f64 (cos.f64 y) x) -1) 2) (+.f64 (+.f64 (cos.f64 y) x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (+.f64 (+.f64 (cos.f64 y) x) -1) 2)) (-.f64 1 (+.f64 (+.f64 (cos.f64 y) x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (cos.f64 y) 2)) (-.f64 x (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (cos.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2)) (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (cos.f64 y) x) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2)) (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (+.f64 (cos.f64 y) x) 2) (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 y))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (cos.f64 y)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 y))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (cos.f64 y) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) (sqrt.f64 (*.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (+.f64 (cos.f64 y) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (cos.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 y) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (cos.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (cos.f64 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (+.f64 (cos.f64 y) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (+.f64 (cos.f64 y) x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (cos.f64 y)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 y) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (cos.f64 y) x) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 y) x)) 2) (cbrt.f64 (+.f64 (cos.f64 y) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 2) (*.f64 (cbrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (cos.f64 y)) (pow.f64 (cbrt.f64 (cos.f64 y)) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 y)) 2) (cbrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) (sqrt.f64 (+.f64 (cos.f64 y) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) (*.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 y)) (sqrt.f64 (cos.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 3 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (pow.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 2) (+.f64 (+.f64 (cos.f64 y) x) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (cos.f64 y) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (cos.f64 y)) (pow.f64 (cos.f64 y) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 3)) (/.f64 1 (fma.f64 (+.f64 (cos.f64 y) x) (+.f64 (+.f64 (cos.f64 y) x) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (cos.f64 y) x)))) (/.f64 1 (+.f64 (+.f64 (cos.f64 y) x) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (/.f64 1 (-.f64 (cos.f64 y) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 (+.f64 (cos.f64 y) x) 2)) (/.f64 1 (-.f64 1 (+.f64 (cos.f64 y) x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 (cos.f64 y) x) -1)) 2) (cbrt.f64 (+.f64 (+.f64 (cos.f64 y) x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (cos.f64 y))) 2) (cbrt.f64 (+.f64 1 (cos.f64 y))) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (+.f64 (cos.f64 y) x) -1)) (sqrt.f64 (+.f64 (+.f64 (cos.f64 y) x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (cos.f64 y))) (sqrt.f64 (+.f64 1 (cos.f64 y))) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 1 (+.f64 (cos.f64 y) x))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (cos.f64 y) x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) 1) (-.f64 (sqrt.f64 (+.f64 (cos.f64 y) x)) 1) 1)))))

simplify237.0ms (2.1%)

Algorithm
egg-herbie
Rules
3453×fma-def_binary64
726×sqr-pow_binary64
538×cube-prod_binary64
375×*-commutative_binary64
336×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030231
175231
2183231
3559231
41997231
53088231
63673231
73899231
84094231
94345231
104660231
115059231
125497231
135987231
146588231
156844231
167092231
177352231
187620231
197884231
Stop Event
node limit
Counts
223 → 210
Calls
Call 1
Inputs
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 1 (cos.f64 y))
x
x
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
x
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
Outputs
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) x))
(fma.f64 y (*.f64 -1/2 y) (+.f64 2 x))
(+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)))
(+.f64 (fma.f64 -1/2 (*.f64 y y) x) (fma.f64 1/24 (pow.f64 y 4) 2))
(fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) (+.f64 2 x))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 2 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 2 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x))))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 2))
(+.f64 2 (fma.f64 -1/2 (*.f64 y y) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 1/24 (pow.f64 y 4) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 (fma.f64 -1/2 (*.f64 y y) x) (fma.f64 1/24 (pow.f64 y 4) 2)))
(fma.f64 -1/720 (pow.f64 y 6) (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) (+.f64 2 x)))
(fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) (fma.f64 -1/720 (pow.f64 y 6) (+.f64 2 x))))
(+.f64 1 (cos.f64 y))
x
x
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) x))
(+.f64 (fma.f64 -1/2 (*.f64 y y) x) 1)
(+.f64 x (fma.f64 y (*.f64 -1/2 y) 1))
(+.f64 x (fma.f64 -1/2 (*.f64 y y) 1))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x)))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) 1)
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 y (*.f64 -1/2 y) 1))
(+.f64 x (fma.f64 (*.f64 y y) (fma.f64 (*.f64 y y) 1/24 -1/2) 1))
(+.f64 x (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) 1))
(+.f64 (*.f64 -1/720 (pow.f64 y 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (+.f64 (*.f64 1/24 (pow.f64 y 4)) x))))
(fma.f64 -1/720 (pow.f64 y 6) (+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) 1))
(+.f64 (fma.f64 -1/2 (*.f64 y y) (fma.f64 1/24 (pow.f64 y 4) x)) (fma.f64 -1/720 (pow.f64 y 6) 1))
(+.f64 (fma.f64 1/24 (pow.f64 y 4) x) (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 y (*.f64 -1/2 y) 1)))
(+.f64 x (fma.f64 -1/720 (pow.f64 y 6) (fma.f64 (*.f64 y y) (fma.f64 (*.f64 y y) 1/24 -1/2) 1)))
(+.f64 (fma.f64 -1/2 (*.f64 y y) x) (fma.f64 1/24 (pow.f64 y 4) (fma.f64 -1/720 (pow.f64 y 6) 1)))
(+.f64 x (fma.f64 (*.f64 y y) (fma.f64 y (*.f64 y 1/24) -1/2) (fma.f64 -1/720 (pow.f64 y 6) 1)))
(+.f64 x (fma.f64 y (*.f64 y (fma.f64 y (*.f64 y 1/24) -1/2)) (fma.f64 -1/720 (pow.f64 y 6) 1)))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
x
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
x
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))
(+.f64 (cos.f64 y) x)
(+.f64 x (cos.f64 y))

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(*.f64 z 1/6)
3.6b
(*.f64 (pow.f64 y 3) (*.f64 z 1/6))
6.4b
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
Compiler

Compiled 34 to 21 computations (38.2% saved)

series6.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
0.0ms
z
@inf
(*.f64 z 1/6)
0.0ms
z
@-inf
(*.f64 z 1/6)
0.0ms
y
@0
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
0.0ms
y
@inf
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))

rewrite104.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
555×log-prod_binary64
441×fma-def_binary64
382×pow-prod-down_binary64
280×pow2_binary64
218×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01030
123230
2292630
Stop Event
node limit
Counts
3 → 243
Calls
Call 1
Inputs
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
(*.f64 (pow.f64 y 3) (*.f64 z 1/6))
(*.f64 z 1/6)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 y)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6)) (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3))) (neg.f64 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2))) (neg.f64 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 z 1/6) 3) (pow.f64 y 9) (pow.f64 (*.f64 z (neg.f64 y)) 3)) (fma.f64 (*.f64 (*.f64 z z) 1/36) (pow.f64 y 6) (-.f64 (pow.f64 (*.f64 z (neg.f64 y)) 2) (*.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 3) (pow.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 3)) (+.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 2) (-.f64 (pow.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 2) (*.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 z (neg.f64 y)) 2)) (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 2) (pow.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 2)) (-.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6)) (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (pow.f64 (exp.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z)) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) (pow.f64 (exp.f64 z) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))) (exp.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) (exp.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) (+.f64 1 (expm1.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (neg.f64 y)) (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (neg.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 y y) (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 y y) (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 y y) (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (*.f64 y y) (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (neg.f64 y) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 1/6 (pow.f64 y 3)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 (pow.f64 y 3) z) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 (pow.f64 y 3) z) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 (pow.f64 y 3) z) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 (*.f64 (pow.f64 y 3) z) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 1/6) (pow.f64 y 3) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 1/6) (pow.f64 y 3) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 1/6) (pow.f64 y 3) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 1/6) (pow.f64 y 3) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1 (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1 (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1 (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1 (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1 (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1 (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1 (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) 1 (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y (neg.f64 z) (*.f64 y z)) (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (neg.f64 y)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 y (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 y (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 y (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 y (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 2) (*.f64 y (cbrt.f64 (*.f64 z 1/6))) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (neg.f64 (cbrt.f64 (*.f64 y z))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) 2) (cbrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2) (*.f64 (cbrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2) (*.f64 (cbrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2) (*.f64 (cbrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2) (*.f64 (cbrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (neg.f64 (sqrt.f64 (*.f64 y z))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z 1/6)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z 1/6)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z 1/6)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z 1/6)) (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 z) y (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) (pow.f64 (*.f64 y z) 3)) (/.f64 1 (fma.f64 (*.f64 y z) (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z)) (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) (pow.f64 (*.f64 y z) 2)) (/.f64 1 (fma.f64 (pow.f64 y 3) (*.f64 z 1/6) (*.f64 y z))) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (*.f64 (pow.f64 y 3/2) (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (*.f64 (pow.f64 y 3/2) (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (*.f64 (pow.f64 y 3/2) (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (*.f64 (pow.f64 y 3/2) (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 y) z (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) z) 1/6 (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) z) 1/6 (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) z) 1/6 (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) z) 1/6 (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (neg.f64 y))) 2) (cbrt.f64 (*.f64 z (neg.f64 y))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) 2) (cbrt.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (neg.f64 y))) (sqrt.f64 (*.f64 z (neg.f64 y))) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) (sqrt.f64 (fma.f64 y (neg.f64 z) (*.f64 y z))) (-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (*.f64 y z))) (sqrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 y z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))) (fma.f64 y (neg.f64 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))) (fma.f64 (*.f64 z (neg.f64 y)) 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))) (*.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2) (sqrt.f64 (*.f64 y z))) (-.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) (sqrt.f64 (*.f64 y z))) (+.f64 (fma.f64 y (neg.f64 z) (*.f64 y z)) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2)) (cbrt.f64 (*.f64 y z)) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) 1/6) z (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) 1/6) z (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) 1/6) z (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) 1/6) z (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2)) (cbrt.f64 (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2)) (cbrt.f64 (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2)) (cbrt.f64 (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (pow.f64 (cbrt.f64 (*.f64 z 1/6)) 2)) (cbrt.f64 (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (sqrt.f64 (*.f64 z 1/6))) (sqrt.f64 (*.f64 z 1/6)) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (sqrt.f64 (*.f64 z 1/6))) (sqrt.f64 (*.f64 z 1/6)) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (sqrt.f64 (*.f64 z 1/6))) (sqrt.f64 (*.f64 z 1/6)) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 y 3) (sqrt.f64 (*.f64 z 1/6))) (sqrt.f64 (*.f64 z 1/6)) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) y) (*.f64 y y) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) y) (*.f64 y y) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) y) (*.f64 y y) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) y) (*.f64 y y) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (*.f64 y y)) y (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (*.f64 y y)) y (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (*.f64 y y)) y (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (*.f64 y y)) y (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (pow.f64 y 3/2)) (pow.f64 y 3/2) (*.f64 z (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (pow.f64 y 3/2)) (pow.f64 y 3/2) (*.f64 (*.f64 z (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (pow.f64 y 3/2)) (pow.f64 y 3/2) (fma.f64 y (neg.f64 z) (fma.f64 y (neg.f64 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z 1/6) (pow.f64 y 3/2)) (pow.f64 y 3/2) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 y (neg.f64 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) 1) z (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (cbrt.f64 (*.f64 z z))) (cbrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/6) (*.f64 (pow.f64 y 3) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 z 1/6)) (pow.f64 y 3/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (cbrt.f64 (*.f64 z 1/6))) 9)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6))) 3) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 z) 1/6)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) 1/6))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z 1/6))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 z z) 1/36) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z 1/6) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z 1/6)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z 1/6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 z z) 1/36))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z 1/6)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 z 1/6))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 z 1/6))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 z 1/6))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 z 1/6)) 1) 1))))))

simplify140.0ms (1.2%)

Algorithm
egg-herbie
Rules
1083×fma-def_binary64
881×fma-neg_binary64
506×unswap-sqr_binary64
402×distribute-rgt-neg-in_binary64
395×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022671
161587
2155587
3608587
41645587
53361587
64161587
74854587
85419587
96496587
107008587
Stop Event
node limit
Counts
303 → 253
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
(*.f64 1/6 z)
Outputs
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 (-.f64 (*.f64 1/6 (pow.f64 y 3)) y) z)
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1 y)) z))
(fma.f64 -1 (*.f64 y z) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))
(*.f64 z (-.f64 (*.f64 1/6 (pow.f64 y 3)) y))
(*.f64 z (fma.f64 1/6 (pow.f64 y 3) (neg.f64 y)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 (*.f64 (pow.f64 y 3) z))
(*.f64 1/6 (*.f64 z (pow.f64 y 3)))
(*.f64 z (*.f64 1/6 (pow.f64 y 3)))
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)
(*.f64 1/6 z)
(*.f64 z 1/6)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
Compiler

Compiled 18 to 7 computations (61.1% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@0
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
0.0ms
y
@inf
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
0.0ms
z
@inf
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
0.0ms
y
@-inf
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
0.0ms
z
@-inf
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))

rewrite58.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
598×pow1_binary64
547×add-log-exp_binary64
546×log1p-expm1-u_binary64
546×expm1-log1p-u_binary64
534×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0711
11409
217159
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 y) (*.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 y) z) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sin.f64 y) z) 1) (cos.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 (sin.f64 y) z (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sin.f64 y) z (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (sin.f64 y) z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) 2) (cbrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) (sqrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 y) z) 3) (pow.f64 (cos.f64 y) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z)) (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 (*.f64 (sin.f64 y) z) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sin.f64 y) z) (*.f64 (sin.f64 y) z)) (pow.f64 (cos.f64 y) 2)) (-.f64 (*.f64 (sin.f64 y) z) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (sin.f64 y) z (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sin.f64 y) z (cos.f64 y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (sin.f64 y) z (cos.f64 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (sin.f64 y) z (cos.f64 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (sin.f64 y) z (cos.f64 y))))))))

simplify98.0ms (0.9%)

Algorithm
egg-herbie
Rules
619×distribute-rgt-neg-in_binary64
541×distribute-lft-neg-in_binary64
471×sub-neg_binary64
376×cancel-sign-sub-inv_binary64
357×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027277
169256
2169250
3501246
41662246
53777246
66287246
77536246
Stop Event
node limit
Counts
45 → 33
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(cos.f64 y)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
Outputs
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (neg.f64 (*.f64 y z)))
(-.f64 1 (*.f64 y z))
(fma.f64 y (neg.f64 z) 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1/2 (pow.f64 y 2))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (*.f64 -1/2 (*.f64 y y))))
(+.f64 1 (-.f64 (*.f64 -1/2 (*.f64 y y)) (*.f64 y z)))
(+.f64 1 (*.f64 y (-.f64 (*.f64 y -1/2) z)))
(fma.f64 y (fma.f64 y -1/2 (neg.f64 z)) 1)
(fma.f64 y (-.f64 (*.f64 y -1/2) z) 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 -1/2 (pow.f64 y 2)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))))
(+.f64 1 (fma.f64 -1 (*.f64 y z) (fma.f64 -1/2 (*.f64 y y) (*.f64 1/6 (*.f64 z (pow.f64 y 3))))))
(+.f64 1 (-.f64 (fma.f64 -1/2 (*.f64 y y) (*.f64 z (*.f64 1/6 (pow.f64 y 3)))) (*.f64 y z)))
(+.f64 (*.f64 y (-.f64 (*.f64 y -1/2) z)) (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) 1))
(fma.f64 y (fma.f64 y -1/2 (neg.f64 z)) (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) 1))
(fma.f64 y (-.f64 (*.f64 y -1/2) z) (fma.f64 z (*.f64 1/6 (pow.f64 y 3)) 1))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(cos.f64 y)
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(*.f64 -1 (*.f64 z (sin.f64 y)))
(neg.f64 (*.f64 z (sin.f64 y)))
(*.f64 z (neg.f64 (sin.f64 y)))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))
(+.f64 (*.f64 -1 (*.f64 z (sin.f64 y))) (cos.f64 y))
(fma.f64 -1 (*.f64 z (sin.f64 y)) (cos.f64 y))
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(fma.f64 z (neg.f64 (sin.f64 y)) (cos.f64 y))

eval293.0ms (2.6%)

Compiler

Compiled 16544 to 7795 computations (52.9% saved)

prune173.0ms (1.5%)

Pruning

24 alts after pruning (16 fresh and 8 done)

PrunedKeptTotal
New9357942
Fresh2911
Picked011
Done3710
Total94024964
Error
0b
Counts
964 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
27.8b
(-.f64 (-.f64 (+.f64 1 (cos.f64 y)) 1) (*.f64 z (sin.f64 y)))
43.6b
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
35.2b
(-.f64 x 1)
18.9b
(-.f64 x (*.f64 z (sin.f64 y)))
0.1b
(+.f64 x (+.f64 (+.f64 (cos.f64 y) 1) (-.f64 -1 (*.f64 z (sin.f64 y)))))
27.7b
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
35.4b
x
38.4b
(pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)
44.4b
(cos.f64 y)
28.1b
(pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)
18.9b
(fma.f64 (sin.f64 y) (neg.f64 z) x)
45.2b
(-.f64 1 (*.f64 y z))
46.2b
(*.f64 (sin.f64 y) (neg.f64 z))
7.2b
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
18.8b
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
33.1b
(-.f64 x (*.f64 y z))
57.2b
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
17.0b
(+.f64 (cos.f64 y) x)
50.3b
1
44.4b
(-.f64 (+.f64 1 (cos.f64 y)) 1)
56.8b
(*.f64 y (neg.f64 z))
27.7b
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
17.1b
(-.f64 (fma.f64 (+.f64 1 (cos.f64 y)) 1 x) 1)
23.6b
(-.f64 x -1)
Compiler

Compiled 227 to 171 computations (24.7% saved)

regimes122.0ms (1.1%)

Counts
44 → 1
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (cos.f64 y)) 1)
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 (sin.f64 y) (neg.f64 z) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (fma.f64 (+.f64 1 (cos.f64 y)) 1 x) 1)
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (-.f64 (+.f64 1 (cos.f64 y)) 1) (*.f64 z (sin.f64 y)))
(+.f64 x (+.f64 (+.f64 (cos.f64 y) 1) (-.f64 -1 (*.f64 z (sin.f64 y)))))
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))
(-.f64 (-.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
(-.f64 x (fma.f64 z (sin.f64 y) (neg.f64 (cos.f64 y))))
(/.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x))
(pow.f64 (sqrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 2)
(pow.f64 (cbrt.f64 (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))) 3)
(-.f64 (cos.f64 y) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
(pow.f64 (cbrt.f64 (+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))) 3)
(-.f64 (pow.f64 (sqrt.f64 (+.f64 x (cos.f64 y))) 2) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (pow.f64 (sqrt.f64 (*.f64 z (sin.f64 y))) 2))
(pow.f64 (sqrt.f64 (+.f64 x (-.f64 (cos.f64 y) (*.f64 z (sin.f64 y))))) 2)
(-.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 y) 2) (*.f64 x x)) (-.f64 (cos.f64 y) x)) (*.f64 z (sin.f64 y)))
Outputs
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
Calls

5 calls:

25.0ms
y
23.0ms
x
21.0ms
z
20.0ms
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
20.0ms
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
0.0b1(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Compiler

Compiled 390 to 158 computations (59.5% saved)

regimes114.0ms (1%)

Counts
33 → 1
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (cos.f64 y)) 1)
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 (sin.f64 y) (neg.f64 z) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (fma.f64 (+.f64 1 (cos.f64 y)) 1 x) 1)
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (-.f64 (+.f64 1 (cos.f64 y)) 1) (*.f64 z (sin.f64 y)))
(+.f64 x (+.f64 (+.f64 (cos.f64 y) 1) (-.f64 -1 (*.f64 z (sin.f64 y)))))
(-.f64 (+.f64 (+.f64 x (+.f64 (cos.f64 y) 1)) -1) (*.f64 z (sin.f64 y)))
(-.f64 (-.f64 (+.f64 1 (+.f64 x (cos.f64 y))) 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 y 3) z)) (*.f64 y z)))
(fma.f64 (sin.f64 y) (neg.f64 z) (cos.f64 y))
Outputs
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Calls

4 calls:

31.0ms
z
28.0ms
y
25.0ms
x
20.0ms
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
Compiler

Compiled 251 to 111 computations (55.8% saved)

regimes119.0ms (1%)

Counts
26 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (cos.f64 y)) 1)
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(-.f64 (*.f64 (pow.f64 y 3) (*.f64 z 1/6)) (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 1/6 (*.f64 (pow.f64 y 3) z)))
(fma.f64 (sin.f64 y) (neg.f64 z) x)
(-.f64 (cos.f64 y) (*.f64 z (sin.f64 y)))
(-.f64 (fma.f64 (+.f64 1 (cos.f64 y)) 1 x) 1)
Outputs
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) x)
(-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))
Calls

3 calls:

40.0ms
z
36.0ms
y
35.0ms
x
Results
ErrorSegmentsBranch
0.7b3x
5.8b3y
0.6b3z
Compiler

Compiled 157 to 71 computations (54.8% saved)

bsearch92.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
2.4691728910638e-47
7.35716210414995e-39
46.0ms
-6657819.89257601
-0.09307033373073768
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes104.0ms (0.9%)

Counts
19 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (cos.f64 y)) 1)
(-.f64 x (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 1 (+.f64 (cos.f64 y) x)) 1)
(-.f64 (-.f64 x 1) (*.f64 z (sin.f64 y)))
Outputs
(-.f64 x (*.f64 z (sin.f64 y)))
(+.f64 (cos.f64 y) x)
(-.f64 x (*.f64 z (sin.f64 y)))
Calls

3 calls:

44.0ms
x
28.0ms
z
28.0ms
y
Results
ErrorSegmentsBranch
10.7b5x
7.2b3y
4.2b3z
Compiler

Compiled 95 to 43 computations (54.7% saved)

bsearch94.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
1.1276020500820164e-10
16672.31940970942
48.0ms
-4.980723565132105e+117
-1.150609648227196e+115
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes98.0ms (0.9%)

Counts
14 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
Outputs
(*.f64 (sin.f64 y) (neg.f64 z))
(+.f64 (cos.f64 y) x)
(*.f64 (sin.f64 y) (neg.f64 z))
Calls

3 calls:

40.0ms
y
31.0ms
z
23.0ms
x
Results
ErrorSegmentsBranch
15.6b3x
10.0b5y
8.8b3z
Compiler

Compiled 61 to 30 computations (50.8% saved)

bsearch99.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
5.607587977229177e+89
7.815561689556576e+93
52.0ms
-1.2582800421291595e+194
-1.8765825310190365e+193
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes56.0ms (0.5%)

Counts
13 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
(+.f64 (cos.f64 y) x)
(+.f64 (cos.f64 y) x)
Outputs
(+.f64 (cos.f64 y) x)
(-.f64 x (-.f64 (*.f64 y z) 1))
(+.f64 (cos.f64 y) x)
Calls

3 calls:

23.0ms
y
22.0ms
z
8.0ms
x
Results
ErrorSegmentsBranch
17.0b1x
11.5b3y
12.7b3z
Compiler

Compiled 56 to 28 computations (50% saved)

bsearch74.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
35.0ms
389.6858559397786
516198.71697883616
38.0ms
-10604636.769083364
-5.025292739923839e-8
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes62.0ms (0.5%)

Counts
11 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
(cos.f64 y)
Outputs
(-.f64 x -1)
(cos.f64 y)
(-.f64 x -1)
Calls

3 calls:

21.0ms
z
20.0ms
x
19.0ms
y
Results
ErrorSegmentsBranch
17.7b3x
17.8b3y
19.2b3z
Compiler

Compiled 48 to 27 computations (43.8% saved)

bsearch109.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
54.0ms
3.8135462907295645e-7
3.0179829716806413e-6
56.0ms
-0.9157326639427598
-1.3719448422663253e-5
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes51.0ms (0.4%)

Counts
10 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
(-.f64 x (-.f64 (*.f64 y z) 1))
Outputs
(-.f64 x -1)
(-.f64 x (-.f64 (*.f64 y z) 1))
(-.f64 x 1)
Calls

3 calls:

19.0ms
z
18.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
19.9b2x
17.8b3y
19.2b3z
Compiler

Compiled 46 to 26 computations (43.5% saved)

bsearch76.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
4.754348398261506e+19
1.1475448784377746e+20
38.0ms
-2.3562927529405907e+47
-6.057413174939652e+46
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes83.0ms (0.7%)

Counts
9 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
(-.f64 1 (*.f64 y z))
(-.f64 x (*.f64 y z))
Outputs
x
(-.f64 1 (*.f64 y z))
(-.f64 x -1)
Calls

3 calls:

45.0ms
x
19.0ms
z
16.0ms
y
Results
ErrorSegmentsBranch
19.4b3x
22.4b3y
19.8b3z
Compiler

Compiled 39 to 23 computations (41% saved)

bsearch240.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
57.0ms
7.371067309490128e-25
1.0100910341136335e-23
183.0ms
-23171205789086.324
-116694869652.3713
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes25.0ms (0.2%)

Counts
7 → 2
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
(*.f64 y (neg.f64 z))
Outputs
(-.f64 x -1)
(*.f64 y (neg.f64 z))
Calls

3 calls:

10.0ms
z
6.0ms
y
5.0ms
x
Results
ErrorSegmentsBranch
23.6b1x
23.6b1y
22.2b2z
Compiler

Compiled 29 to 19 computations (34.5% saved)

bsearch54.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
54.0ms
1.0049206363290624e+161
1.7074349833041614e+168
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes20.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
(-.f64 x -1)
Outputs
(-.f64 x -1)
Calls

3 calls:

7.0ms
x
6.0ms
z
5.0ms
y
Results
ErrorSegmentsBranch
23.6b1x
23.6b1y
23.6b1z
Compiler

Compiled 25 to 17 computations (32% saved)

regimes59.0ms (0.5%)

Counts
5 → 3
Calls
Call 1
Inputs
x
1
x
x
(-.f64 x 1)
Outputs
(-.f64 x 1)
1
x
Calls

3 calls:

25.0ms
y
21.0ms
z
12.0ms
x
Results
ErrorSegmentsBranch
23.8b3x
32.7b5y
32.3b5z
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch131.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
60.0ms
3.0179829716806413e-6
3256042878430180.0
71.0ms
-2.2602511433546637e-32
-3.285534125785446e-38
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes46.0ms (0.4%)

Accuracy

Total -38.2b remaining (-160.5%)

Threshold costs -38.2b (-160.5%)

Counts
4 → 3
Calls
Call 1
Inputs
x
1
x
x
Outputs
x
1
x
Calls

3 calls:

21.0ms
z
13.0ms
y
10.0ms
x
Results
ErrorSegmentsBranch
23.8b3x
34.0b3y
32.6b5z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch131.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
68.0ms
3.0179829716806413e-6
3256042878430180.0
64.0ms
-1.3719448422663253e-5
-9.022991087177669e-7
Compiler

Compiled 18 to 13 computations (27.8% saved)

simplify25.0ms (0.2%)

Algorithm
egg-herbie
Rules
15×+-commutative_binary64
14×sub-neg_binary64
10×*-commutative_binary64
cancel-sign-sub-inv_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
080305
1116305
2141305
3152305
4158305
5159305
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(if (<=.f64 z -28595118701272196/4294967296) (-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y))) (if (<=.f64 z 2539397028162163/102844034832575377634685573909834406561420991602098741459288064) (+.f64 (cos.f64 y) x) (-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))))
(if (<=.f64 z -4980723565132104754977652328847375021999193748396128642824125916412043948404941626483065939425215092827653402257260544) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 8933783847531563008/79228162514264337593543950336) (+.f64 (cos.f64 y) x) (-.f64 x (*.f64 z (sin.f64 y)))))
(if (<=.f64 z -125828004212915952570263062973702402236387111893985155572629514562372307279862372053018601530541638606904240326818210697717717475065874950302935934242527248941540609085269224322426471763517898752) (*.f64 (sin.f64 y) (neg.f64 z)) (if (<=.f64 z 560758797722917748337295852289033743433762542210842701303575453140629549718678216384708608) (+.f64 (cos.f64 y) x) (*.f64 (sin.f64 y) (neg.f64 z))))
(if (<=.f64 y -45546568109172152/4294967296) (+.f64 (cos.f64 y) x) (if (<=.f64 y 6855426076570077/17592186044416) (-.f64 x (-.f64 (*.f64 y z) 1)) (+.f64 (cos.f64 y) x)))
(if (<=.f64 x -16892286091688364032/18446744073709551616) (-.f64 x -1) (if (<=.f64 x 3601792636842631/9444732965739290427392) (cos.f64 y) (-.f64 x -1)))
(if (<=.f64 y -235629275294059071743963272361426721135690514432) (-.f64 x -1) (if (<=.f64 y 24926478130277284828938240/524288) (-.f64 x (-.f64 (*.f64 y z) 1)) (-.f64 x 1)))
(if (<=.f64 x -5931828682006099/256) x (if (<=.f64 x 4013190769290967/5444517870735015415413993718908291383296) (-.f64 1 (*.f64 y z)) (-.f64 x -1)))
(if (<=.f64 z 100492063632906235717942649458029805933603418611694608541746315269859918506372342240998095059672497547926900720325049285304783821974241624539489500199077562810368) (-.f64 x -1) (*.f64 y (neg.f64 z)))
(-.f64 x -1)
(if (<=.f64 x -33033607467918864/1461501637330902918203684832716283019655932542976) (-.f64 x 1) (if (<=.f64 x 7126010815667995/2361183241434822606848) 1 x))
(if (<=.f64 x -8098532924330471/590295810358705651712) x (if (<=.f64 x 7126010815667995/2361183241434822606848) 1 x))
x
Outputs
(fma.f64 (sin.f64 y) (neg.f64 z) (+.f64 x (cos.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 z (sin.f64 y)))
(-.f64 (+.f64 x (cos.f64 y)) (*.f64 (sin.f64 y) z))
(if (<=.f64 z -28595118701272196/4294967296) (-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y))) (if (<=.f64 z 2539397028162163/102844034832575377634685573909834406561420991602098741459288064) (+.f64 (cos.f64 y) x) (-.f64 (+.f64 x 1) (*.f64 z (sin.f64 y)))))
(if (<=.f64 z -7148779675318049/1073741824) (-.f64 (+.f64 x 1) (*.f64 (sin.f64 y) z)) (if (<=.f64 z 2539397028162163/102844034832575377634685573909834406561420991602098741459288064) (+.f64 x (cos.f64 y)) (-.f64 (+.f64 x 1) (*.f64 (sin.f64 y) z))))
(if (<=.f64 z -4980723565132104754977652328847375021999193748396128642824125916412043948404941626483065939425215092827653402257260544) (-.f64 x (*.f64 z (sin.f64 y))) (if (<=.f64 z 8933783847531563008/79228162514264337593543950336) (+.f64 (cos.f64 y) x) (-.f64 x (*.f64 z (sin.f64 y)))))
(if (<=.f64 z -4980723565132104754977652328847375021999193748396128642824125916412043948404941626483065939425215092827653402257260544) (-.f64 x (*.f64 (sin.f64 y) z)) (if (<=.f64 z 4362199144302521/38685626227668133590597632) (+.f64 x (cos.f64 y)) (-.f64 x (*.f64 (sin.f64 y) z))))
(if (<=.f64 z -125828004212915952570263062973702402236387111893985155572629514562372307279862372053018601530541638606904240326818210697717717475065874950302935934242527248941540609085269224322426471763517898752) (*.f64 (sin.f64 y) (neg.f64 z)) (if (<=.f64 z 560758797722917748337295852289033743433762542210842701303575453140629549718678216384708608) (+.f64 (cos.f64 y) x) (*.f64 (sin.f64 y) (neg.f64 z))))
(if (<=.f64 z -125828004212915952570263062973702402236387111893985155572629514562372307279862372053018601530541638606904240326818210697717717475065874950302935934242527248941540609085269224322426471763517898752) (*.f64 (sin.f64 y) (neg.f64 z)) (if (<=.f64 z 560758797722917748337295852289033743433762542210842701303575453140629549718678216384708608) (+.f64 x (cos.f64 y)) (*.f64 (sin.f64 y) (neg.f64 z))))
(if (<=.f64 z -125828004212915952570263062973702402236387111893985155572629514562372307279862372053018601530541638606904240326818210697717717475065874950302935934242527248941540609085269224322426471763517898752) (*.f64 z (neg.f64 (sin.f64 y))) (if (<=.f64 z 560758797722917748337295852289033743433762542210842701303575453140629549718678216384708608) (+.f64 x (cos.f64 y)) (*.f64 z (neg.f64 (sin.f64 y)))))
(if (<=.f64 y -45546568109172152/4294967296) (+.f64 (cos.f64 y) x) (if (<=.f64 y 6855426076570077/17592186044416) (-.f64 x (-.f64 (*.f64 y z) 1)) (+.f64 (cos.f64 y) x)))
(if (<=.f64 y -5693321013646519/536870912) (+.f64 x (cos.f64 y)) (if (<=.f64 y 6855426076570077/17592186044416) (-.f64 x (+.f64 (*.f64 y z) -1)) (+.f64 x (cos.f64 y))))
(if (<=.f64 x -16892286091688364032/18446744073709551616) (-.f64 x -1) (if (<=.f64 x 3601792636842631/9444732965739290427392) (cos.f64 y) (-.f64 x -1)))
(if (<=.f64 x -8248186568207209/9007199254740992) (+.f64 x 1) (if (<=.f64 x 3601792636842631/9444732965739290427392) (cos.f64 y) (+.f64 x 1)))
(if (<=.f64 y -235629275294059071743963272361426721135690514432) (-.f64 x -1) (if (<=.f64 y 24926478130277284828938240/524288) (-.f64 x (-.f64 (*.f64 y z) 1)) (-.f64 x 1)))
(if (<=.f64 y -235629275294059071743963272361426721135690514432) (+.f64 x 1) (if (<=.f64 y 47543483982615060480) (-.f64 x (+.f64 (*.f64 y z) -1)) (+.f64 x -1)))
(if (<=.f64 x -5931828682006099/256) x (if (<=.f64 x 4013190769290967/5444517870735015415413993718908291383296) (-.f64 1 (*.f64 y z)) (-.f64 x -1)))
(if (<=.f64 x -5931828682006099/256) x (if (<=.f64 x 4013190769290967/5444517870735015415413993718908291383296) (-.f64 1 (*.f64 y z)) (+.f64 x 1)))
(if (<=.f64 z 100492063632906235717942649458029805933603418611694608541746315269859918506372342240998095059672497547926900720325049285304783821974241624539489500199077562810368) (-.f64 x -1) (*.f64 y (neg.f64 z)))
(if (<=.f64 z 100492063632906235717942649458029805933603418611694608541746315269859918506372342240998095059672497547926900720325049285304783821974241624539489500199077562810368) (+.f64 x 1) (*.f64 y (neg.f64 z)))
(-.f64 x -1)
(+.f64 x 1)
(if (<=.f64 x -33033607467918864/1461501637330902918203684832716283019655932542976) (-.f64 x 1) (if (<=.f64 x 7126010815667995/2361183241434822606848) 1 x))
(if (<=.f64 x -2064600466744929/91343852333181432387730302044767688728495783936) (+.f64 x -1) (if (<=.f64 x 7126010815667995/2361183241434822606848) 1 x))
(if (<=.f64 x -8098532924330471/590295810358705651712) x (if (<=.f64 x 7126010815667995/2361183241434822606848) 1 x))
x
Compiler

Compiled 250 to 163 computations (34.8% saved)

soundness0.0ms (0%)

end154.0ms (1.3%)

Compiler

Compiled 211 to 104 computations (50.7% saved)

Profiling

Loading profile data...