Details

Time bar (total: 6.8s)

analyze56.0ms (0.8%)

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%74.9%25.1%4
0%74.9%25.1%5
18.7%43.7%37.6%6
28.1%34.3%37.6%7
32.8%23.4%43.8%8
36.7%18%45.4%9
39.4%12.1%48.5%10
41.6%9.2%49.3%11
43%6.1%50.8%12
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample1.3s (18.9%)

Results
1.2s8256×body256valid
52.0ms413×body256invalid

preprocess86.0ms (1.3%)

Algorithm
egg-herbie
Rules
880×fma-neg_binary64
611×times-frac_binary64
422×associate-/l*_binary64
408×fma-def_binary64
380×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02042
14636
212636
337932
478332
5115532
6229432
7464932
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (*.f64 3 (sqrt.f64 y)) (-.f64 (+.f64 x (/.f64 1 (*.f64 y 9))) 1))
Outputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) -1)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (-.f64 y 1))))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (+.f64 y (/.f64 1/9 x)) 3) -3))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (-.f64 (fma.f64 3 y (/.f64 1/3 x)) 3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 (fma.f64 3 y -3) (/.f64 -1/3 x)))
(*.f64 (*.f64 3 (sqrt.f64 y)) (-.f64 (+.f64 x (/.f64 1 (*.f64 y 9))) 1))
(*.f64 (*.f64 3 (sqrt.f64 y)) (+.f64 (+.f64 x (/.f64 1 (*.f64 y 9))) -1))
(*.f64 3 (*.f64 (sqrt.f64 y) (+.f64 (/.f64 1/9 y) (-.f64 x 1))))
(*.f64 (sqrt.f64 y) (fma.f64 3 (+.f64 x (/.f64 1/9 y)) -3))
(*.f64 (sqrt.f64 y) (+.f64 (/.f64 1/3 y) (fma.f64 3 x -3)))
(*.f64 (sqrt.f64 y) (+.f64 -3 (fma.f64 3 x (/.f64 1/3 y))))
Compiler

Compiled 18 to 15 computations (16.7% saved)

simplify123.0ms (1.8%)

Algorithm
egg-herbie
Rules
1205×fma-neg_binary64
892×fma-def_binary64
318×cancel-sign-sub-inv_binary64
317×associate-/l*_binary64
290×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01321
12818
26918
319416
440216
558616
6116416
7252716
8428116
9490516
10546716
11597016
12599816
13599816
14694816
15703316
16703316
17703316
18703316
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Outputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y (-.f64 (/.f64 1 (*.f64 x 9)) 1)))
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))

eval1.0ms (0%)

Compiler

Compiled 27 to 20 computations (25.9% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Compiler

Compiled 29 to 23 computations (20.7% saved)

localize23.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(*.f64 3 (sqrt.f64 x))
0.2b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.0b
(-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.2b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (sqrt.f64 x))
0.3b
(/.f64 1 (*.f64 x 9))
Compiler

Compiled 51 to 36 computations (29.4% saved)

series12.0ms (0.2%)

Counts
4 → 48
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@0
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
1.0ms
x
@-inf
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
1.0ms
x
@0
(*.f64 3 (sqrt.f64 x))
1.0ms
x
@-inf
(*.f64 3 (sqrt.f64 x))
1.0ms
x
@0
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))

rewrite82.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
620×prod-diff_binary64
614×log-prod_binary64
370×fma-def_binary64
229×pow1/3_binary64
226×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01344
128335
2373535
Stop Event
node limit
Counts
4 → 137
Calls
Call 1
Inputs
(/.f64 1 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(+.f64 y (/.f64 1 (*.f64 x 9)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 1/9 x))) (cbrt.f64 (exp.f64 (/.f64 1/9 x))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/9 x)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1/9 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/9 x)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1/9 x)) (sqrt.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 x -9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/9 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 x 9)) 2)) (cbrt.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/9 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/9 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 9) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (*.f64 x -9)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x 9) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 9) -3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x 9)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 1/9 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/9 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (exp.f64 (sqrt.f64 x)) (exp.f64 (sqrt.f64 x)))) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (sqrt.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 3 (sqrt.f64 x))) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x))) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) y) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) y (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 3 (sqrt.f64 x)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 y y) (-.f64 y (/.f64 1/9 x))) (/.f64 (pow.f64 (*.f64 x 9) -2) (-.f64 y (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3)) (/.f64 1 (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2)) (/.f64 1 (-.f64 y (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y)) (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 y (/.f64 1/9 x)) (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3)) (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3)) (+.f64 (pow.f64 (*.f64 x 9) -2) (-.f64 (*.f64 y y) (*.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2)) (-.f64 y (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3))) (neg.f64 (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2))) (neg.f64 (-.f64 y (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3)) 1) (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2)) 1) (-.f64 y (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x 9) -2) (*.f64 y y)) (-.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/9 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (/.f64 1/9 x) (-.f64 (/.f64 1/9 x) y) (*.f64 y y)) (+.f64 (pow.f64 y 3) (pow.f64 (*.f64 x 9) -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 y (/.f64 1/9 x)) (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1/9 x)) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (exp.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 y) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/9 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) 1 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/9 x)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1/9 x)) (sqrt.f64 (/.f64 1/9 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (*.f64 x -9)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/9 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)))) (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (/.f64 1 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 x 9)) 2)) (cbrt.f64 (/.f64 1/9 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))))))

simplify130.0ms (1.9%)

Algorithm
egg-herbie
Rules
1400×fma-neg_binary64
911×fma-def_binary64
255×distribute-rgt-neg-in_binary64
202×distribute-rgt-in_binary64
182×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017426
138381
284360
3198360
4398360
5796360
61150360
71886360
83336360
94414360
104855360
115401360
125402360
135402360
146212360
156212360
166212360
176212360
Stop Event
saturated
Counts
185 → 147
Calls
Call 1
Inputs
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
Outputs
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 3 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (/.f64 1/9 x) 3) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)

localize19.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/3 x)
0.3b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
0.0b
(fma.f64 3 y -3)
0.0b
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
0.0b
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
0.0b
(fma.f64 3 y -3)
0.3b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
0.4b
(/.f64 1/3 x)
Compiler

Compiled 35 to 24 computations (31.4% saved)

series11.0ms (0.2%)

Counts
4 → 48
Calls

18 calls:

TimeVariablePointExpression
3.0ms
x
@-inf
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
2.0ms
y
@0
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
1.0ms
x
@inf
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
1.0ms
x
@0
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
1.0ms
y
@-inf
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))

rewrite77.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
932×prod-diff_binary64
518×log-prod_binary64
302×pow2_binary64
289×fma-def_binary64
211×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
124436
2319236
Stop Event
node limit
Counts
4 → 172
Calls
Call 1
Inputs
(/.f64 1/3 x)
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(fma.f64 3 y -3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1/3 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/3 x)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/3 x)) (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2) (cbrt.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1/3 x)) (sqrt.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/3 (/.f64 1 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/3 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/3 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1/3 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x 3) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1/9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 1/3 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/3 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) 1) (*.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) 3) (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) 3)) (+.f64 (pow.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) 2) (-.f64 (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) 2) (*.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) 2) (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) 2)) (-.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3)) (sqrt.f64 x)) (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2)) (sqrt.f64 x)) (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3))) (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2))) (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3) (pow.f64 x 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (exp.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (*.f64 (/.f64 1 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 x) (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (/.f64 1/3 x) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 y -3) (sqrt.f64 x) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2) (*.f64 (cbrt.f64 (fma.f64 3 y -3)) (sqrt.f64 x)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2) (*.f64 (cbrt.f64 (/.f64 1/3 x)) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 y -3)) (*.f64 (sqrt.f64 (fma.f64 3 y -3)) (sqrt.f64 x)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1/3 x)) (*.f64 (sqrt.f64 (/.f64 1/3 x)) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) 1 (*.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) 2) (cbrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x))) 2) (cbrt.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (sqrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 y -3))) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x))) (sqrt.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 1/4) (sqrt.f64 (/.f64 1/3 x))) (*.f64 (pow.f64 x 1/4) (sqrt.f64 (/.f64 1/3 x))) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (/.f64 1/3 x)) (pow.f64 x 1/4)) (*.f64 (sqrt.f64 (/.f64 1/3 x)) (pow.f64 x 1/4)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 1/4) (sqrt.f64 (fma.f64 3 y -3))) (*.f64 (pow.f64 x 1/4) (sqrt.f64 (fma.f64 3 y -3))) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (fma.f64 3 y -3)) (pow.f64 x 1/4)) (*.f64 (sqrt.f64 (fma.f64 3 y -3)) (pow.f64 x 1/4)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) 1/3) (/.f64 1 x) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2)) (cbrt.f64 (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 1/3 x))) (sqrt.f64 (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 x) (cbrt.f64 x)) (cbrt.f64 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 x) (pow.f64 x 1/4)) (pow.f64 x 1/4) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2)) (cbrt.f64 (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 (fma.f64 3 y -3))) (sqrt.f64 (fma.f64 3 y -3)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 3 y -3) (cbrt.f64 x)) (cbrt.f64 (sqrt.f64 x)) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 3 y -3) (pow.f64 x 1/4)) (pow.f64 x 1/4) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (*.f64 3 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 y) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 y) 1) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 3 y -3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 3 y -3)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 3 y -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 3 y -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 3 y -3)) (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2) (cbrt.f64 (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 3 y -3)) (sqrt.f64 (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 y) 3) -27) (+.f64 (pow.f64 (*.f64 3 y) 2) (-.f64 9 (*.f64 (*.f64 3 y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 3 y) 2) 9) (fma.f64 3 y 3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 3 y -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 3 y -3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 3 y -3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 3 y -3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 3 y -3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 3 y -3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 3 y -3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1/9 (*.f64 x x)) (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) (/.f64 (pow.f64 (fma.f64 3 y -3) 2) (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 2) (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) (sqrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3)) (/.f64 1 (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2)) (/.f64 1 (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x))) (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3)) (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3)) (+.f64 (pow.f64 (fma.f64 3 y -3) 2) (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2)) (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3))) (neg.f64 (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2))) (neg.f64 (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 3 y -3) 2) (/.f64 1/9 (*.f64 x x))) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 3 y -3) (-.f64 (fma.f64 3 y -3) (/.f64 1/3 x)) (/.f64 1/9 (*.f64 x x))) (+.f64 (pow.f64 (/.f64 1/3 x) 3) (pow.f64 (fma.f64 3 y -3) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) (-.f64 (/.f64 1/9 (*.f64 x x)) (pow.f64 (fma.f64 3 y -3) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/3 x))) (exp.f64 (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1/3 x)) (+.f64 1 (expm1.f64 (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/3 x))) (+.f64 1 (expm1.f64 (fma.f64 3 y -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 3 y -3))) (exp.f64 (/.f64 1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 3 y -3)) (+.f64 1 (expm1.f64 (/.f64 1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 3 y -3))) (+.f64 1 (expm1.f64 (/.f64 1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (/.f64 1 x) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 x) 1 (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 y (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 3 (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 y -3) 1 (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/3 x) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 y -3) (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 y) (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 y -3)) (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2) (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 y -3)) 2) (cbrt.f64 (fma.f64 3 y -3)) (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/3 x)) (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2) (cbrt.f64 (/.f64 1/3 x)) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 y -3)) (sqrt.f64 (fma.f64 3 y -3)) (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1/3 x)) (sqrt.f64 (/.f64 1/3 x)) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/3 (/.f64 1 (neg.f64 x)) (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/3 (fma.f64 3 y -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 3 y)) 2) (cbrt.f64 (*.f64 3 y)) (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 y)) (sqrt.f64 (*.f64 3 y)) (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 y)) (sqrt.f64 y) (+.f64 -3 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))))))))

simplify85.0ms (1.3%)

Algorithm
egg-herbie
Rules
804×fma-neg_binary64
773×fma-def_binary64
178×unsub-neg_binary64
171×distribute-rgt-in_binary64
122×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022500
144455
276455
3126455
4211455
5280455
6482455
7912455
81699455
92863455
103378455
113618455
123905455
133921455
143921455
Stop Event
saturated
Counts
220 → 188
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
-3
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(/.f64 1/3 x)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
Outputs
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
-3
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(/.f64 1/3 x)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(fma.f64 3 y (+.f64 (/.f64 1/3 x) -3))

eval287.0ms (4.2%)

Compiler

Compiled 5855 to 4097 computations (30% saved)

prune138.0ms (2%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New31124335
Fresh000
Picked101
Done101
Total31324337
Error
0b
Counts
337 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
21.8b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (cbrt.f64 (pow.f64 (*.f64 x 9) -3))) 1))
0.4b
(fma.f64 1/3 (*.f64 (/.f64 1 x) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
43.3b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
0.4b
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
17.1b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
0.5b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (pow.f64 (sqrt.f64 (/.f64 1/9 x)) 2)) 1))
20.1b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
0.4b
(+.f64 0 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))
43.3b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
0.4b
(*.f64 (sqrt.f64 x) (+.f64 (pow.f64 (*.f64 x 3) -1) (fma.f64 3 y -3)))
43.3b
(*.f64 3 (*.f64 y (sqrt.f64 x)))
27.5b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
0.4b
(fma.f64 (sqrt.f64 x) (fma.f64 3 y -3) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)))
20.1b
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
1.2b
(*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))) 3))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) 1))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
36.5b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
0.5b
(fma.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
48.4b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
1.2b
(pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 3)
20.1b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
Compiler

Compiled 684 to 540 computations (21.1% saved)

localize38.0ms (0.6%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.1b
(sqrt.f64 (*.f64 x 9))
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.0b
(-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.1b
(sqrt.f64 (*.f64 x 9))
0.2b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(/.f64 1 (*.f64 x 9))
Compiler

Compiled 48 to 36 computations (25% saved)

series4.0ms (0.1%)

Counts
2 → 12
Calls

9 calls:

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

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
620×prod-diff_binary64
542×log-prod_binary64
340×fma-def_binary64
295×pow2_binary64
218×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01127
124424
2329024
Stop Event
node limit
Counts
2 → 62
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(sqrt.f64 (*.f64 x 9))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (sqrt.f64 x) 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y (/.f64 1/9 x)) (*.f64 (sqrt.f64 x) 3)) (*.f64 -1 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) y) (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (/.f64 1/9 x))) (*.f64 (*.f64 (sqrt.f64 x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 3) -1) (*.f64 (sqrt.f64 x) 3)) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) -1) (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 3) -1)) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) -1)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (pow.f64 (*.f64 x 9) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (pow.f64 (*.f64 x 9) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) 3) y (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (/.f64 1/9 x)) (*.f64 (*.f64 (sqrt.f64 x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (sqrt.f64 x) 3) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y (/.f64 1/9 x)) (*.f64 (sqrt.f64 x) 3) (*.f64 -1 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3)) (cbrt.f64 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (cbrt.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 9) 1/4) (pow.f64 (*.f64 x 9) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 9 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 x 9)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 9 1/2) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 9) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 9) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x 9)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) 3)))))))

simplify112.0ms (1.6%)

Algorithm
egg-herbie
Rules
1396×fma-neg_binary64
911×fma-def_binary64
255×distribute-rgt-neg-in_binary64
203×distribute-rgt-in_binary64
181×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
015240
136195
280174
3192174
4402174
5803174
61157174
71895174
83349174
94421174
104853174
115401174
125402174
135402174
146212174
156212174
166212174
176212174
Stop Event
saturated
Counts
74 → 68
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
Outputs
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 3 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (/.f64 1/9 x) 3) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (fma.f64 -3 (-.f64 (/.f64 -1/9 x) y) -3))

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/3 x)
0.3b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
0.3b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
0.4b
(/.f64 1/3 x)
Compiler

Compiled 15 to 9 computations (40% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
1.0ms
x
@0
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
1.0ms
x
@inf
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))

rewrite73.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
602×pow1_binary64
563×add-log-exp_binary64
563×log1p-expm1-u_binary64
563×expm1-log1p-u_binary64
551×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
20 → 20
Calls
Call 1
Inputs
Outputs

localize15.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.4b
(*.f64 1/3 (/.f64 1 x))
0.3b
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
0.0b
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
0.0b
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
0.3b
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
0.4b
(*.f64 1/3 (/.f64 1 x))
Compiler

Compiled 33 to 25 computations (24.2% saved)

series4.0ms (0.1%)

Counts
3 → 15
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
1.0ms
x
@0
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
1.0ms
x
@inf
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
0.0ms
x
@0
(*.f64 1/3 (/.f64 1 x))
0.0ms
x
@inf
(*.f64 1/3 (/.f64 1 x))

rewrite120.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
965×pow1_binary64
902×add-log-exp_binary64
902×log1p-expm1-u_binary64
902×expm1-log1p-u_binary64
102×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
121523
2251423
Stop Event
node limit
Counts
3 → 70
Calls
Call 1
Inputs
(*.f64 1/3 (/.f64 1 x))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1/3 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/3 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/3 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/3 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/27 (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x -2) 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 1/27 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/3 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (*.f64 -3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (*.f64 (sqrt.f64 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27) (sqrt.f64 x)) (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27)) (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9)) (+.f64 (/.f64 1/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (+.f64 (/.f64 1/3 x) -3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/3 x) -3)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 3) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (+.f64 (/.f64 1/3 x) -3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/3 x) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1/3 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/3 x) -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) -3)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 2)) (cbrt.f64 (+.f64 (/.f64 1/3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/3 x) -3)) (sqrt.f64 (+.f64 (/.f64 1/3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27) (/.f64 1 (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (/.f64 1 (+.f64 (/.f64 1/3 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9)) (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (/.f64 1/3 x) 3) (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27) (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27) (+.f64 (*.f64 (pow.f64 x -2) 1/9) (-.f64 9 (*.f64 (/.f64 1/3 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (+.f64 (/.f64 1/3 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (-.f64 (/.f64 1/3 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (/.f64 1/27 (pow.f64 x 3)) -27)) (neg.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) (+.f64 (/.f64 1 x) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9)) (neg.f64 (+.f64 (/.f64 1/3 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/3 x) -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/3 x) -3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/3 x) -3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/3 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (/.f64 1 x) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/3 x) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/3 -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/3 x)) 2) (cbrt.f64 (/.f64 1/3 x)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1/3 x)) (sqrt.f64 (/.f64 1/3 x)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1/3 x) -3)))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0554
Stop Event
saturated
Counts
85 → 71
Calls
Call 1
Inputs
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
-3
-3
Outputs
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
(/.f64 1/3 x)
-3
-3

localize60.0ms (0.9%)

Local error

Found 8 expressions with local error:

NewErrorProgram
12.0b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
0.4b
(/.f64 1/9 x)
0.1b
(pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)
0.0b
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
0.1b
(pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)
0.4b
(/.f64 1/9 x)
12.0b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
15.2b
(*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))
Compiler

Compiled 60 to 45 computations (25% saved)

series9.0ms (0.1%)

Counts
4 → 60
Calls

21 calls:

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

rewrite90.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
866×prod-diff_binary64
647×log-prod_binary64
364×fma-def_binary64
255×expm1-udef_binary64
255×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01457
131354
2399854
Stop Event
node limit
Counts
4 → 115
Calls
Call 1
Inputs
(*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
(/.f64 1/9 x)
(pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4) (*.f64 (*.f64 x x) 81)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4) (*.f64 (*.f64 x x) 81)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 9) 3) (pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) 3) (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))) (cbrt.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))) (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (pow.f64 (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4) (*.f64 (*.f64 x x) 81)))) (sqrt.f64 (cbrt.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4) (*.f64 (*.f64 x x) 81))) 1/2) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 9 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 1/9 x))) (cbrt.f64 (exp.f64 (/.f64 1/9 x))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/9 x)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1/9 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/9 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/9 x)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/9 (/.f64 1 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/9 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 (sqrt.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/729 (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1/81 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 1/729 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 1/9 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/9 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1/9 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 (+.f64 y -1) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 (/.f64 1/9 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 -1 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (/.f64 1/9 x)) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 y -1)) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) (cbrt.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2)) (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2))) (*.f64 (-.f64 (/.f64 1/9 x) (+.f64 y -1)) (-.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3)) (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3))) (*.f64 (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x))) (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2)) (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3))) (*.f64 (-.f64 (/.f64 1/9 x) (+.f64 y -1)) (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3)) (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2))) (*.f64 (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x))) (-.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (-.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y -1) 3))) (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2))) (-.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (+.f64 y -1) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y -1) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (/.f64 1/9 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (/.f64 1/9 x) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 y -1) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 (/.f64 1/9 x) y) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 -1 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))))

simplify67.0ms (1%)

Algorithm
egg-herbie
Rules
457×distribute-rgt-in_binary64
443×distribute-lft-in_binary64
390×*-commutative_binary64
332×unswap-sqr_binary64
323×associate-/l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0721285
12021175
25361110
319981097
459261085
Stop Event
node limit
Counts
175 → 167
Calls
Call 1
Inputs
(/.f64 1/9 x)
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 1/9 (/.f64 1 x)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x))
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x))
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x)))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(*.f64 9 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (*.f64 9 (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(*.f64 9 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(/.f64 1/81 (pow.f64 x 2))
(+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2)))))
(pow.f64 (-.f64 y 1) 2)
(+.f64 (pow.f64 (-.f64 y 1) 2) (*.f64 2/9 (/.f64 (-.f64 y 1) x)))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(pow.f64 (-.f64 y 1) 2)
(+.f64 (pow.f64 (-.f64 y 1) 2) (*.f64 2/9 (/.f64 (-.f64 y 1) x)))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(pow.f64 y 2)
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (pow.f64 y 2))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
Outputs
(/.f64 1/9 x)
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 1/9 (/.f64 1 x)))
(fma.f64 2 (+.f64 y -1) (/.f64 1/9 x))
(+.f64 (fma.f64 2 y -2) (/.f64 1/9 x))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x))
(*.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)))
(*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9))
(*.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)))
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)))
(fma.f64 2 (+.f64 y -1) (*.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2))))
(fma.f64 2 (+.f64 y -1) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9)))
(fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (fma.f64 2 y -2))
(fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x))
(*.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)))
(*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9))
(*.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)))
(+.f64 (*.f64 2 (-.f64 y 1)) (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)))
(fma.f64 2 (+.f64 y -1) (*.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2))))
(fma.f64 2 (+.f64 y -1) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9)))
(fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (fma.f64 2 y -2))
(fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(+.f64 (*.f64 2 (-.f64 y 1)) (+.f64 (*.f64 9 (*.f64 (pow.f64 (-.f64 y 1) 2) x)) (*.f64 1/9 (/.f64 1 x))))
(fma.f64 2 (+.f64 y -1) (fma.f64 9 (*.f64 x (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (fma.f64 2 y -2) (fma.f64 x (*.f64 9 (pow.f64 (+.f64 y -1) 2)) (/.f64 1/9 x)))
(+.f64 (/.f64 1/9 x) (fma.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9) (fma.f64 2 y -2)))
(*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))
(*.f64 9 (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 x 9))
(*.f64 (+.f64 (/.f64 1/9 x) -1) (+.f64 1 (*.f64 -9 x)))
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x)))
(*.f64 9 (+.f64 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 9 (*.f64 x (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 (*.f64 x 9) (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(*.f64 9 (fma.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 y (+.f64 2/9 (*.f64 x -2)))))
(*.f64 9 (fma.f64 (+.f64 (/.f64 1/9 x) -1) (-.f64 1/9 x) (*.f64 y (+.f64 2/9 (*.f64 x -2)))))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 9 (+.f64 (*.f64 x (*.f64 y y)) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(*.f64 9 (+.f64 (*.f64 x (*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 9 (*.f64 x (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 (*.f64 x 9) (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 9 (*.f64 y (+.f64 2/9 (*.f64 x (+.f64 y -2)))) (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 9 (+.f64 (*.f64 x (*.f64 y y)) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(*.f64 9 (+.f64 (*.f64 x (*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 9 (*.f64 x (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 (*.f64 x 9) (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 9 (*.f64 y (+.f64 2/9 (*.f64 x (+.f64 y -2)))) (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(*.f64 9 (*.f64 (pow.f64 y 2) x))
(*.f64 9 (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y y) (*.f64 x 9))
(*.f64 x (*.f64 9 (*.f64 y y)))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (*.f64 9 (*.f64 (pow.f64 y 2) x)))
(*.f64 9 (+.f64 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 x (*.f64 y y))))
(*.f64 9 (*.f64 x (*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))))
(*.f64 x (*.f64 (*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y))) 9))
(*.f64 x (*.f64 9 (*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)))))
(*.f64 y (*.f64 9 (+.f64 2/9 (*.f64 x (+.f64 y -2)))))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 9 (+.f64 (*.f64 x (*.f64 y y)) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(*.f64 9 (+.f64 (*.f64 x (*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 9 (*.f64 x (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 (*.f64 x 9) (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 9 (*.f64 y (+.f64 2/9 (*.f64 x (+.f64 y -2)))) (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(+.f64 (*.f64 9 (*.f64 y (*.f64 (-.f64 (*.f64 2/9 (/.f64 1 x)) 2) x))) (+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 y (*.f64 x (+.f64 (/.f64 2/9 x) -2))) (*.f64 9 (+.f64 (*.f64 x (*.f64 y y)) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(*.f64 9 (+.f64 (*.f64 x (*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))) (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 9 (*.f64 x (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))
(*.f64 (*.f64 x 9) (fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 9 (*.f64 y (+.f64 2/9 (*.f64 x (+.f64 y -2)))) (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(*.f64 9 (*.f64 (pow.f64 y 2) x))
(*.f64 9 (*.f64 x (*.f64 y y)))
(*.f64 (*.f64 y y) (*.f64 x 9))
(*.f64 x (*.f64 9 (*.f64 y y)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))))
(fma.f64 9 (*.f64 x (*.f64 y y)) (*.f64 18 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 x y))))
(fma.f64 (*.f64 9 (*.f64 y y)) x (*.f64 (*.f64 x y) (+.f64 (*.f64 (/.f64 1/9 x) 18) -18)))
(*.f64 x (+.f64 (*.f64 y (+.f64 (/.f64 2 x) -18)) (*.f64 9 (*.f64 y y))))
(*.f64 (*.f64 x y) (+.f64 (*.f64 y 9) (+.f64 (/.f64 2 x) -18)))
(*.f64 y (+.f64 (*.f64 18 (-.f64 1/9 x)) (*.f64 y (*.f64 x 9))))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 x (*.f64 y y)) (fma.f64 18 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 x y)) (*.f64 9 (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(+.f64 (*.f64 9 (*.f64 x (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))) (*.f64 (*.f64 x y) (+.f64 (*.f64 (/.f64 1/9 x) 18) -18)))
(fma.f64 9 (*.f64 x (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 y (*.f64 x (+.f64 (/.f64 2 x) -18))))
(*.f64 x (+.f64 (*.f64 9 (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 y (+.f64 (/.f64 2 x) -18))))
(fma.f64 x (*.f64 9 (*.f64 y y)) (*.f64 (-.f64 1/9 x) (+.f64 (*.f64 y 18) (+.f64 (/.f64 1 x) -9))))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 18 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (*.f64 y x))) (*.f64 9 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) x))))
(fma.f64 9 (*.f64 x (*.f64 y y)) (fma.f64 18 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 x y)) (*.f64 9 (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))
(+.f64 (*.f64 9 (*.f64 x (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))) (*.f64 (*.f64 x y) (+.f64 (*.f64 (/.f64 1/9 x) 18) -18)))
(fma.f64 9 (*.f64 x (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 y (*.f64 x (+.f64 (/.f64 2 x) -18))))
(*.f64 x (+.f64 (*.f64 9 (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 y (+.f64 (/.f64 2 x) -18))))
(fma.f64 x (*.f64 9 (*.f64 y y)) (*.f64 (-.f64 1/9 x) (+.f64 (*.f64 y 18) (+.f64 (/.f64 1 x) -9))))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 3 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))
(*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (sqrt.f64 x) 3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 (sqrt.f64 x)) y)
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 (sqrt.f64 x)) y)
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(/.f64 1/81 (pow.f64 x 2))
(/.f64 1/81 (*.f64 x x))
(/.f64 (/.f64 1/81 x) x)
(+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2))))
(fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x)))
(fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 2/9 (/.f64 (-.f64 y 1) x)) (*.f64 1/81 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(pow.f64 (-.f64 y 1) 2)
(pow.f64 (+.f64 y -1) 2)
(+.f64 (pow.f64 (-.f64 y 1) 2) (*.f64 2/9 (/.f64 (-.f64 y 1) x)))
(+.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 2/9 (/.f64 (+.f64 y -1) x)))
(fma.f64 2/9 (/.f64 (+.f64 y -1) x) (pow.f64 (+.f64 y -1) 2))
(+.f64 (pow.f64 (+.f64 y -1) 2) (/.f64 (fma.f64 y 2/9 -2/9) x))
(*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x)))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(pow.f64 (-.f64 y 1) 2)
(pow.f64 (+.f64 y -1) 2)
(+.f64 (pow.f64 (-.f64 y 1) 2) (*.f64 2/9 (/.f64 (-.f64 y 1) x)))
(+.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 2/9 (/.f64 (+.f64 y -1) x)))
(fma.f64 2/9 (/.f64 (+.f64 y -1) x) (pow.f64 (+.f64 y -1) 2))
(+.f64 (pow.f64 (+.f64 y -1) 2) (/.f64 (fma.f64 y 2/9 -2/9) x))
(*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x)))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(+.f64 (pow.f64 (-.f64 y 1) 2) (+.f64 (*.f64 1/81 (/.f64 1 (pow.f64 x 2))) (*.f64 2/9 (/.f64 (-.f64 y 1) x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 1/81 (*.f64 x x))))
(+.f64 (pow.f64 (+.f64 y -1) 2) (fma.f64 2/9 (/.f64 (+.f64 y -1) x) (/.f64 (/.f64 1/81 x) x)))
(+.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (+.f64 y -1) (+.f64 (+.f64 y -1) (/.f64 2/9 x))))
(pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)
(pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(pow.f64 y 2)
(*.f64 y y)
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (pow.f64 y 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y))
(*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))
(*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)))
(*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(+.f64 (*.f64 y (-.f64 (*.f64 2/9 (/.f64 1 x)) 2)) (+.f64 (pow.f64 y 2) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(pow.f64 y 2)
(*.f64 y y)
(+.f64 (pow.f64 y 2) (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y))
(*.f64 y (+.f64 y (+.f64 (/.f64 2/9 x) -2)))
(*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)))
(*.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) y)) (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2)))
(+.f64 (fma.f64 y (+.f64 (/.f64 2/9 x) -2) (*.f64 y y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) -2) (fma.f64 y y (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 -2 y)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))
(fma.f64 y (+.f64 (/.f64 2/9 x) (+.f64 y -2)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))

localize72.0ms (1.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.1b
(sqrt.f64 (*.f64 3 (sqrt.f64 x)))
0.0b
(+.f64 y (/.f64 1 (*.f64 x 9)))
0.0b
(-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)
0.2b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(*.f64 3 (sqrt.f64 x))
0.3b
(/.f64 1 (*.f64 x 9))
0.5b
(pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2)
Compiler

Compiled 67 to 48 computations (28.4% saved)

series88.0ms (1.3%)

Counts
2 → 24
Calls

9 calls:

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

rewrite105.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
659×log-prod_binary64
620×prod-diff_binary64
372×fma-def_binary64
247×log1p-udef_binary64
246×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01627
134724
2409624
Stop Event
node limit
Counts
2 → 62
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x))) (cbrt.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (cbrt.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (cbrt.f64 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 1/4) (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 1/4) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 3) (*.f64 (pow.f64 x 1/4) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (pow.f64 (*.f64 3 (sqrt.f64 x)) 1/4)) (pow.f64 (*.f64 3 (sqrt.f64 x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 x x) 81))) (sqrt.f64 (cbrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (cbrt.f64 x)) (cbrt.f64 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 3)) (pow.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (sqrt.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 3 (sqrt.f64 x))) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y (/.f64 1/9 x)) (*.f64 3 (sqrt.f64 x))) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) y) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y (/.f64 1/9 x))) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 3) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) -1) (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 3) -1)) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (pow.f64 (+.f64 y (/.f64 1/9 x)) 2) -1)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3) (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) y (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y (/.f64 1/9 x)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 3 (sqrt.f64 x)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y (/.f64 1/9 x)) (*.f64 3 (sqrt.f64 x)) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))))

simplify45.0ms (0.7%)

Algorithm
egg-herbie
Rules
824×fma-def_binary64
584×unswap-sqr_binary64
542×distribute-rgt-in_binary64
498×distribute-lft-in_binary64
456×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
024491
153267
2133246
3369246
41326246
53787246
66739246
Stop Event
node limit
Counts
86 → 70
Calls
Call 1
Inputs
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
Outputs
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (sqrt.f64 x))
(*.f64 3 (sqrt.f64 x))
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 (sqrt.f64 -1) 2)))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 (sqrt.f64 -1) 2)))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 (sqrt.f64 -1) 2)))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 (sqrt.f64 -1) 2)))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1)))
(*.f64 3 (*.f64 (+.f64 -1 (/.f64 1/9 x)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) 3))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) y))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) y))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 (*.f64 y (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)) (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 (sqrt.f64 3) 2)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (pow.f64 (sqrt.f64 3) 2) y) (*.f64 (pow.f64 (sqrt.f64 3) 2) (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y (+.f64 -1 (/.f64 1/9 x)))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))

eval272.0ms (4%)

Compiler

Compiled 9751 to 7316 computations (25% saved)

prune124.0ms (1.8%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New54515560
Fresh14519
Picked101
Done404
Total56420584
Error
0b
Counts
584 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
50.5b
(sqrt.f64 (*.f64 x (/.f64 1/9 (*.f64 x x))))
43.3b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
0.6b
(*.f64 (*.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
17.1b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
36.4b
(sqrt.f64 (/.f64 1/9 x))
43.3b
(*.f64 3 (*.f64 y (sqrt.f64 x)))
36.5b
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)
20.1b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
36.5b
(*.f64 (sqrt.f64 x) (*.f64 (/.f64 1 x) 1/3))
36.6b
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
43.3b
(*.f64 (sqrt.f64 x) (*.f64 y 3))
20.1b
(*.f64 (-.f64 (/.f64 1 (/.f64 x 1/3)) 3) (sqrt.f64 x))
36.5b
(/.f64 (sqrt.f64 x) (*.f64 x 3))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1/9 x)) 1))
47.0b
(*.f64 -3 (sqrt.f64 x))
27.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
34.1b
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))
36.1b
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
Compiler

Compiled 456 to 360 computations (21.1% saved)

localize29.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/9 x)
0.2b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
0.1b
(sqrt.f64 (*.f64 x 9))
0.0b
(-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1)
0.1b
(sqrt.f64 (*.f64 x 9))
0.2b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
0.4b
(/.f64 1/9 x)
2.5b
(-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1)
Compiler

Compiled 63 to 48 computations (23.8% saved)

series5.0ms (0.1%)

Counts
2 → 36
Calls

12 calls:

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

rewrite73.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
680×log-prod_binary64
641×fma-def_binary64
432×fma-neg_binary64
262×expm1-udef_binary64
262×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01434
133025
2466925
Stop Event
node limit
Counts
2 → 118
Calls
Call 1
Inputs
(-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1)
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/9 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 y 1) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1/9 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y))) (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))) (/.f64 1 (+.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2)) (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 (/.f64 1/9 x) y) 2) (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (-.f64 1 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))) (+.f64 (+.f64 (/.f64 1/9 x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3))) (neg.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y))))) (neg.f64 (+.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 y 3)) (+.f64 (/.f64 1/81 (*.f64 x x)) (-.f64 (*.f64 y y) (*.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 y y)) (-.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3)) 1) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))) 1) (+.f64 (+.f64 (/.f64 1/9 x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/9 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1/9 x)) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 y) (exp.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (exp.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 y) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (/.f64 1 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) 1 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/9 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y 1) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y 1) 1 (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) 2) (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) 1) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 y 1)) (cbrt.f64 (pow.f64 (+.f64 y 1) 2)) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 y 1) 2)) (cbrt.f64 (+.f64 y 1)) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/9 x)) (cbrt.f64 (/.f64 1/81 (*.f64 x x))) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/81 (*.f64 x x))) (cbrt.f64 (/.f64 1/9 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (*.f64 (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) 1) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 (+.f64 y 1)) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/9 (/.f64 1 (neg.f64 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 2) (+.f64 (+.f64 (/.f64 1/9 x) y) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 y 3)) (/.f64 1 (-.f64 (fma.f64 y y 1) y)) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 (+.f64 y 1) 3)) (/.f64 1 (fma.f64 (+.f64 y 1) (-.f64 (+.f64 y 1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/9 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (expm1.f64 (*.f64 2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))) (/.f64 1 (+.f64 (+.f64 (/.f64 1/9 x) y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y y -1) (/.f64 1 (+.f64 y -1)) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y 1) 2)) (/.f64 1 (-.f64 (/.f64 1/9 x) (+.f64 y 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (hypot.f64 1 (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (+.f64 y 1)) 1) (expm1.f64 (*.f64 1/2 (log1p.f64 y))) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) y)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) 3)) (*.f64 -1 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 (sqrt.f64 x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1) (*.f64 (sqrt.f64 x) 3)) (+.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (*.f64 (sqrt.f64 x) 3)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1)) (+.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1)) (+.f64 (/.f64 1/9 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (pow.f64 (*.f64 x 9) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) 3) (*.f64 -1 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) y) (*.f64 (*.f64 (sqrt.f64 x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))))

simplify232.0ms (3.4%)

Algorithm
egg-herbie
Rules
1400×fma-neg_binary64
907×fma-def_binary64
255×distribute-rgt-neg-in_binary64
203×distribute-rgt-in_binary64
183×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017378
138333
284312
3198312
4398312
5798312
61152312
71891312
83344312
94422312
104862312
115417312
125418312
135418312
146228312
156228312
166228312
176228312
Stop Event
saturated
Counts
154 → 127
Calls
Call 1
Inputs
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
Outputs
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (/.f64 1/9 x))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 3 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (/.f64 1/9 x) 3) -3))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 y 3 (+.f64 (/.f64 1/3 x) -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 y 3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 y 3 -3)))

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 -3 (sqrt.f64 x))
0.3b
(*.f64 -3 (sqrt.f64 x))
Compiler

Compiled 10 to 6 computations (40% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 -3 (sqrt.f64 x))
1.0ms
x
@-inf
(*.f64 -3 (sqrt.f64 x))
0.0ms
x
@inf
(*.f64 -3 (sqrt.f64 x))

rewrite37.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
418×pow1_binary64
408×add-sqr-sqrt_binary64
397×*-un-lft-identity_binary64
390×add-log-exp_binary64
390×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
11006
210916
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 -3 (sqrt.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -3) (sqrt.f64 x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -3) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -3) (sqrt.f64 x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -3) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -3 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -3 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -27 (pow.f64 x 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -3 (sqrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 -3 (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -3) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 -27 (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -3 (sqrt.f64 x))))))))

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
15 → 15
Calls
Call 1
Inputs
Outputs

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 x) 1/3)
0.3b
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)
0.3b
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)
0.4b
(*.f64 (sqrt.f64 x) 1/3)
Compiler

Compiled 16 to 9 computations (43.8% saved)

series3.0ms (0%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (sqrt.f64 x) 1/3)
1.0ms
x
@0
(*.f64 (sqrt.f64 x) 1/3)
0.0ms
x
@inf
(*.f64 (sqrt.f64 x) 1/3)
0.0ms
x
@-inf
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)
0.0ms
x
@inf
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)

rewrite45.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
655×pow1_binary64
614×add-log-exp_binary64
614×log1p-expm1-u_binary64
614×expm1-log1p-u_binary64
601×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
52 → 52
Calls
Call 1
Inputs
Outputs

localize13.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 x) 1/3)
0.3b
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
0.3b
(/.f64 x (*.f64 (sqrt.f64 x) 1/3))
0.3b
(/.f64 x (*.f64 (sqrt.f64 x) 1/3))
0.3b
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
0.4b
(*.f64 (sqrt.f64 x) 1/3)
Compiler

Compiled 25 to 15 computations (40% saved)

series3.0ms (0%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(/.f64 x (*.f64 (sqrt.f64 x) 1/3))
0.0ms
x
@0
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
0.0ms
x
@-inf
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
0.0ms
x
@inf
(/.f64 1 (/.f64 x (*.f64 (sqrt.f64 x) 1/3)))
0.0ms
x
@0
(/.f64 x (*.f64 (sqrt.f64 x) 1/3))

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
808×pow1_binary64
756×add-log-exp_binary64
756×log1p-expm1-u_binary64
756×expm1-log1p-u_binary64
738×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
83 → 83
Calls
Call 1
Inputs
Outputs

localize19.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))
0.1b
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
0.0b
(-.f64 1/9 x)
0.0b
(+.f64 (/.f64 1 x) -9)
0.0b
(+.f64 (/.f64 1 x) -9)
0.0b
(-.f64 1/9 x)
0.1b
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
0.2b
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))
Compiler

Compiled 36 to 28 computations (22.2% saved)

series5.0ms (0.1%)

Counts
4 → 36
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
1.0ms
x
@-inf
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
1.0ms
x
@inf
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
0.0ms
x
@0
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))
0.0ms
x
@inf
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))

rewrite120.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
460×log-prod_binary64
347×pow-prod-down_binary64
273×pow2_binary64
262×prod-diff_binary64
189×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
122939
2304339
Stop Event
node limit
Counts
4 → 202
Calls
Call 1
Inputs
(*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(-.f64 1/9 x)
(+.f64 (/.f64 1 x) -9)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1/9 x) -9) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 1/9 x) x) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (-.f64 1/9 x) x) 1) (*.f64 (*.f64 (-.f64 1/9 x) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/9 (+.f64 (/.f64 1 x) -9)) (*.f64 (neg.f64 x) (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1 x) -9) 1/9) (*.f64 (+.f64 (/.f64 1 x) -9) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 1/9 x)) (+.f64 (/.f64 1 x) -9))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 1/9 x)) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 1/9 x)) (+.f64 (/.f64 1 x) -9)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 1/9 x)) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/729 (pow.f64 x 3)) (+.f64 -729 (pow.f64 x -3))) (*.f64 (fma.f64 x (+.f64 1/9 x) 1/81) (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/81 (*.f64 x x)) (+.f64 -729 (pow.f64 x -3))) (*.f64 (+.f64 1/9 x) (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/729 (pow.f64 x 3)) (+.f64 (pow.f64 x -2) -81)) (*.f64 (fma.f64 x (+.f64 1/9 x) 1/81) (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/81 (*.f64 x x)) (+.f64 (pow.f64 x -2) -81)) (*.f64 (+.f64 1/9 x) (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -729 (pow.f64 x -3)) (-.f64 1/729 (pow.f64 x 3))) (*.f64 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))) (fma.f64 x (+.f64 1/9 x) 1/81)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x -2) -81) (-.f64 1/729 (pow.f64 x 3))) (*.f64 (+.f64 (/.f64 1 x) 9) (fma.f64 x (+.f64 1/9 x) 1/81)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -729 (pow.f64 x -3)) (-.f64 1/81 (*.f64 x x))) (*.f64 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))) (+.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x -2) -81) (-.f64 1/81 (*.f64 x x))) (*.f64 (+.f64 (/.f64 1 x) 9) (+.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 (-.f64 1/9 x) x) 3) (pow.f64 (*.f64 (-.f64 1/9 x) -9) 3)) (+.f64 (pow.f64 (/.f64 (-.f64 1/9 x) x) 2) (-.f64 (pow.f64 (*.f64 (-.f64 1/9 x) -9) 2) (*.f64 (/.f64 (-.f64 1/9 x) x) (*.f64 (-.f64 1/9 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 (-.f64 1/9 x) x) 2) (pow.f64 (*.f64 (-.f64 1/9 x) -9) 2)) (-.f64 (/.f64 (-.f64 1/9 x) x) (*.f64 (-.f64 1/9 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/729 (pow.f64 x 3)) (+.f64 (/.f64 1 x) -9)) (fma.f64 x (+.f64 1/9 x) 1/81))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/81 (*.f64 x x)) (+.f64 (/.f64 1 x) -9)) (+.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -729 (pow.f64 x -3)) (-.f64 1/9 x)) (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x -2) -81) (-.f64 1/9 x)) (+.f64 (/.f64 1 x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/9 x) (+.f64 -729 (pow.f64 x -3))) (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/9 x) (+.f64 (pow.f64 x -2) -81)) (+.f64 (/.f64 1 x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1 x) -9) (-.f64 1/729 (pow.f64 x 3))) (fma.f64 x (+.f64 1/9 x) 1/81))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1 x) -9) (-.f64 1/81 (*.f64 x x))) (+.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 1/9 x)) (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (+.f64 (/.f64 1 x) -9) (*.f64 (neg.f64 x) (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1/9 x) (/.f64 1 x) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1/9 x) -9 (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 1/9 x) -9) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (-.f64 1/9 x) x) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (-.f64 1/9 x) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -9 (-.f64 1/9 x) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1 x) -9) 1/9 (*.f64 (+.f64 (/.f64 1 x) -9) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (*.f64 (pow.f64 (cbrt.f64 x) -1) (-.f64 1/9 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2) (*.f64 (cbrt.f64 (-.f64 1/9 x)) (/.f64 1 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2) (*.f64 (cbrt.f64 (-.f64 1/9 x)) -9) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (*.f64 (pow.f64 x -1/2) (-.f64 1/9 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1/9 x)) (*.f64 (sqrt.f64 (-.f64 1/9 x)) (/.f64 1 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1/9 x)) (*.f64 (sqrt.f64 (-.f64 1/9 x)) -9) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 1/9 x) x) 1 (*.f64 (*.f64 (-.f64 1/9 x) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1/9 x) -9)) 2) (cbrt.f64 (*.f64 (-.f64 1/9 x) -9)) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1/9 x) x)) 2) (cbrt.f64 (/.f64 (-.f64 1/9 x) x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) -9)) (sqrt.f64 (*.f64 (-.f64 1/9 x) -9)) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (-.f64 1/9 x) x)) (sqrt.f64 (/.f64 (-.f64 1/9 x) x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 x) (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2)) (cbrt.f64 (-.f64 1/9 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 x) (sqrt.f64 (-.f64 1/9 x))) (sqrt.f64 (-.f64 1/9 x)) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1/9 x) (cbrt.f64 (pow.f64 x -2))) (pow.f64 (cbrt.f64 x) -1) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1/9 x) (pow.f64 x -1/2)) (pow.f64 x -1/2) (*.f64 (-.f64 1/9 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -9 (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2)) (cbrt.f64 (-.f64 1/9 x)) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -9 (sqrt.f64 (-.f64 1/9 x))) (sqrt.f64 (-.f64 1/9 x)) (/.f64 (-.f64 1/9 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/6) (cbrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -9)) (sqrt.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/4) (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1/9 x)) (sqrt.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) -9)) (sqrt.f64 (/.f64 (-.f64 1/9 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (/.f64 (-.f64 1/9 x) x)) (sqrt.f64 (*.f64 (-.f64 1/9 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)) 1/4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/9 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1/9 (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 1/9 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/9 x)))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1/9 x)) (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1/9 x)) 2) (cbrt.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1/9 x)) (sqrt.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/729 (pow.f64 x 3)) (/.f64 1 (fma.f64 x (+.f64 1/9 x) 1/81)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/81 (*.f64 x x)) (/.f64 1 (+.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (+.f64 1/9 x) 1/81) (-.f64 1/729 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1/9 x) (-.f64 1/81 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/729 (pow.f64 x 3)) (fma.f64 x (+.f64 1/9 x) 1/81))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/81 (*.f64 x x)) (+.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1/729 (pow.f64 x 3))) (neg.f64 (fma.f64 x (+.f64 1/9 x) 1/81)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1/81 (*.f64 x x))) (neg.f64 (+.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/729 (pow.f64 (neg.f64 x) 3)) (+.f64 1/81 (-.f64 (pow.f64 (neg.f64 x) 2) (*.f64 1/9 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/81 (pow.f64 (neg.f64 x) 2)) (-.f64 1/9 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1/9 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1/9 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1/9 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 1/9 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 1/9 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (+.f64 1/9 x) 1/81) (-.f64 1/729 (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1/9 x) (-.f64 1/81 (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1/9 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 1/9 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (neg.f64 (cbrt.f64 x)) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (neg.f64 (sqrt.f64 x)) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 x 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 x)) 2) (cbrt.f64 (neg.f64 x)) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 1/9 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (-.f64 1/9 x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (-.f64 1/9 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 1/9 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (-.f64 1/9 x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1/9 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (/.f64 1 x) -9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x -2) (+.f64 (/.f64 1 x) 9)) (/.f64 81 (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1 x) -9) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1 x) -9)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 2)) (cbrt.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -9)) (sqrt.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -729 (pow.f64 x -3)) (/.f64 1 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x -2) -81) (/.f64 1 (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))) (+.f64 -729 (pow.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (/.f64 1 x) 9) (+.f64 (pow.f64 x -2) -81)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -729 (pow.f64 x -3)) (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -729 (pow.f64 x -3)) (+.f64 81 (-.f64 (pow.f64 x -2) (/.f64 -9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x -2) -81) (+.f64 (/.f64 1 x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -729 (pow.f64 x -3))) (neg.f64 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x -2) -81)) (neg.f64 (+.f64 (/.f64 1 x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 81 (pow.f64 x -2)) (-.f64 -9 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1 x) -9) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1 x) -9)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -9)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 x -2) (-.f64 81 (/.f64 -9 x))) (+.f64 -729 (pow.f64 x -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (/.f64 1 x) 9) (+.f64 (pow.f64 x -2) -81)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1 x) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1 x) -9) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 x) -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1 -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) -1) (cbrt.f64 (pow.f64 x -2)) -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (pow.f64 (cbrt.f64 x) -1) -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (pow.f64 x -1/2) -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 x)) -9)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -1) -9)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1 x) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -9)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (/.f64 1 x) -9))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (/.f64 1 x) -9))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -9))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -9)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1 x) -9)))))))

simplify63.0ms (0.9%)

Algorithm
egg-herbie
Rules
214×fma-neg_binary64
62×fma-def_binary64
61×cancel-sign-sub-inv_binary64
49×sub-neg_binary64
36×associate-/l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021225
143207
262207
370207
498207
5145207
6249207
7477207
8673207
9815207
10893207
11916207
12928207
13934207
14935207
Stop Event
saturated
Counts
238 → 221
Calls
Call 1
Inputs
(/.f64 1/9 x)
(-.f64 (*.f64 1/9 (/.f64 1 x)) 2)
(-.f64 (+.f64 (*.f64 1/9 (/.f64 1 x)) (*.f64 9 x)) 2)
(-.f64 (+.f64 (*.f64 1/9 (/.f64 1 x)) (*.f64 9 x)) 2)
(*.f64 9 x)
(-.f64 (*.f64 9 x) 2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(*.f64 9 x)
(-.f64 (*.f64 9 x) 2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
1/9
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (*.f64 -1 x))
(/.f64 1 x)
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
-9
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
-9
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
(-.f64 (/.f64 1 x) 9)
Outputs
(/.f64 1/9 x)
(-.f64 (*.f64 1/9 (/.f64 1 x)) 2)
(+.f64 (/.f64 1/9 x) -2)
(-.f64 (+.f64 (*.f64 1/9 (/.f64 1 x)) (*.f64 9 x)) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
(-.f64 (+.f64 (*.f64 1/9 (/.f64 1 x)) (*.f64 9 x)) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
(*.f64 9 x)
(*.f64 x 9)
(-.f64 (*.f64 9 x) 2)
(fma.f64 9 x -2)
(fma.f64 x 9 -2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
(*.f64 9 x)
(*.f64 x 9)
(-.f64 (*.f64 9 x) 2)
(fma.f64 9 x -2)
(fma.f64 x 9 -2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
(-.f64 (+.f64 (*.f64 9 x) (*.f64 1/9 (/.f64 1 x))) 2)
(+.f64 (/.f64 1/9 x) (fma.f64 9 x -2))
(+.f64 (/.f64 1/9 x) (fma.f64 x 9 -2))
(+.f64 (fma.f64 x 9 (/.f64 1/9 x)) -2)
1/9
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(+.f64 1/9 (*.f64 -1 x))
(+.f64 1/9 (neg.f64 x))
(-.f64 1/9 x)
(/.f64 1 x)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
-9
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
-9
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)
(-.f64 (/.f64 1 x) 9)
(+.f64 (/.f64 1 x) -9)

eval245.0ms (3.6%)

Compiler

Compiled 8602 to 6562 computations (23.7% saved)

prune138.0ms (2%)

Pruning

21 alts after pruning (17 fresh and 4 done)

PrunedKeptTotal
New5549563
Fresh7815
Picked011
Done134
Total56221583
Error
0b
Counts
583 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
0.6b
(*.f64 (*.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
17.1b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
36.6b
(*.f64 -1 (/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3)))
50.1b
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
36.5b
(/.f64 (*.f64 (sqrt.f64 x) 1/3) x)
20.1b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
36.5b
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
36.7b
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
43.3b
(*.f64 (sqrt.f64 x) (*.f64 y 3))
43.3b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
36.5b
(/.f64 (sqrt.f64 x) (*.f64 x 3))
36.5b
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
36.4b
(sqrt.f64 (/.f64 1/9 x))
36.1b
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
47.0b
(*.f64 -3 (sqrt.f64 x))
61.7b
(sqrt.f64 (*.f64 x 9))
43.3b
(*.f64 3 (*.f64 y (sqrt.f64 x)))
34.1b
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))
Compiler

Compiled 402 to 322 computations (19.9% saved)

localize23.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))
0.3b
(*.f64 3 (sqrt.f64 x))
0.0b
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
0.0b
(+.f64 (/.f64 1/9 x) y)
0.0b
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
0.3b
(*.f64 3 (sqrt.f64 x))
0.3b
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))
0.4b
(/.f64 1/9 x)
Compiler

Compiled 54 to 34 computations (37% saved)

series8.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
1.0ms
x
@-inf
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))
1.0ms
x
@inf
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
1.0ms
x
@0
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))
1.0ms
x
@inf
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))

rewrite99.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
742×fma-def_binary64
680×log-prod_binary64
360×fma-neg_binary64
242×egg-rr
233×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01333
129633
2437133
Stop Event
node limit
Counts
2 → 309
Calls
Call 1
Inputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y))
(+.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) 1) (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) 3) (pow.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) 3)) (fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (-.f64 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) (*.f64 3 (*.f64 (sqrt.f64 x) y))) (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))) (-.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 3 (sqrt.f64 x))) (fma.f64 y (-.f64 y (/.f64 1/9 x)) (pow.f64 (/.f64 1/9 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (/.f64 1/9 x) 2) (*.f64 y y)) (*.f64 3 (sqrt.f64 x))) (-.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/729 (pow.f64 x 3)) (pow.f64 y 3))) (fma.f64 y (-.f64 y (/.f64 1/9 x)) (pow.f64 (/.f64 1/9 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (pow.f64 (/.f64 1/9 x) 2) (*.f64 y y))) (-.f64 (/.f64 1/9 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y))) (exp.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (/.f64 1/9 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) y (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (*.f64 (/.f64 1 x) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 3 (sqrt.f64 x)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) y)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/9 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (/.f64 1/9 x) 2)) (*.f64 (cbrt.f64 (/.f64 1/9 x)) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/9 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) 1 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y)))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) y))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 y)) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 y)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (*.f64 (sqrt.f64 y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 x)) 3 (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 x)) 3 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) 1/9) (/.f64 1 x) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 3) (sqrt.f64 x) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (/.f64 1/9 x) 2))) (cbrt.f64 (/.f64 1/9 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x)) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) 3) (sqrt.f64 x) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (*.f64 (sqrt.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (/.f64 (*.f64 x 9) (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (neg.f64 (*.f64 (sqrt.f64 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (fma.f64 (sqrt.f64 x) -1 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (/.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (/.f64 1 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9))) (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (fma.f64 x 9 (-.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3))) (neg.f64 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (neg.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (fma.f64 x 9 (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x 9) (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (-.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)) (pow.f64 (exp.f64 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))) (pow.f64 (exp.f64 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)) (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))) (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x)))) (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x)))) (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))) (pow.f64 (exp.f64 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 (/.f64 1/9 x) y)) (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))) (+.f64 1 (expm1.f64 (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) -1) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (neg.f64 (*.f64 (sqrt.f64 x) -1))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (neg.f64 (*.f64 (sqrt.f64 x) -1))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (neg.f64 (*.f64 (sqrt.f64 x) -1))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (neg.f64 (*.f64 (sqrt.f64 x) -1))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) -1)) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) -1)) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) -1)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 x) -1)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) -1 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) -1 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) -1 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 (sqrt.f64 x) -1 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) 3 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (/.f64 1/9 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) -1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) -1) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) -1) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) -1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 (/.f64 1/9 x) y) -1) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (*.f64 (/.f64 1 x) (*.f64 3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 1 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 1 (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 1 (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) 1 (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 3 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (/.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (/.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (/.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (/.f64 1 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (cbrt.f64 (*.f64 x 9)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/9 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2) (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) 3) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2))) (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (/.f64 1/9 x) 2)) (*.f64 (cbrt.f64 (/.f64 1/9 x)) (*.f64 3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) -1) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/9 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) 3) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (/.f64 1 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (/.f64 1 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (/.f64 1 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (/.f64 1 (-.f64 (fma.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 x 9)))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1 (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1 (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1 (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3 (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3 (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) y)) 3 (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) -1) 3 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))) (cbrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (sqrt.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 x) -1)) 3 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (+.f64 (*.f64 3 (sqrt.f64 x)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (*.f64 x 9)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (-.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -3 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 x)) 3 (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) 1/9) (/.f64 1 x) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (cbrt.f64 x)) (cbrt.f64 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (/.f64 1/9 x) 2))) (cbrt.f64 (/.f64 1/9 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x)) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) 3) (sqrt.f64 x) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) 2)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (sqrt.f64 (+.f64 (/.f64 1/9 x) y))) (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) 3) (sqrt.f64 x) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) 3) (sqrt.f64 x) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) 3) (sqrt.f64 x) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) 3) (sqrt.f64 x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 -3 (*.f64 (sqrt.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x)))) (sqrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))))

simplify30.0ms (0.4%)

Algorithm
egg-herbie
Rules
35×fma-def_binary64
*-commutative_binary64
+-commutative_binary64
associate-+l+_binary64
associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
019438
137429
261393
387393
488393
Stop Event
saturated
Counts
333 → 319
Calls
Call 1
Inputs
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
Outputs
(*.f64 1/3 (sqrt.f64 (/.f64 1 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y)))
(+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x))))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 -3 (sqrt.f64 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 1/3 (sqrt.f64 (/.f64 1 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) -3)))
(+.f64 (*.f64 1/3 (sqrt.f64 (/.f64 1 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) -3)))
(fma.f64 1/3 (sqrt.f64 (/.f64 1 x)) (*.f64 (sqrt.f64 x) (fma.f64 3 y -3)))

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (*.f64 x 9))
0.1b
(sqrt.f64 (*.f64 x 9))
Compiler

Compiled 11 to 8 computations (27.3% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (sqrt.f64 x) (*.f64 x 3))
0.4b
(/.f64 (sqrt.f64 x) (*.f64 x 3))
Compiler

Compiled 15 to 9 computations (40% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (sqrt.f64 x) (*.f64 x 3))
0.0ms
x
@inf
(/.f64 (sqrt.f64 x) (*.f64 x 3))
0.0ms
x
@-inf
(/.f64 (sqrt.f64 x) (*.f64 x 3))

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
668×pow1_binary64
628×add-log-exp_binary64
628×log1p-expm1-u_binary64
628×expm1-log1p-u_binary64
614×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
069
11287
216817
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(/.f64 (sqrt.f64 x) (*.f64 x 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 x -1/2) 1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x -1/2) 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (pow.f64 x -1/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) (pow.f64 (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) 2) (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) (sqrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 x)) (/.f64 1 (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/3 x) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -1/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (pow.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 x) x) (/.f64 (cbrt.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 x 1/4) x) (/.f64 (pow.f64 x 1/4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 x 1/4) 3) (/.f64 (pow.f64 x 1/4) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 x) 3) (/.f64 (cbrt.f64 (sqrt.f64 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 x) 1) (/.f64 (cbrt.f64 (sqrt.f64 x)) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 x 1/4) 1) (/.f64 (pow.f64 x 1/4) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 x 1/4) (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (/.f64 (pow.f64 x 1/4) (cbrt.f64 (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 x 3))) (/.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 x) (sqrt.f64 (*.f64 x 3))) (/.f64 (cbrt.f64 (sqrt.f64 x)) (sqrt.f64 (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x -1/2) 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 x -1/2) 1/3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 x -1/2) 1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 3 (pow.f64 x -1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sqrt.f64 x) (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 x (*.f64 (*.f64 x x) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (cbrt.f64 (exp.f64 (pow.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 x -1/2) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3/2) (pow.f64 (*.f64 x 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 x -1/2) 1/3)))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
38 → 38
Calls
Call 1
Inputs
Outputs

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
0.2b
(/.f64 1 (sqrt.f64 x))
0.2b
(/.f64 1 (sqrt.f64 x))
0.4b
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
Compiler

Compiled 17 to 11 computations (35.3% saved)

series3.0ms (0%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
0.0ms
x
@-inf
(/.f64 1 (sqrt.f64 x))
0.0ms
x
@0
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
0.0ms
x
@inf
(/.f64 1 (sqrt.f64 x))
0.0ms
x
@0
(/.f64 1 (sqrt.f64 x))

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
568×pow1_binary64
529×add-log-exp_binary64
529×log1p-expm1-u_binary64
529×expm1-log1p-u_binary64
517×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0712
114010
2153210
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 (/.f64 1 (sqrt.f64 x)) 1/3)
(/.f64 1 (sqrt.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (/.f64 1/9 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/3 (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1/3 (neg.f64 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/3 (cbrt.f64 x)) (cbrt.f64 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/3 (pow.f64 x 1/4)) (pow.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/9 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (/.f64 1/9 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 1/9 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (sqrt.f64 (/.f64 1/9 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sqrt.f64 (/.f64 1/9 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 1/9 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x -1/2)) (cbrt.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 x) -1/2) (pow.f64 (sqrt.f64 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) -1) (pow.f64 (cbrt.f64 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 x 1/4) -1) (pow.f64 (pow.f64 x 1/4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 x -1/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 x -1/2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 x) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 x -1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x -1/2)))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
37 → 37
Calls
Call 1
Inputs
Outputs

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (neg.f64 (sqrt.f64 x)) 1/3)
0.3b
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
0.3b
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
0.4b
(/.f64 (neg.f64 (sqrt.f64 x)) 1/3)
Compiler

Compiled 32 to 19 computations (40.6% saved)

series4.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
1.0ms
x
@-inf
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
1.0ms
x
@0
(/.f64 (neg.f64 (sqrt.f64 x)) 1/3)
0.0ms
x
@0
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
0.0ms
x
@-inf
(/.f64 (neg.f64 (sqrt.f64 x)) 1/3)

rewrite48.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
609×pow1_binary64
572×add-log-exp_binary64
572×log1p-expm1-u_binary64
572×expm1-log1p-u_binary64
559×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
117212
2210212
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(/.f64 (neg.f64 (sqrt.f64 x)) 1/3)
(/.f64 1 (/.f64 (neg.f64 (sqrt.f64 x)) 1/3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) -3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3)) (cbrt.f64 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (cbrt.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (neg.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3)) (sqrt.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3)) (neg.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3))) (sqrt.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 (sqrt.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sqrt.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1/3 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (/.f64 -1 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/3 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/3 (sqrt.f64 x))) (cbrt.f64 (/.f64 1 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 (*.f64 x 9))) (cbrt.f64 (/.f64 1/3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1/3 (sqrt.f64 x))) (sqrt.f64 (/.f64 1/3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1/3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (sqrt.f64 x)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (sqrt.f64 x)) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x 9)) -1) (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) 3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3)) -1) (pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) 3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) 3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1/3 (sqrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/3 (sqrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/3 (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1/3 (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/3 (sqrt.f64 x))))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
52 → 52
Calls
Call 1
Inputs
Outputs

eval271.0ms (4%)

Compiler

Compiled 10805 to 7226 computations (33.1% saved)

prune104.0ms (1.5%)

Pruning

22 alts after pruning (17 fresh and 5 done)

PrunedKeptTotal
New5306536
Fresh11112
Picked101
Done358
Total53522557
Error
0b
Counts
557 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
36.5b
(/.f64 1/3 (sqrt.f64 x))
0.6b
(*.f64 (*.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
36.6b
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
17.1b
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
36.4b
(sqrt.f64 (/.f64 1/9 x))
34.1b
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))
36.5b
(*.f64 (pow.f64 x -1/2) 1/3)
20.1b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
36.7b
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
43.3b
(*.f64 (sqrt.f64 x) (*.f64 y 3))
43.3b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
36.5b
(/.f64 (sqrt.f64 x) (*.f64 x 3))
36.5b
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
27.5b
(+.f64 (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
36.1b
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
47.0b
(*.f64 -3 (sqrt.f64 x))
50.1b
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
61.7b
(*.f64 3 (sqrt.f64 x))
61.7b
(sqrt.f64 (*.f64 x 9))
43.3b
(*.f64 3 (*.f64 y (sqrt.f64 x)))
Compiler

Compiled 219 to 176 computations (19.6% saved)

regimes55.0ms (0.8%)

Counts
22 → 1
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
(+.f64 (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x -2) 1/9) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))
(*.f64 (*.f64 (*.f64 3 (pow.f64 x 1/4)) (pow.f64 x 1/4)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
Calls

2 calls:

35.0ms
y
14.0ms
x
Results
ErrorSegmentsBranch
0.4b1x
0.4b1y
Compiler

Compiled 183 to 126 computations (31.1% saved)

regimes81.0ms (1.2%)

Counts
18 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
Outputs
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))
Calls

2 calls:

47.0ms
y
27.0ms
x
Results
ErrorSegmentsBranch
1.0b2x
1.0b3y
Compiler

Compiled 119 to 78 computations (34.5% saved)

bsearch86.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
0.06335512579798619
236141923057.3155
56.0ms
-15275159.0048972
-474040.35161372635
Compiler

Compiled 21 to 17 computations (19% saved)

regimes79.0ms (1.2%)

Counts
17 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
(sqrt.f64 (*.f64 (-.f64 1/9 x) (+.f64 (/.f64 1 x) -9)))
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
Calls

2 calls:

45.0ms
x
28.0ms
y
Results
ErrorSegmentsBranch
7.7b2x
7.1b3y
Compiler

Compiled 109 to 72 computations (33.9% saved)

bsearch52.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
1.0154848721891453e+45
8.6574585035928e+47
26.0ms
-15275159.0048972
-474040.35161372635
Compiler

Compiled 21 to 17 computations (19% saved)

regimes83.0ms (1.2%)

Counts
15 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
Outputs
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
Calls

2 calls:

43.0ms
y
36.0ms
x
Results
ErrorSegmentsBranch
18.4b3x
7.1b3y
Compiler

Compiled 91 to 58 computations (36.3% saved)

bsearch54.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
1.0154848721891453e+45
8.6574585035928e+47
25.0ms
-3.011359923061425e+31
-2.3214259223088257e+26
Compiler

Compiled 21 to 17 computations (19% saved)

regimes98.0ms (1.4%)

Counts
14 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(/.f64 1 (/.f64 (sqrt.f64 x) 1/3))
(sqrt.f64 (/.f64 (*.f64 x 1/9) (*.f64 x x)))
Outputs
(sqrt.f64 (+.f64 (/.f64 1/9 x) -2))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

66.0ms
y
28.0ms
x
Results
ErrorSegmentsBranch
18.4b3x
20.4b7y
Compiler

Compiled 83 to 53 computations (36.1% saved)

bsearch52.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
3.031459683253695e+34
4.613777889812643e+34
25.0ms
9.060765594092199e-14
4.827749247117275e-13
Compiler

Compiled 21 to 17 computations (19% saved)

regimes79.0ms (1.2%)

Counts
11 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
Outputs
(sqrt.f64 (/.f64 1/9 x))
(*.f64 (sqrt.f64 x) (*.f64 y 3))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

53.0ms
y
23.0ms
x
Results
ErrorSegmentsBranch
18.4b3x
20.5b7y
Compiler

Compiled 63 to 39 computations (38.1% saved)

bsearch57.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
29.0ms
3.031459683253695e+34
4.613777889812643e+34
27.0ms
1.2088796804753868e-14
2.8397341524654888e-14
Compiler

Compiled 21 to 17 computations (19% saved)

regimes77.0ms (1.1%)

Counts
10 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(/.f64 1 (*.f64 (sqrt.f64 x) 3))
(/.f64 (sqrt.f64 x) (*.f64 x 3))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
Outputs
(sqrt.f64 (/.f64 1/9 x))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

53.0ms
y
21.0ms
x
Results
ErrorSegmentsBranch
18.4b3x
20.5b7y
Compiler

Compiled 57 to 36 computations (36.8% saved)

bsearch53.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
3.031459683253695e+34
4.613777889812643e+34
28.0ms
1.2088796804753868e-14
2.8397341524654888e-14
Compiler

Compiled 21 to 17 computations (19% saved)

regimes35.0ms (0.5%)

Counts
6 → 2
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
(sqrt.f64 (/.f64 1/9 x))
(/.f64 1/3 (sqrt.f64 x))
(*.f64 (pow.f64 x -1/2) 1/3)
Outputs
(sqrt.f64 (/.f64 1/9 x))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

25.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
20.6b2x
33.5b5y
Compiler

Compiled 33 to 23 computations (30.3% saved)

bsearch26.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
0.032864545335528544
0.813118268236028
Compiler

Compiled 21 to 17 computations (19% saved)

regimes13.0ms (0.2%)

Counts
3 → 2
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
(*.f64 -3 (sqrt.f64 x))
Outputs
(sqrt.f64 (*.f64 x 9))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

7.0ms
x
4.0ms
y
Results
ErrorSegmentsBranch
45.9b2x
47.0b1y
Compiler

Compiled 20 to 14 computations (30% saved)

bsearch26.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
0.032864545335528544
0.813118268236028
Compiler

Compiled 21 to 17 computations (19% saved)

regimes9.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

Counts
2 → 1
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 x 9))
(*.f64 3 (sqrt.f64 x))
Outputs
(sqrt.f64 (*.f64 x 9))
Calls

2 calls:

4.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
61.7b1x
61.7b1y
Compiler

Compiled 16 to 12 computations (25% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064309
186309
289309
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
(if (<=.f64 y -65606308367233376/4294967296) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y))) (if (<=.f64 y 1168695791353124864/18446744073709551616) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))))
(if (<=.f64 y -65606308367233376/4294967296) (*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 y -30113599230614250425854489264128) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 x 7178678089923916/79228162514264337593543950336) (sqrt.f64 (+.f64 (/.f64 1/9 x) -2)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 606243856903320064/18446744073709551616) (sqrt.f64 (/.f64 1/9 x)) (*.f64 -3 (sqrt.f64 x)))
(if (<=.f64 x 606243856903320064/18446744073709551616) (sqrt.f64 (*.f64 x 9)) (*.f64 -3 (sqrt.f64 x)))
(sqrt.f64 (*.f64 x 9))
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) 1) 1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (+.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) -1) -1))
(if (<=.f64 y -65606308367233376/4294967296) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y))) (if (<=.f64 y 1168695791353124864/18446744073709551616) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 3 y)))))
(if (<=.f64 y -2050197136476043/134217728) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 y 3))) (if (<=.f64 y 570652241871643/9007199254740992) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3)) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (*.f64 y 3)))))
(if (<=.f64 y -65606308367233376/4294967296) (*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 y -2050197136476043/134217728) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 y -30113599230614250425854489264128) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 y -30113599230614250425854489264128) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 y 1015484872189145284147626215359835722829791232) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3)) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 x 7178678089923916/79228162514264337593543950336) (sqrt.f64 (+.f64 (/.f64 1/9 x) -2)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 1794669522480979/19807040628566084398385987584) (sqrt.f64 (+.f64 (/.f64 1/9 x) -2)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 (sqrt.f64 x) -3)))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 (sqrt.f64 x) -3)))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x))))
(if (<=.f64 x 7662185262791671/633825300114114700748351602688) (sqrt.f64 (/.f64 1/9 x)) (if (<=.f64 x 30314596832536952178929065634299904) (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 (sqrt.f64 x) -3)))
(if (<=.f64 x 606243856903320064/18446744073709551616) (sqrt.f64 (/.f64 1/9 x)) (*.f64 -3 (sqrt.f64 x)))
(if (<=.f64 x 1184070033014297/36028797018963968) (sqrt.f64 (/.f64 1/9 x)) (*.f64 (sqrt.f64 x) -3))
(if (<=.f64 x 606243856903320064/18446744073709551616) (sqrt.f64 (*.f64 x 9)) (*.f64 -3 (sqrt.f64 x)))
(if (<=.f64 x 1184070033014297/36028797018963968) (sqrt.f64 (*.f64 x 9)) (*.f64 (sqrt.f64 x) -3))
(sqrt.f64 (*.f64 x 9))

end122.0ms (1.8%)

Stop Event
fuel
Compiler

Compiled 434 to 303 computations (30.2% saved)

Profiling

Loading profile data...