Details

Time bar (total: 2.8s)

analyze111.0ms (3.9%)

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
25%74.9%0.1%5
25%62.4%12.6%6
43.7%43.7%12.6%7
46.8%34.3%18.8%8
57.8%23.4%18.8%9
60.1%18%22%10
66%12.1%22%11
67.3%9.2%23.5%12
70.3%6.1%23.5%13
71.1%4.6%24.3%14
Compiler

Compiled 10 to 7 computations (30% saved)

sample737.0ms (26%)

Results
720.0ms8256×body128valid
6.0ms77×body128invalid

preprocess28.0ms (1%)

Algorithm
egg-herbie
Rules
496×fma-def_binary64
136×fma-neg_binary64
71×distribute-rgt-in_binary64
53×unsub-neg_binary64
46×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
12620
24820
310820
425320
536720
649920
768520
8119820
9122320
10127320
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (-.f64 1 (*.f64 x y)))
(*.f64 y (-.f64 1 (*.f64 y x)))
Outputs
(*.f64 x (-.f64 1 (*.f64 x y)))
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 y (-.f64 1 (*.f64 y x)))
(*.f64 y (-.f64 1 (*.f64 x y)))
(-.f64 y (*.f64 x (*.f64 y y)))
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify14.0ms (0.5%)

Algorithm
egg-herbie
Rules
265×fma-def_binary64
84×fma-neg_binary64
35×distribute-rgt-in_binary64
25×unsub-neg_binary64
24×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11610
23310
37110
416110
523810
632510
742910
866910
971410
1074610
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 x y)))
Outputs
(*.f64 x (-.f64 1 (*.f64 x y)))
(*.f64 x (fma.f64 y (neg.f64 x) 1))
(-.f64 x (*.f64 y (*.f64 x x)))

eval1.0ms (0%)

Compiler

Compiled 16 to 9 computations (43.8% saved)

prune4.0ms (0.1%)

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
8.0b
(-.f64 x (*.f64 y (*.f64 x x)))
0.1b
(*.f64 x (-.f64 1 (*.f64 x y)))
Compiler

Compiled 36 to 22 computations (38.9% saved)

localize4.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series5.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite41.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
737×pow1_binary64
682×add-log-exp_binary64
682×log1p-expm1-u_binary64
682×expm1-log1p-u_binary64
74×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify43.0ms (1.5%)

Algorithm
egg-herbie
Rules
550×fma-neg_binary64
460×cancel-sign-sub-inv_binary64
291×associate-*l*_binary64
250×unswap-sqr_binary64
205×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013424
131370
268370
3138370
4370370
51286370
62394370
74123370
Stop Event
node limit
Counts
97 → 59
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
Outputs
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 y (*.f64 x (neg.f64 x)) x)
(*.f64 x (-.f64 1 (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 x y)))
(-.f64 1 (*.f64 x y))

eval13.0ms (0.5%)

Compiler

Compiled 696 to 376 computations (46% saved)

prune66.0ms (2.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New54559
Fresh101
Picked011
Done000
Total55661
Error
0.0b
Counts
61 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
10.4b
(*.f64 x (pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x y))) 2))
8.0b
(fma.f64 (*.f64 x x) (neg.f64 y) x)
7.1b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) x) (+.f64 1 (*.f64 x y)))
10.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 x y) 3)) x) (+.f64 1 (+.f64 (*.f64 x y) (pow.f64 (*.f64 x y) 2))))
5.2b
(*.f64 x (/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))
0.1b
(*.f64 x (-.f64 1 (*.f64 x y)))
Compiler

Compiled 169 to 110 computations (34.9% saved)

localize8.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x (/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))
0.1b
(/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2))))
0.3b
(pow.f64 (*.f64 x y) 2)
4.8b
(/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))

series16.0ms (0.6%)

Counts
4 → 96
Calls

24 calls:

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

rewrite630.0ms (22.2%)

Algorithm
batch-egg-rewrite
Rules
902×prod-diff_binary64
136×add-sqr-sqrt_binary64
132×pow1_binary64
131×*-un-lft-identity_binary64
127×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01270
127334
2377534
Stop Event
node limit
Counts
4 → 138
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))
(pow.f64 (*.f64 x y) 2)
(/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2))))
(*.f64 x (/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (-.f64 1 (*.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x y 1) (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2) (*.f64 (cbrt.f64 (fma.f64 x y 1)) (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) (pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) 2) (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x y 1)) (*.f64 (sqrt.f64 (fma.f64 x y 1)) (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))) (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x y 1)) (/.f64 1 (neg.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (fma.f64 x y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x y 1)) (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x y 1)) 1) (/.f64 (sqrt.f64 (fma.f64 x y 1)) (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2)) (/.f64 (fma.f64 x y 1) (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2) (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2)) (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x y 1)) (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2)) (/.f64 (sqrt.f64 (fma.f64 x y 1)) (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))) (/.f64 (fma.f64 x y 1) (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2) (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))) (/.f64 (cbrt.f64 (fma.f64 x y 1)) (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x y 1) (-.f64 1 (pow.f64 (*.f64 x y) 6))) (+.f64 (+.f64 1 (pow.f64 (*.f64 x y) 4)) (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x y 1) (-.f64 1 (pow.f64 (*.f64 x y) 4))) (+.f64 1 (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x y 1) (neg.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1 (pow.f64 (-.f64 1 (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (-.f64 1 (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x y 1) 3) (pow.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (-.f64 1 (*.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x y) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 4)) (pow.f64 (cbrt.f64 (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (pow.f64 (*.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 (cbrt.f64 (*.f64 x y)) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (*.f64 x y)) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x y) (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x y) x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x y) y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x y) (pow.f64 (cbrt.f64 (*.f64 x y)) 2)) (cbrt.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x y) 6))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 x y) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (neg.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 -1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (neg.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (neg.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2)) (cbrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (neg.f64 (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (fma.f64 x y 1)) (*.f64 (neg.f64 (pow.f64 (*.f64 x y) 2)) (/.f64 1 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1 (fma.f64 x y 1)) 1) (*.f64 (/.f64 1 (fma.f64 x y 1)) (neg.f64 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (fma.f64 x y 1)) (/.f64 (pow.f64 (*.f64 x y) 2) (fma.f64 x y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 1 (*.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) (/.f64 1 (fma.f64 x y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 2)) (cbrt.f64 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 x y))) (sqrt.f64 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (/.f64 -1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x y 1)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x y 1)) (pow.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) 2) -1) (pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))) -1) (pow.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (fma.f64 x y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 1) (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (fma.f64 x y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2)) (/.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2) (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2)) (/.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (cbrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (pow.f64 (cbrt.f64 (fma.f64 x y 1)) 2)) (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (cbrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (fma.f64 x y 1))) (/.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) (sqrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2) (sqrt.f64 (fma.f64 x y 1))) (/.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (sqrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (sqrt.f64 (fma.f64 x y 1))) (/.f64 (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (sqrt.f64 (fma.f64 x y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 x y 1)) 1) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) (-.f64 1 (pow.f64 (*.f64 x y) 2))) (-.f64 1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) (+.f64 1 (pow.f64 (*.f64 x y) 3))) (+.f64 1 (*.f64 (*.f64 x y) (-.f64 (*.f64 x y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 (fma.f64 x y 1))) (neg.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 x y 1)) (pow.f64 (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))) 2)) (cbrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 x y 1)) (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)))) (sqrt.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) 3) (pow.f64 (fma.f64 x y 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (-.f64 1 (*.f64 x y)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 1 (*.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log1p.f64 (neg.f64 (pow.f64 (*.f64 x y) 2))) (log1p.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1 (*.f64 x y))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 x) 2) (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 x) (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (/.f64 -1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y))))) (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x 1) (/.f64 1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (fma.f64 x y 1)) (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (pow.f64 (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))) 2)) (cbrt.f64 (/.f64 1 (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 x) (/.f64 -1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -1) (/.f64 -1 (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 x y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 1 (*.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 1 (*.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 x y)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 1 (*.f64 x y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 1 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 1 (*.f64 x y)))))))))

simplify51.0ms (1.8%)

Algorithm
egg-herbie
Rules
590×fma-def_binary64
347×distribute-neg-frac_binary64
304×unswap-sqr_binary64
260×sub-neg_binary64
185×associate-/l/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0421264
11261182
23731170
314801162
441581124
Stop Event
node limit
Counts
234 → 164
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
Outputs
1
(+.f64 1 (*.f64 y x))
(fma.f64 y x 1)
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (fma.f64 y x (*.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 1 (fma.f64 y x (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 1 (*.f64 (fma.f64 y x 1) (*.f64 y x)))
(fma.f64 x (fma.f64 y (*.f64 y x) y) 1)
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 1 (fma.f64 y x (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (fma.f64 y x 1) (fma.f64 (*.f64 x x) (*.f64 y y) (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 1 (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (fma.f64 y x 1) (*.f64 y x))))
(fma.f64 (*.f64 x x) (*.f64 y (fma.f64 y (*.f64 y x) y)) (fma.f64 y x 1))
(+.f64 1 (fma.f64 y (*.f64 (fma.f64 y x 1) x) (pow.f64 (*.f64 y x) 3)))
(/.f64 -1 (*.f64 y x))
(/.f64 (/.f64 -1 y) x)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 x (*.f64 x (*.f64 y y)))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 (/.f64 1 y) (*.f64 y (*.f64 x x))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)) (/.f64 (/.f64 -1 (pow.f64 y 4)) (pow.f64 x 4))) (-.f64 (/.f64 -1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 y (*.f64 y (*.f64 x x)))) (/.f64 1 (pow.f64 (*.f64 y x) 4)))))
(/.f64 -1 (*.f64 y x))
(/.f64 (/.f64 -1 y) x)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 x (*.f64 x (*.f64 y y)))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 (/.f64 1 y) (*.f64 y (*.f64 x x))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)) (/.f64 (/.f64 -1 (pow.f64 y 4)) (pow.f64 x 4))) (-.f64 (/.f64 -1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 y (*.f64 y (*.f64 x x)))) (/.f64 1 (pow.f64 (*.f64 y x) 4)))))
1
(+.f64 1 (*.f64 y x))
(fma.f64 y x 1)
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (fma.f64 y x (*.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 1 (fma.f64 y x (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 1 (*.f64 (fma.f64 y x 1) (*.f64 y x)))
(fma.f64 x (fma.f64 y (*.f64 y x) y) 1)
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 1 (fma.f64 y x (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (fma.f64 y x 1) (fma.f64 (*.f64 x x) (*.f64 y y) (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 1 (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (fma.f64 y x 1) (*.f64 y x))))
(fma.f64 (*.f64 x x) (*.f64 y (fma.f64 y (*.f64 y x) y)) (fma.f64 y x 1))
(+.f64 1 (fma.f64 y (*.f64 (fma.f64 y x 1) x) (pow.f64 (*.f64 y x) 3)))
(/.f64 -1 (*.f64 y x))
(/.f64 (/.f64 -1 y) x)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 x (*.f64 x (*.f64 y y)))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 (/.f64 1 y) (*.f64 y (*.f64 x x))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)) (/.f64 (/.f64 -1 (pow.f64 y 4)) (pow.f64 x 4))) (-.f64 (/.f64 -1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 y (*.f64 y (*.f64 x x)))) (/.f64 1 (pow.f64 (*.f64 y x) 4)))))
(/.f64 -1 (*.f64 y x))
(/.f64 (/.f64 -1 y) x)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y)))))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 -1 y) x) (/.f64 -1 (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (+.f64 (/.f64 -1 (*.f64 y x)) (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 x (*.f64 x (*.f64 y y)))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 (/.f64 1 y) (*.f64 y (*.f64 x x))) (/.f64 (/.f64 1 (pow.f64 y 4)) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 (*.f64 y x)) (*.f64 y x)) (/.f64 (/.f64 -1 (pow.f64 y 4)) (pow.f64 x 4))) (-.f64 (/.f64 -1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (/.f64 -1 (pow.f64 (*.f64 y x) 3)) (-.f64 (/.f64 -1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 y (*.f64 y (*.f64 x x)))) (/.f64 1 (pow.f64 (*.f64 y x) 4)))))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
(*.f64 (pow.f64 y 2) (pow.f64 x 2))
(*.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 y (*.f64 x x)))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
1
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 -1 (*.f64 y x)))
(+.f64 1 (neg.f64 (*.f64 y x)))
(-.f64 1 (*.f64 y x))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))

eval49.0ms (1.7%)

Compiler

Compiled 2770 to 1728 computations (37.6% saved)

prune453.0ms (15.9%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1613164
Fresh314
Picked101
Done011
Total1655170
Error
0.0b
Counts
170 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 1 (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) x))
8.0b
(fma.f64 (*.f64 x x) (neg.f64 y) x)
0.1b
(/.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))
5.2b
(*.f64 x (*.f64 (/.f64 1 (fma.f64 x y 1)) (pow.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) -1)))
0.1b
(*.f64 x (-.f64 1 (*.f64 x y)))
Compiler

Compiled 119 to 86 computations (27.7% saved)

localize5.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 1 (*.f64 x y))
0.1b
(/.f64 1 (-.f64 1 (*.f64 x y)))
0.1b
(/.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite47.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
864×log1p-expm1-u_binary64
864×expm1-log1p-u_binary64
91×add-sqr-sqrt_binary64
88×*-un-lft-identity_binary64
88×pow1_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify41.0ms (1.5%)

Algorithm
egg-herbie
Rules
586×fma-def_binary64
354×distribute-neg-frac_binary64
304×unswap-sqr_binary64
256×sub-neg_binary64
182×associate-/l/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
040836
1120790
2354778
31447770
44076732
Stop Event
node limit
Counts
111 → 83
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(/.f64 -1 (*.f64 y x))
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
Outputs
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 x (*.f64 x (neg.f64 y)))
(*.f64 (*.f64 x x) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 x (*.f64 x y)))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(*.f64 x (fma.f64 x (neg.f64 y) 1))
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 x y))
(fma.f64 x y 1)
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (fma.f64 y x (*.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 1 (fma.f64 (*.f64 x x) (*.f64 y y) (*.f64 x y)))
(+.f64 1 (*.f64 (fma.f64 x y 1) (*.f64 x y)))
(fma.f64 y (*.f64 (fma.f64 x y 1) x) 1)
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 1 (fma.f64 y x (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 1 (fma.f64 x y (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 1 (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (fma.f64 x y 1) (*.f64 x y))))
(fma.f64 x (*.f64 (fma.f64 x y 1) y) (fma.f64 (pow.f64 y 3) (pow.f64 x 3) 1))
(+.f64 (pow.f64 (*.f64 x y) 3) (fma.f64 y (*.f64 (fma.f64 x y 1) x) 1))
(/.f64 -1 (*.f64 y x))
(/.f64 -1 (*.f64 x y))
(/.f64 (/.f64 -1 x) y)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)))
(+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x))) (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 x) y) (-.f64 (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)) (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))))
(-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y))) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 x y)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y))) (+.f64 (/.f64 -1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))) (/.f64 (/.f64 -1 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 4)) (pow.f64 y 4))) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (/.f64 -1 (*.f64 x y)) (-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (pow.f64 (*.f64 x y) 4)) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))))
(/.f64 -1 (*.f64 y x))
(/.f64 -1 (*.f64 x y))
(/.f64 (/.f64 -1 x) y)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)))
(+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x))) (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 x) y) (-.f64 (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)) (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))))
(-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y))) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 x y)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y))) (+.f64 (/.f64 -1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))) (/.f64 (/.f64 -1 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 4)) (pow.f64 y 4))) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (/.f64 -1 (*.f64 x y)) (-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (pow.f64 (*.f64 x y) 4)) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))))
1
(+.f64 1 (*.f64 y x))
(+.f64 1 (*.f64 x y))
(fma.f64 x y 1)
(+.f64 1 (+.f64 (*.f64 y x) (*.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (fma.f64 y x (*.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 1 (fma.f64 (*.f64 x x) (*.f64 y y) (*.f64 x y)))
(+.f64 1 (*.f64 (fma.f64 x y 1) (*.f64 x y)))
(fma.f64 y (*.f64 (fma.f64 x y 1) x) 1)
(+.f64 1 (+.f64 (*.f64 y x) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 1 (fma.f64 y x (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 1 (fma.f64 x y (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 x (*.f64 x (*.f64 y y))))))
(+.f64 1 (fma.f64 (pow.f64 y 3) (pow.f64 x 3) (*.f64 (fma.f64 x y 1) (*.f64 x y))))
(fma.f64 x (*.f64 (fma.f64 x y 1) y) (fma.f64 (pow.f64 y 3) (pow.f64 x 3) 1))
(+.f64 (pow.f64 (*.f64 x y) 3) (fma.f64 y (*.f64 (fma.f64 x y 1) x) 1))
(/.f64 -1 (*.f64 y x))
(/.f64 -1 (*.f64 x y))
(/.f64 (/.f64 -1 x) y)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)))
(+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x))) (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 x) y) (-.f64 (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)) (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))))
(-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y))) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 x y)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y))) (+.f64 (/.f64 -1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))) (/.f64 (/.f64 -1 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 4)) (pow.f64 y 4))) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (/.f64 -1 (*.f64 x y)) (-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (pow.f64 (*.f64 x y) 4)) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))))
(/.f64 -1 (*.f64 y x))
(/.f64 -1 (*.f64 x y))
(/.f64 (/.f64 -1 x) y)
(neg.f64 (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))))
(-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)))
(+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))))
(+.f64 (-.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x))) (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 x) y) (-.f64 (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y)) (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))))
(-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y))) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 y x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 1 (*.f64 x y)) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4)))))))
(-.f64 (/.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (/.f64 (/.f64 1 (*.f64 y y)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 x y)) (/.f64 1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) y) (/.f64 (/.f64 (/.f64 -1 x) y) (*.f64 x y))) (+.f64 (/.f64 -1 (*.f64 (pow.f64 y 4) (pow.f64 x 4))) (/.f64 (/.f64 -1 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x y)) (/.f64 (/.f64 -1 (pow.f64 x 4)) (pow.f64 y 4))) (/.f64 (/.f64 -1 (pow.f64 x 3)) (pow.f64 y 3))))
(+.f64 (/.f64 -1 (*.f64 x y)) (-.f64 (/.f64 (/.f64 -1 (*.f64 x y)) (*.f64 x y)) (-.f64 (/.f64 1 (pow.f64 (*.f64 x y) 4)) (/.f64 -1 (pow.f64 (*.f64 x y) 3)))))

eval32.0ms (1.1%)

Compiler

Compiled 1609 to 950 computations (41% saved)

prune212.0ms (7.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1143117
Fresh123
Picked011
Done101
Total1166122
Error
0b
Counts
122 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 1 (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) x))
8.0b
(fma.f64 (*.f64 x x) (neg.f64 y) x)
0.1b
(/.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))
0.1b
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
5.1b
(/.f64 x (*.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (+.f64 1 (*.f64 x y))))
0.5b
(/.f64 x (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) 2) -1) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) -1)))
Compiler

Compiled 159 to 110 computations (30.8% saved)

localize5.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
0.2b
(*.f64 x (*.f64 x (neg.f64 y)))

series6.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x (*.f64 x (neg.f64 y)))
1.0ms
y
@0
(*.f64 x (*.f64 x (neg.f64 y)))
1.0ms
y
@inf
(*.f64 x (*.f64 x (neg.f64 y)))
1.0ms
x
@inf
(*.f64 x (*.f64 x (neg.f64 y)))
0.0ms
x
@inf
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))

rewrite47.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
735×pow1_binary64
682×log1p-expm1-u_binary64
682×expm1-log1p-u_binary64
83×associate-*r*_binary64
82×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify46.0ms (1.6%)

Algorithm
egg-herbie
Rules
882×fma-neg_binary64
838×fma-def_binary64
251×unswap-sqr_binary64
248×associate-*l*_binary64
240×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09452
121434
249434
3120434
4331434
51136434
63084434
74627434
Stop Event
node limit
Counts
108 → 65
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
Outputs
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
x
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(*.f64 -1 (*.f64 y (pow.f64 x 2)))
(neg.f64 (*.f64 y (*.f64 x x)))
(*.f64 (*.f64 x x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 x)))
(*.f64 y (neg.f64 (*.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))
(+.f64 (*.f64 -1 (*.f64 y (pow.f64 x 2))) x)
(fma.f64 -1 (*.f64 y (*.f64 x x)) x)
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 y x)))
(*.f64 x (fma.f64 x (neg.f64 y) 1))

eval13.0ms (0.5%)

Compiler

Compiled 772 to 266 computations (65.5% saved)

prune63.0ms (2.2%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New65065
Fresh044
Picked011
Done011
Total65671
Error
0b
Counts
71 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 1 (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) x))
8.0b
(fma.f64 (*.f64 x x) (neg.f64 y) x)
0.1b
(/.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))
0.1b
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
5.1b
(/.f64 x (*.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (+.f64 1 (*.f64 x y))))
0.5b
(/.f64 x (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) 2) -1) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) -1)))
Compiler

Compiled 85 to 59 computations (30.6% saved)

regimes28.0ms (1%)

Accuracy

Total -19.9b remaining (-23161.9%)

Threshold costs -19.9b (-23161.9%)

Counts
13 → 1
Calls
Call 1
Inputs
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
(/.f64 x (*.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) (+.f64 1 (*.f64 x y))))
(/.f64 x (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) 2) -1) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x y))) -1)))
(/.f64 1 (/.f64 (/.f64 1 (-.f64 1 (*.f64 x y))) x))
(/.f64 x (/.f64 1 (-.f64 1 (*.f64 x y))))
(*.f64 x (*.f64 (/.f64 1 (fma.f64 x y 1)) (pow.f64 (/.f64 1 (-.f64 1 (pow.f64 (*.f64 x y) 2))) -1)))
(*.f64 x (pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x y))) 2))
(fma.f64 (*.f64 x x) (neg.f64 y) x)
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 x y) 2)) x) (+.f64 1 (*.f64 x y)))
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 x y) 3)) x) (+.f64 1 (+.f64 (*.f64 x y) (pow.f64 (*.f64 x y) 2))))
(*.f64 x (/.f64 1 (/.f64 (+.f64 1 (*.f64 x y)) (-.f64 1 (pow.f64 (*.f64 x y) 2)))))
(-.f64 x (*.f64 y (*.f64 x x)))
(*.f64 x (-.f64 1 (*.f64 x y)))
Outputs
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
Results
TimeErrorSegmentsBranch
7.0ms0.1b1x
9.0ms0.1b1y
8.0ms0.1b1(*.f64 x (-.f64 1 (*.f64 x y)))
Compiler

Compiled 187 to 109 computations (41.7% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0712
11612
22810
34210
44710
54910
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
Outputs
(+.f64 x (*.f64 x (*.f64 x (neg.f64 y))))
(-.f64 x (*.f64 x (*.f64 x y)))

end15.0ms (0.5%)

Stop Event
fuel
Compiler

Compiled 18 to 10 computations (44.4% saved)

Profiling

Loading profile data...