Details

Time bar (total: 10.9s)

analyze55.0ms (0.5%)

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 (11.5%)

Results
1.2s8256×body256valid
43.0ms402×body256invalid

preprocess72.0ms (0.7%)

Algorithm
egg-herbie
Rules
880×fma-neg_binary64
613×times-frac_binary64
420×associate-/l*_binary64
408×fma-def_binary64
394×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02042
14636
212636
336932
477732
5113932
6228732
7465632
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 y (+.f64 (/.f64 1/9 x) -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (*.f64 3 (sqrt.f64 y)) (+.f64 (/.f64 1/9 y) (-.f64 x 1)))
(*.f64 3 (*.f64 (sqrt.f64 y) (+.f64 (/.f64 1/9 y) (+.f64 x -1))))
(*.f64 (sqrt.f64 y) (fma.f64 3 x (+.f64 -3 (/.f64 1/3 y))))
(*.f64 (sqrt.f64 y) (+.f64 (fma.f64 3 x -3) (/.f64 1/3 y)))
Compiler

Compiled 18 to 15 computations (16.7% saved)

simplify250.0ms (2.3%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
01321
12818
26918
319216
439916
558516
6117816
7256016
8431716
9499816
10555716
11607416
12610216
13610216
14705216
15713716
16713716
17713716
18713716
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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (fma.f64 3 y -3) (/.f64 1/3 x)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))

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.3b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))
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)

localize53.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 36 to 24 computations (33.3% saved)

series13.0ms (0.1%)

Counts
4 → 60
Calls

21 calls:

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

rewrite155.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
472×log-prod_binary64
363×prod-exp_binary64
363×exp-prod_binary64
286×pow-prod-down_binary64
277×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
122039
2273039
Stop Event
node limit
Counts
4 → 165
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))
(/.f64 -1/3 x)
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) -3) (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (sqrt.f64 x)) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (sqrt.f64 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1/2) (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 x)) 1) (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sqrt.f64 x)) (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1/2) (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 x)) 1) (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1) (log.f64 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (*.f64 (log.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1) (*.f64 (log.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (*.f64 (log.f64 (sqrt.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1) (*.f64 (log.f64 (sqrt.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -3 (sqrt.f64 x) (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 x)))))))
((#(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 (*.f64 1/9 (pow.f64 x -2)) 1/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 (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 x -3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x -3) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 -1/3 x))) 2)) (cbrt.f64 (log.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 -1/3 x)))) (sqrt.f64 (log.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/9 (pow.f64 x -2)))))) (#(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 expm1.f64 (log1p.f64 (/.f64 -1/3 x)))))) (#(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 exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 -1/3 x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 -1/3 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 -1/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x -3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 -1/3 x)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1/3 x) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 y) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 -3 y (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -3 y) 1) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -3 y (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -3 y) 3) (pow.f64 (/.f64 -1/3 x) 3)) (+.f64 (pow.f64 (*.f64 -3 y) 2) (-.f64 (*.f64 1/9 (pow.f64 x -2)) (*.f64 (*.f64 -3 y) (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 -3 y) 2) (*.f64 1/9 (pow.f64 x -2))) (fma.f64 -3 y (neg.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 2)) (cbrt.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))))) (sqrt.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 -1/3 x))) (pow.f64 (exp.f64 y) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) -3) (+.f64 1 (expm1.f64 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 3) 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2) (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (/.f64 1 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (/.f64 1 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) (neg.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (neg.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -27 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 3)) (+.f64 9 (-.f64 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2) (*.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 9 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2)) (-.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)) (cbrt.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) (sqrt.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (neg.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (neg.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 2) (cbrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (fma.f64 -3 y (/.f64 -1/3 x)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))))

simplify138.0ms (1.3%)

Algorithm
egg-herbie
Rules
809×fma-neg_binary64
534×fma-def_binary64
348×cancel-sign-sub-inv_binary64
142×distribute-rgt-in_binary64
107×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032678
177607
2160569
3369569
4942569
52035569
62980569
73356569
83997569
94005569
104005569
Stop Event
saturated
Counts
225 → 187
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.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)
(/.f64 1/3 x)
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -1 (+.f64 3 (*.f64 -3 y)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(*.f64 -1 (+.f64 3 (*.f64 -3 y)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
Outputs
(*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x)))
(neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x)))
(*.f64 (+.f64 3 (/.f64 -1/3 x)) (neg.f64 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.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 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.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 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -1 (*.f64 (-.f64 3 (*.f64 1/3 (/.f64 1 x))) (sqrt.f64 x))))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (neg.f64 (*.f64 (-.f64 3 (/.f64 1/3 x)) (sqrt.f64 x))))
(*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (+.f64 3 (/.f64 -1/3 x))) (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) (fma.f64 y -3 3)))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.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 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(/.f64 1/3 x)
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 -1 (+.f64 3 (*.f64 -3 y)))
(neg.f64 (+.f64 3 (*.f64 y -3)))
(fma.f64 3 y -3)
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 -1 (+.f64 3 (*.f64 -3 y)))
(neg.f64 (+.f64 3 (*.f64 y -3)))
(fma.f64 3 y -3)
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 3 (*.f64 -3 y))))
(+.f64 (fma.f64 3 y (/.f64 1/3 x)) -3)
(-.f64 (/.f64 1/3 x) (fma.f64 y -3 3))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))

localize39.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 36 computations (29.4% saved)

series21.0ms (0.2%)

Counts
4 → 48
Calls

18 calls:

TimeVariablePointExpression
3.0ms
x
@0
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
2.0ms
x
@-inf
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
2.0ms
y
@inf
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
2.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))

rewrite123.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
620×prod-diff_binary64
614×log-prod_binary64
360×fma-def_binary64
226×log1p-udef_binary64
225×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01347
128338
2374438
Stop Event
node limit
Counts
4 → 152
Calls
Call 1
Inputs
(*.f64 3 (sqrt.f64 x))
(/.f64 1 (*.f64 x 9))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(-.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 (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 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 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 (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 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 expm1.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x))))))) (#(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 +.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 (cbrt.f64 (*.f64 (*.f64 x x) 81))) (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 expm1.f64 (log1p.f64 (/.f64 1/9 x)))))) (#(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 +.f64 0 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.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 3) (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)) (+.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 3) (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.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 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 3 (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 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)))) (#(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 3) (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.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 expm1.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1))))) (#(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 +.f64 (/.f64 1/9 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1/9 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(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) -1) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(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 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (pow.f64 (cbrt.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 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (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 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1) (/.f64 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 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1) (/.f64 1 (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 1) (-.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.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 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (-.f64 1 (*.f64 (+.f64 (/.f64 1/9 x) y) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.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 /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1)) (neg.f64 (+.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 (neg.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1)) (neg.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3)) (fma.f64 y y (-.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (+.f64 (/.f64 1/9 x) -1)) (*.f64 y (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (+.f64 (/.f64 1/9 x) -1))) (-.f64 y (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) (+.f64 (/.f64 1/9 x) (+.f64 y 1))) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (/.f64 1/9 x) (+.f64 y 1)) (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (exp.f64 (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/9 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) -1) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) 1 (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) 1 -1)))) (#(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)) -1)))) (#(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)) -1)))) (#(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) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/9 x)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2) (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(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)) -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)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1/9 x)) (sqrt.f64 (/.f64 1/9 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 (+.f64 (/.f64 1/9 x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (*.f64 x -9)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.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))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 x 9) -2)) (/.f64 1 (-.f64 y (/.f64 1/9 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/9 (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 (+.f64 (/.f64 1/9 x) -1))) (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) -1)) (sqrt.f64 (+.f64 (/.f64 1/9 x) -1)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (/.f64 1 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (*.f64 (*.f64 x x) 81))) (cbrt.f64 (/.f64 1/9 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (/.f64 1/9 x)) 1) (-.f64 (sqrt.f64 (/.f64 1/9 x)) 1) y)))))

simplify269.0ms (2.5%)

Algorithm
egg-herbie
Rules
1343×fma-neg_binary64
960×fma-def_binary64
275×unsub-neg_binary64
268×distribute-rgt-in_binary64
232×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
019489
143444
292423
3210423
4440423
5848423
61230423
72084423
83601423
94502423
104869423
115207423
125380423
135380423
146436423
156549423
166549423
176549423
186549423
Stop Event
saturated
Counts
200 → 165
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 (*.f64 1/9 (/.f64 1 x)) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(/.f64 1/9 x)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 y 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 y 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
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 -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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(-.f64 (*.f64 1/9 (/.f64 1 x)) 1)
(+.f64 (/.f64 1/9 x) -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(/.f64 1/9 x)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 y 1)
(+.f64 y -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 y 1)
(+.f64 y -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(+.f64 (/.f64 1/9 x) (+.f64 y -1))

eval129.0ms (1.2%)

Compiler

Compiled 6032 to 4349 computations (27.9% saved)

prune78.0ms (0.7%)

Pruning

24 alts after pruning (23 fresh and 1 done)

PrunedKeptTotal
New32923352
Fresh000
Picked101
Done011
Total33024354
Error
0.0b
Counts
354 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
20.3b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
39.3b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
23.9b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
39.6b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
39.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) y)
0.5b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1/9 x)) 1))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))
34.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))
32.3b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)
34.6b
(*.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))
0.6b
(fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))
43.9b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (pow.f64 (*.f64 x -3) -1))))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
20.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
1.4b
(*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))
31.0b
(/.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)))
37.5b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))
Compiler

Compiled 641 to 514 computations (19.8% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1)
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.2b
(/.f64 1 (*.f64 x 9))
Compiler

Compiled 48 to 36 computations (25% saved)

series5.0ms (0%)

Counts
2 → 12
Calls

9 calls:

TimeVariablePointExpression
2.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))

rewrite70.0ms (0.6%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01127
124424
2329724
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 y (+.f64 (/.f64 1/9 x) -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 y (+.f64 (/.f64 1/9 x) -1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 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 (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 y (+.f64 (/.f64 1/9 x) -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -1)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 y (+.f64 (/.f64 1/9 x) -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 y (+.f64 (/.f64 1/9 x) -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (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 x 9) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 1))))) (#(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 +.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 expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) 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 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))))))

simplify269.0ms (2.5%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
015240
136195
280174
3195174
4410174
5817174
61183174
71923174
83403174
94485174
104924174
115483174
125484174
135484174
146294174
156294174
166294174
176294174
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 -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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (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 -3 (/.f64 1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 17 to 7 computations (58.8% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

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

rewrite97.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07180
111180
218180
320180
Stop Event
saturated
Counts
46 → 24
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
Outputs
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))
(*.f64 y (sqrt.f64 x))

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 14 computations (39.1% saved)

series4.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite101.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
861×pow1_binary64
799×add-log-exp_binary64
798×log1p-expm1-u_binary64
798×expm1-log1p-u_binary64
782×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
118612
2222512
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 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)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 3) -1) (*.f64 3 (sqrt.f64 x))) (fma.f64 y y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 y y -1) (*.f64 3 (sqrt.f64 x))) (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (pow.f64 y 3) -1)) (fma.f64 y y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (fma.f64 y y -1)) (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) (sqrt.f64 x)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.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 y -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))))))))

simplify12.0ms (0.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
010159
117132
232114
342114
Stop Event
saturated
Counts
31 → 24
Calls
Call 1
Inputs
(*.f64 -3 (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
Outputs
(*.f64 -3 (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(*.f64 3 (*.f64 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 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(*.f64 3 (*.f64 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 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))

localize35.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 29 computations (25.6% saved)

series57.0ms (0.5%)

Counts
3 → 15
Calls

9 calls:

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

rewrite184.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
496×log-prod_binary64
368×exp-prod_binary64
323×pow-prod-down_binary64
266×pow2_binary64
232×prod-diff_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01126
123626
2280326
Stop Event
node limit
Counts
3 → 124
Calls
Call 1
Inputs
(*.f64 1/9 (/.f64 1 x))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
(-.f64 (*.f64 1/9 (/.f64 1 x)) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1/9 x))))) (#(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 (/.f64 1/9 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/9 x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x 1/9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1/9 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/9 (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/9 (pow.f64 (cbrt.f64 x) 2)) (cbrt.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 (E.f64) (log.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x -2) 1/81) 1/2)))) (#(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 (pow.f64 x -3) 1/729) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (+.f64 (/.f64 1/9 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x 1/9) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 1/9 x))) 2)) (cbrt.f64 (log.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 1/9 x)))) (sqrt.f64 (log.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x -2) 1/81))))) (#(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 (pow.f64 x -3) 1/729))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/9 x)))))) (#(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 (log.f64 (cbrt.f64 (/.f64 1/9 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 1/3 (sqrt.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x -3) 1/729)) 1/3))))) (#(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 exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 1/9 x)) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (/.f64 1/9 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (/.f64 1/9 x)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (/.f64 1/9 x))) 2) (cbrt.f64 (+.f64 1 (/.f64 1/9 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 (/.f64 1/9 x))) (sqrt.f64 (+.f64 1 (/.f64 1/9 x))) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.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)) (/.f64 1/9 x)) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (*.f64 3 (+.f64 (/.f64 1/9 x) -1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (*.f64 3 (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (*.f64 3 (+.f64 (/.f64 1/9 x) -1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (*.f64 3 (+.f64 (/.f64 1/9 x) -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 x -3) 1/729 -1) (*.f64 3 (sqrt.f64 x))) (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 x -2) 1/81 -1) (*.f64 3 (sqrt.f64 x))) (+.f64 1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (fma.f64 (pow.f64 x -3) 1/729 -1)) (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (fma.f64 (pow.f64 x -2) 1/81 -1)) (+.f64 1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))) 2)) (cbrt.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))))) (sqrt.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (*.f64 3 (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x)) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x) (*.f64 (*.f64 3 (sqrt.f64 x)) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/9 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.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 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1/9 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) 2) (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) -1)) (sqrt.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 x -3) 1/729 -1) (/.f64 1 (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 x -2) 1/81 -1) (/.f64 1 (+.f64 1 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 x -1/2) 1/3 1) (fma.f64 (pow.f64 x -1/2) 1/3 -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x)) (fma.f64 (pow.f64 x -3) 1/729 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (/.f64 1/9 x)) (fma.f64 (pow.f64 x -2) 1/81 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x -3) 1/729 -1) (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x -3) 1/729 -1) (fma.f64 (pow.f64 x -2) 1/81 (-.f64 1 (*.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x -2) 1/81 -1) (+.f64 1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 x -3) 1/729 -1)) (neg.f64 (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 x -2) 1/81 -1)) (neg.f64 (+.f64 1 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/9 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (fma.f64 (pow.f64 x -2) 1/81 1) (/.f64 1/9 x)) (fma.f64 (pow.f64 x -3) 1/729 -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (/.f64 1/9 x)) (fma.f64 (pow.f64 x -2) 1/81 -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1))) 2)) (cbrt.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1)))) (sqrt.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/9 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log.f64 (/.f64 1/9 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (/.f64 1/9 x) -1))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) -1)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (/.f64 1 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/9 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/9 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (*.f64 (/.f64 1 (cbrt.f64 x)) 1/9) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1/9 x)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)) -1)))) (#(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)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (*.f64 (pow.f64 x -1/2) 1/9) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 (/.f64 1/3 (sqrt.f64 x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/9 (cbrt.f64 (pow.f64 x -2))) (/.f64 1 (cbrt.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/9 (pow.f64 x -1/2)) (pow.f64 x -1/2) -1)))))

simplify16.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0554
Stop Event
saturated
Counts
139 → 125
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 1/9 x)
-1
-1
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 1/9 x)
-1
-1

localize51.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)
0.3b
(/.f64 1/9 x)
0.3b
(*.f64 3 (sqrt.f64 x))
35.5b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))
Compiler

Compiled 67 to 46 computations (31.3% saved)

series57.0ms (0.5%)

Counts
3 → 24
Calls

15 calls:

TimeVariablePointExpression
25.0ms
x
@0
(cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))
9.0ms
x
@-inf
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)
5.0ms
x
@inf
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)
4.0ms
y
@inf
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)
4.0ms
x
@0
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)

rewrite125.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
693×log-prod_binary64
437×fma-def_binary64
250×fma-neg_binary64
248×pow1/3_binary64
247×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01443
132243
2427243
Stop Event
node limit
Counts
3 → 152
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))
(/.f64 1/9 x)
(pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.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) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 x 9))) (*.f64 -1 (sqrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) 1) (*.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) y)) (*.f64 (sqrt.f64 (*.f64 x 9)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9)))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9))))))))) (#(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 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 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(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))) (sqrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 x 9))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))) (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(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))) (sqrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (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 (sqrt.f64 (*.f64 x 9)) (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)) 3) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (sqrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (sqrt.f64 (sqrt.f64 (*.f64 x 9))))))) (#(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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) 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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))))))))) (#(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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))) (-.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.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)) (sqrt.f64 (*.f64 x 9))) (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)) (sqrt.f64 (*.f64 x 9))) (-.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.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 (sqrt.f64 (*.f64 x 9)) (-.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 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 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 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9))))))) (#(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 log.f64 (*.f64 (exp.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (exp.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))))) (#(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 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 exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 (sqrt.f64 x) (+.f64 y -1)) (*.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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 9)) (/.f64 1/9 x) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) y) (*.f64 (sqrt.f64 (*.f64 x 9)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (*.f64 (/.f64 1 x) (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y -1) (sqrt.f64 (*.f64 x 9)) (*.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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.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 (sqrt.f64 (*.f64 x 9))) (/.f64 1/9 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x 9)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 x 9))) (+.f64 y -1)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y -1)) 2) (*.f64 (cbrt.f64 (+.f64 y -1)) (sqrt.f64 (*.f64 x 9))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(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)) (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (/.f64 1/9 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (+.f64 y -1)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y -1)) (*.f64 (sqrt.f64 (+.f64 y -1)) (sqrt.f64 (*.f64 x 9))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) 1 (*.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) (sqrt.f64 (*.f64 x 9)) (*.f64 -1 (sqrt.f64 (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))) (cbrt.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (*.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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (sqrt.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))) (*.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 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (/.f64 1/3 (sqrt.f64 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (*.f64 (/.f64 1/3 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (+.f64 y -1)) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (*.f64 (sqrt.f64 (+.f64 y -1)) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (sqrt.f64 (+.f64 y -1))) (*.f64 (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (sqrt.f64 (+.f64 y -1))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 x)) 3 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y -1) (sqrt.f64 x)) 3 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) 1/9) (/.f64 1 x) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2)) (cbrt.f64 (/.f64 1/9 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (/.f64 1/3 (sqrt.f64 x))) (/.f64 1/3 (sqrt.f64 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) 3) (sqrt.f64 x) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y -1) 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 y -1) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y -1) (sqrt.f64 (sqrt.f64 (*.f64 x 9)))) (sqrt.f64 (sqrt.f64 (*.f64 x 9))) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (pow.f64 (cbrt.f64 (+.f64 y -1)) 2)) (cbrt.f64 (+.f64 y -1)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (sqrt.f64 (+.f64 y -1))) (sqrt.f64 (+.f64 y -1)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))))))))
((#(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 pow.f64 (/.f64 (*.f64 x 9) 1) -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 expm1.f64 (log1p.f64 (/.f64 1/9 x)))))) (#(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 +.f64 0 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))) (*.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)))) (*.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))) (cbrt.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))))) (log.f64 (cbrt.f64 (exp.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 +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)))) (log.f64 (sqrt.f64 (exp.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 -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x 9)) (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 (sqrt.f64 (*.f64 x 9)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 27 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))) (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 27 (pow.f64 x 3/2)) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) (*.f64 27 (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3/2) (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) 3) (*.f64 (sqrt.f64 x) (+.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) (+.f64 y -1)) 2) (*.f64 x 9)) (sqrt.f64 (*.f64 x 9))) (+.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) (+.f64 y -1)) 2) (*.f64 x 9)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (sqrt.f64 (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) 1) (*.f64 (sqrt.f64 x) (*.f64 3 (+.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) (+.f64 y -1)) 2) (*.f64 x 9)) (cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)))) (cbrt.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 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (sqrt.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.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 log.f64 (+.f64 1 (expm1.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 (pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.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 log1p.f64 (expm1.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 exp.f64 (*.f64 3 (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 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (sqrt.f64 x) (/.f64 1/9 x))) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9)) (*.f64 (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2) (*.f64 x 9))))))))

simplify85.0ms (0.8%)

Algorithm
egg-herbie
Rules
640×associate-+l+_binary64
528×distribute-lft-out_binary64
504×fma-def_binary64
497×associate-+r+_binary64
440×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
055861
1187804
2661708
33181612
Stop Event
node limit
Counts
176 → 174
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))))
(*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 -54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3))))) y)) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 -54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3))))) y)) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
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 -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 (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 -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 (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 -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 (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 -3 (/.f64 1/3 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (sqrt.f64 x) (*.f64 3 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 -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 (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 -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 (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 -3 (/.f64 1/3 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (sqrt.f64 x) (*.f64 3 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 -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 (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 -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 (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 -3 (/.f64 1/3 x))))
(*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 27))
(*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 27 (pow.f64 x 3/2)))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (*.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 27)))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 27 (pow.f64 x 3/2))))
(*.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) (-.f64 (+.f64 -27 (/.f64 3 x)) (*.f64 y -81)))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (fma.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 27))))
(fma.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (pow.f64 x 3/2)) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 27 (pow.f64 x 3/2)) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (fma.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81)))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (+.f64 (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81))) (*.f64 (fabs.f64 (pow.f64 x 3/2)) (+.f64 (*.f64 27 (pow.f64 y 3)) (*.f64 27 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)))
(*.f64 (pow.f64 y 3) (*.f64 27 (pow.f64 x 3/2)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81)))
(fma.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81))))
(fma.f64 y (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3))))
(*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27)))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (fma.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))
(+.f64 (*.f64 y (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))))) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (fma.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81)))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (+.f64 (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81))) (*.f64 (fabs.f64 (pow.f64 x 3/2)) (+.f64 (*.f64 27 (pow.f64 y 3)) (*.f64 27 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)))
(*.f64 (pow.f64 y 3) (*.f64 27 (pow.f64 x 3/2)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81)))
(fma.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81))))
(fma.f64 y (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3))))
(*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 -54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3))))) y)) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (fma.f64 27 (*.f64 (fabs.f64 (pow.f64 x 3/2)) (pow.f64 y 3)) (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3)))) (*.f64 -54 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (sqrt.f64 (pow.f64 x 3))))) y)) (+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 (pow.f64 y 2) (+.f64 (*.f64 54 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))) (*.f64 27 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 (pow.f64 x 3)))))))))
(fma.f64 y (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 81) (fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (fma.f64 27 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (sqrt.f64 (pow.f64 x 3))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (pow.f64 x 3))) 81)))))
(fma.f64 y (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81)) (+.f64 (*.f64 (*.f64 y y) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (fabs.f64 (pow.f64 x 3/2)) 81))) (*.f64 (fabs.f64 (pow.f64 x 3/2)) (+.f64 (*.f64 27 (pow.f64 y 3)) (*.f64 27 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (*.f64 (pow.f64 x 3/2) 81) y)) (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 (pow.f64 x 3/2) 81)))))
(fma.f64 27 (*.f64 (pow.f64 x 3/2) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3))) (*.f64 y (*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) 81)) (+.f64 (/.f64 1/9 x) (+.f64 -1 y)))))

eval426.0ms (3.9%)

Compiler

Compiled 10557 to 7965 computations (24.6% saved)

prune105.0ms (1%)

Pruning

25 alts after pruning (22 fresh and 3 done)

PrunedKeptTotal
New56812580
Fresh81018
Picked101
Done235
Total57925604
Error
0.0b
Counts
604 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
39.3b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (/.f64 1/9 x) 1))
23.9b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
39.6b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
59.5b
(*.f64 3 (sqrt.f64 (*.f64 x (*.f64 y y))))
0.5b
(*.f64 (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
34.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))
20.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
39.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) y)
20.2b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
43.5b
(*.f64 -3 (sqrt.f64 x))
0.6b
(fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))
44.3b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 2)
0.3b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
43.9b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
0.9b
(*.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (sqrt.f64 (*.f64 x 9))))
59.7b
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
20.6b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
23.8b
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) -1))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
1.4b
(*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))
Compiler

Compiled 618 to 495 computations (19.9% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 39 to 28 computations (28.2% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

12 calls:

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

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
866×prod-diff_binary64
574×log-prod_binary64
356×fma-def_binary64
226×expm1-udef_binary64
226×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01228
126728
2358728
Stop Event
node limit
Counts
2 → 108
Calls
Call 1
Inputs
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x))) (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))) (*.f64 (/.f64 1/9 x) (*.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)) (/.f64 1/9 x)) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)) (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x)))))) (#(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 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (/.f64 1/9 x) 3) (pow.f64 (+.f64 y -1) 3)) (*.f64 3 (sqrt.f64 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 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 1/9 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 3 (sqrt.f64 x)) (-.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 pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))) 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 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x))) 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 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 expm1.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (*.f64 3 (sqrt.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x)) (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x)) (*.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1) (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x)))))) (#(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 (+.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 (exp.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1/81 (*.f64 x x)) (-.f64 (/.f64 1/9 x) (+.f64 y -1))) (/.f64 (pow.f64 (+.f64 y -1) 2) (-.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 1 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.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 (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 (pow.f64 (/.f64 1/9 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)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2)) (/.f64 1 (-.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.f64 1/9 x)) (/.f64 1/81 (*.f64 x x))) (+.f64 (pow.f64 (/.f64 1/9 x) 3) (pow.f64 (+.f64 y -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (/.f64 1/9 x) (+.f64 y -1)) (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 1/9 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 (pow.f64 (/.f64 1/9 x) 3) (pow.f64 (+.f64 y -1) 3)) (+.f64 (pow.f64 (+.f64 y -1) 2) (-.f64 (/.f64 1/81 (*.f64 x x)) (*.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.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 /.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 1/9 x) 3) (pow.f64 (+.f64 y -1) 3))) (neg.f64 (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 (neg.f64 (-.f64 (/.f64 1/81 (*.f64 x x)) (pow.f64 (+.f64 y -1) 2))) (neg.f64 (-.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/9 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) (*.f64 x (+.f64 -1 (pow.f64 y 3)))) (*.f64 x (-.f64 (fma.f64 y y 1) (*.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) (*.f64 (*.f64 x 9) (+.f64 -1 (pow.f64 y 3)))) (*.f64 (*.f64 x 9) (-.f64 (fma.f64 y y 1) (*.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -1/9 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) (*.f64 (neg.f64 x) (+.f64 -1 (pow.f64 y 3)))) (*.f64 (neg.f64 x) (-.f64 (fma.f64 y y 1) (*.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/9 (+.f64 y 1) (*.f64 x (fma.f64 y y -1))) (*.f64 x (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 y 1) (*.f64 (*.f64 x 9) (fma.f64 y y -1))) (*.f64 (*.f64 x 9) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -1/9 (+.f64 y 1) (*.f64 (neg.f64 x) (fma.f64 y y -1))) (*.f64 (neg.f64 x) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (+.f64 -1 (pow.f64 y 3)) x (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) 1/9)) (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (fma.f64 y y -1) x (*.f64 (+.f64 y 1) 1/9)) (*.f64 (+.f64 y 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (+.f64 -1 (pow.f64 y 3)) (*.f64 x 9) (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) 1)) (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (fma.f64 y y -1) (*.f64 x 9) (*.f64 (+.f64 y 1) 1)) (*.f64 (+.f64 y 1) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (+.f64 -1 (pow.f64 y 3)) (neg.f64 x) (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) -1/9)) (*.f64 (-.f64 (fma.f64 y y 1) (*.f64 y -1)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (fma.f64 y y -1) (neg.f64 x) (*.f64 (+.f64 y 1) -1/9)) (*.f64 (+.f64 y 1) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 (/.f64 1/9 x) y) 3) -1) (fma.f64 (+.f64 (/.f64 1/9 x) y) (+.f64 (/.f64 1/9 x) y) (-.f64 1 (*.f64 (+.f64 (/.f64 1/9 x) y) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 y -1) 2) (/.f64 1/81 (*.f64 x x))) (-.f64 (+.f64 y -1) (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (+.f64 (/.f64 1/9 x) y) (+.f64 (/.f64 1/9 x) y) -1) (-.f64 (+.f64 (/.f64 1/9 x) y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (exp.f64 (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1/9 x)) (+.f64 1 (expm1.f64 (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1/9 x))) (+.f64 1 (expm1.f64 (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y -1))) (exp.f64 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 y -1)) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y -1))) (+.f64 1 (expm1.f64 (/.f64 1/9 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/9 (/.f64 1 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) 1 (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (+.f64 -1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y -1) 1 (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1/9 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (+.f64 -1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y -1) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (/.f64 1/9 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (cbrt.f64 (*.f64 y y)) (+.f64 -1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (+.f64 -1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 y -1)) (pow.f64 (cbrt.f64 (+.f64 y -1)) 2) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y -1)) 2) (cbrt.f64 (+.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) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1/9 x)) 2) (cbrt.f64 (/.f64 1/9 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (+.f64 -1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y -1)) (sqrt.f64 (+.f64 y -1)) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/3 (sqrt.f64 x)) (/.f64 1/3 (sqrt.f64 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/9 (/.f64 1 (neg.f64 x)) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 -1 (pow.f64 y 3)) (/.f64 1 (-.f64 (fma.f64 y y 1) (*.f64 y -1))) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1/9 (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y y -1) (/.f64 1 (+.f64 y 1)) (/.f64 1/9 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) y) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) (cbrt.f64 (+.f64 (/.f64 1/9 x) y))) (cbrt.f64 (+.f64 (/.f64 1/9 x) y)) -1)))) (#(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)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 y) 1) (-.f64 (sqrt.f64 y) 1) (/.f64 1/9 x))))))

simplify274.0ms (2.5%)

Algorithm
egg-herbie
Rules
1343×fma-neg_binary64
956×fma-def_binary64
275×unsub-neg_binary64
270×distribute-rgt-in_binary64
234×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
019441
143396
292375
3210375
4442375
5853375
61235375
72087375
83597375
94492375
104862375
115207375
125376375
135376375
146432375
156545375
166545375
176545375
186545375
Stop Event
saturated
Counts
144 → 122
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))))
(/.f64 1/9 x)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 y 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 y 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (*.f64 1/9 (/.f64 1 x)) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
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 -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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.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 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(*.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 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (+.f64 -3 (fma.f64 3 y (/.f64 1/3 x))))
(/.f64 1/9 x)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 y 1)
(+.f64 y -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 y 1)
(+.f64 y -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (*.f64 1/9 (/.f64 1 x)) 1)
(+.f64 (/.f64 1/9 x) -1)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
y
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)
(-.f64 (+.f64 y (*.f64 1/9 (/.f64 1 x))) 1)
(+.f64 y (+.f64 (/.f64 1/9 x) -1))
(+.f64 (/.f64 1/9 x) (+.f64 y -1))
(+.f64 (+.f64 (/.f64 1/9 x) -1) y)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 6 computations (40% saved)

series3.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))
1.0ms
x
@inf
(*.f64 -3 (sqrt.f64 x))

rewrite66.0ms (0.6%)

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
210936
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 (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 (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 (+.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 expm1.f64 (log1p.f64 (*.f64 -3 (sqrt.f64 x))))))) (#(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))))))))

simplify12.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

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series5.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
894×pow1_binary64
839×add-log-exp_binary64
839×log1p-expm1-u_binary64
839×expm1-log1p-u_binary64
824×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify13.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize39.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 45 to 34 computations (24.4% saved)

series7.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

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

rewrite88.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
497×log-prod_binary64
373×exp-prod_binary64
307×pow-prod-down_binary64
265×pow2_binary64
232×prod-diff_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01127
123627
2279825
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 2)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (fma.f64 3 (/.f64 1/9 x) -3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (fma.f64 3 (/.f64 1/9 x) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 3 (/.f64 1/9 x) -3) 2) x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 3 (/.f64 1/9 x) -3) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (fma.f64 3 (/.f64 1/9 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (fma.f64 3 (/.f64 1/9 x) -3))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1/9 x) (sqrt.f64 x)) (*.f64 -1 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) (/.f64 1/9 x)) (*.f64 (sqrt.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 x -3) 1/729 -1) (sqrt.f64 x)) (fma.f64 (pow.f64 x -2) 1/81 (+.f64 1 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 x -2) 1/81 -1) (sqrt.f64 x)) (+.f64 1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (fma.f64 (pow.f64 x -3) 1/729 -1)) (fma.f64 (pow.f64 x -2) 1/81 (+.f64 1 (/.f64 1/9 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (fma.f64 (pow.f64 x -2) 1/81 -1)) (+.f64 1 (/.f64 1/9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 2)) (cbrt.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))) (sqrt.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1/9 x) (sqrt.f64 x) (*.f64 -1 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (/.f64 1/9 x) (*.f64 (sqrt.f64 x) -1))))))

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize88.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1/9 x)
2.2b
(*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27)))
18.5b
(*.f64 (pow.f64 x 3/2) (*.f64 y y))
31.6b
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
Compiler

Compiled 90 to 63 computations (30% saved)

series56.0ms (0.5%)

Counts
3 → 32
Calls

18 calls:

TimeVariablePointExpression
12.0ms
x
@-inf
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
10.0ms
x
@-inf
(*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27)))
7.0ms
x
@inf
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
4.0ms
y
@0
(*.f64 (pow.f64 x 3/2) (*.f64 y y))
3.0ms
y
@-inf
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))

rewrite140.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
905×log-prod_binary64
488×fma-def_binary64
324×expm1-udef_binary64
324×log1p-udef_binary64
268×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01864
140164
2518360
Stop Event
node limit
Counts
3 → 125
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
(*.f64 (pow.f64 x 3/2) (*.f64 y y))
(*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))) (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (cbrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x 3/2)) (cbrt.f64 (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x 3/2)) (pow.f64 (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4)))) (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4))) 1/3) (pow.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 3/2) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (pow.f64 x 3/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 y 4) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 x 3/2) 3) (pow.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y y) 3) (pow.f64 (pow.f64 x 3/2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) 1) (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y)))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) 3) (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) 3)) (fma.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (-.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)))) (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))) (-.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 19683 (pow.f64 y 3) (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 3)) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (fma.f64 (*.f64 y 27) (-.f64 (*.f64 y 27) (fma.f64 (/.f64 1/9 x) 81 -81)) (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 2) (*.f64 (*.f64 y y) 729)) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (+.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 -27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (fma.f64 19683 (pow.f64 y 3) (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 3))) (fma.f64 (*.f64 y 27) (-.f64 (*.f64 y 27) (fma.f64 (/.f64 1/9 x) 81 -81)) (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (-.f64 (pow.f64 (fma.f64 (/.f64 1/9 x) 81 -81) 2) (*.f64 (*.f64 y y) 729))) (+.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 -27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 y (pow.f64 x 3/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)) 2) (*.f64 (pow.f64 y 4) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (exp.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 3) (pow.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81)) 3) (pow.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 y 27 (fma.f64 (/.f64 1/9 x) 81 -81))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 27 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 (pow.f64 x 3/2) (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 (pow.f64 x 3/2) (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (*.f64 y 27) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 81 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 81 (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 27 (*.f64 y (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 27) (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (cbrt.f64 y) 3) 2) (*.f64 (*.f64 (cbrt.f64 y) 3) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) 2) (*.f64 (cbrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 27)) (*.f64 (sqrt.f64 (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 x 3/4)) (*.f64 (*.f64 y (pow.f64 x 3/4)) (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 x 3/4)) (*.f64 (*.f64 y (pow.f64 x 3/4)) (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))) 1 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3/2) y) (*.f64 y (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3/2) y) (*.f64 y (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (sqrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27)))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)))) (sqrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81)))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y (pow.f64 x 3/4)) (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (*.f64 y (pow.f64 x 3/4)) (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y (pow.f64 x 3/4)) (sqrt.f64 (*.f64 y 27))) (*.f64 (*.f64 y (pow.f64 x 3/4)) (sqrt.f64 (*.f64 y 27))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 y (pow.f64 x 3/4))) (*.f64 (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 y (pow.f64 x 3/4))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 y 27)) (*.f64 y (pow.f64 x 3/4))) (*.f64 (sqrt.f64 (*.f64 y 27)) (*.f64 y (pow.f64 x 3/4))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 y y)) (pow.f64 x 3/2) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 27) (*.f64 y y)) (pow.f64 x 3/2) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) 81 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 81) (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (pow.f64 (cbrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) 2)) (cbrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81))) (sqrt.f64 (fma.f64 (/.f64 1/9 x) 81 -81)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) y) 27 (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) 27) y (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (pow.f64 (*.f64 (cbrt.f64 y) 3) 2)) (*.f64 (cbrt.f64 y) 3) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (sqrt.f64 (*.f64 y 27))) (sqrt.f64 (*.f64 y 27)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (pow.f64 x 3/2)) (*.f64 y y) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (cbrt.f64 (*.f64 (pow.f64 y 4) (pow.f64 x 3)))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 y (pow.f64 x 3/4))) (*.f64 y (pow.f64 x 3/4)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 (/.f64 1/9 x) 81 -81) (*.f64 (pow.f64 x 3/2) y)) y (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (*.f64 y 27))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 27) (pow.f64 x 3/2)) (*.f64 y y) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 27) (cbrt.f64 (*.f64 (pow.f64 y 4) (pow.f64 x 3)))) (cbrt.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y))) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 27) (*.f64 y (pow.f64 x 3/4))) (*.f64 y (pow.f64 x 3/4)) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 27) (*.f64 (pow.f64 x 3/2) y)) y (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (fma.f64 (/.f64 1/9 x) 81 -81))))))))

simplify93.0ms (0.8%)

Algorithm
egg-herbie
Rules
505×associate-/l/_binary64
419×fma-def_binary64
340×associate-/r/_binary64
332×associate-*l*_binary64
319×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0931001
1267910
2847801
34322795
Stop Event
node limit
Counts
157 → 149
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -243 (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -1/27 (*.f64 (/.f64 (+.f64 (*.f64 -13122 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3)) (*.f64 2187 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3))) (pow.f64 y 2)) (sqrt.f64 x))) (+.f64 (*.f64 -243 (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x))))))
(*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x))))
(+.f64 (*.f64 729 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)) 1/3) (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) y) (sqrt.f64 x)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))))
(+.f64 (*.f64 729 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)) 1/3) (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) y) (sqrt.f64 x)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (+.f64 (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x))) (*.f64 -1/3 (*.f64 (/.f64 (+.f64 (*.f64 -118098 (*.f64 (pow.f64 1 1/3) (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (pow.f64 (cbrt.f64 -27) 2)))) (*.f64 19683 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (pow.f64 (cbrt.f64 -27) 2)))) (*.f64 (pow.f64 y 2) (pow.f64 (cbrt.f64 -27) 2))) (sqrt.f64 x))))))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
Outputs
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 (*.f64 3 y) (sqrt.f64 x))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 27 (/.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9))))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) (/.f64 (*.f64 27 (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (/.f64 (+.f64 -27 (*.f64 27 (/.f64 1/9 x))) (cbrt.f64 9))))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (*.f64 (/.f64 27 (cbrt.f64 9)) (+.f64 (/.f64 1/9 x) -1))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -243 (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 -243 (/.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (sqrt.f64 x)) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (*.f64 27 (/.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9)))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 (*.f64 27 (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9)) (*.f64 -243 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2)))))))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) (fma.f64 27 (/.f64 (+.f64 (/.f64 1/9 x) -1) (cbrt.f64 9)) (*.f64 (/.f64 -243 y) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (pow.f64 (cbrt.f64 9) 2))))))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (/.f64 -243 y) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (pow.f64 (cbrt.f64 9) 2))) (fma.f64 3 y (*.f64 (/.f64 27 (cbrt.f64 9)) (+.f64 (/.f64 1/9 x) -1)))))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (+.f64 (*.f64 -1/27 (*.f64 (/.f64 (+.f64 (*.f64 -13122 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3)) (*.f64 2187 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3))) (pow.f64 y 2)) (sqrt.f64 x))) (+.f64 (*.f64 -243 (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (sqrt.f64 x))) (*.f64 27 (*.f64 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (cbrt.f64 9)) (sqrt.f64 x))))))
(fma.f64 3 (*.f64 y (sqrt.f64 x)) (fma.f64 -1/27 (*.f64 (sqrt.f64 x) (/.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) -10935) (*.f64 y y))) (fma.f64 -243 (/.f64 (*.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (sqrt.f64 x)) (*.f64 y (pow.f64 (cbrt.f64 9) 2))) (*.f64 27 (/.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9))))))
(+.f64 (*.f64 (sqrt.f64 x) (+.f64 (/.f64 (*.f64 27 (+.f64 (/.f64 1/9 x) -1)) (cbrt.f64 9)) (*.f64 -243 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (*.f64 y (pow.f64 (cbrt.f64 9) 2)))))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 3 y) (*.f64 -1/27 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (/.f64 (*.f64 y y) -10935))))))
(*.f64 (sqrt.f64 x) (+.f64 (fma.f64 3 y (/.f64 (*.f64 405 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3)) (*.f64 y y))) (fma.f64 27 (/.f64 (+.f64 (/.f64 1/9 x) -1) (cbrt.f64 9)) (*.f64 (/.f64 -243 y) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (pow.f64 (cbrt.f64 9) 2))))))
(*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))
(neg.f64 (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27))))
(*.f64 (*.f64 y (cbrt.f64 -27)) (neg.f64 (sqrt.f64 x)))
(*.f64 y (*.f64 (sqrt.f64 x) (neg.f64 (cbrt.f64 -27))))
(+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x))))
(fma.f64 27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1))) (neg.f64 (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27)))))
(-.f64 (*.f64 27 (*.f64 (sqrt.f64 x) (*.f64 (+.f64 (/.f64 1/9 x) -1) (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)))))) (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27))))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 27 (/.f64 1/9 x)))) (*.f64 y (cbrt.f64 -27))))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 (/.f64 1/9 x) 27))) (*.f64 y (cbrt.f64 -27))))
(+.f64 (*.f64 729 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)) 1/3) (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) y) (sqrt.f64 x)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))))
(fma.f64 729 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) y)) (sqrt.f64 x)) (fma.f64 27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1))) (neg.f64 (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27))))))
(-.f64 (fma.f64 (*.f64 729 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)))) (*.f64 (sqrt.f64 x) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) y)) (*.f64 27 (*.f64 (sqrt.f64 x) (*.f64 (+.f64 (/.f64 1/9 x) -1) (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))))))) (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27))))
(fma.f64 729 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) (/.f64 y (sqrt.f64 x)))) (*.f64 (sqrt.f64 x) (-.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 27 (/.f64 1/9 x)))) (*.f64 y (cbrt.f64 -27)))))
(*.f64 (sqrt.f64 x) (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 (/.f64 1/9 x) 27))) (-.f64 (*.f64 729 (*.f64 (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) y) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 y (cbrt.f64 -27)))))
(+.f64 (*.f64 729 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)) 1/3) (*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 2) y) (sqrt.f64 x)))) (+.f64 (*.f64 27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))) (+.f64 (*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x))) (*.f64 -1/3 (*.f64 (/.f64 (+.f64 (*.f64 -118098 (*.f64 (pow.f64 1 1/3) (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (pow.f64 (cbrt.f64 -27) 2)))) (*.f64 19683 (/.f64 (pow.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) 3) (pow.f64 (cbrt.f64 -27) 2)))) (*.f64 (pow.f64 y 2) (pow.f64 (cbrt.f64 -27) 2))) (sqrt.f64 x))))))
(fma.f64 729 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) y)) (sqrt.f64 x)) (fma.f64 27 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (*.f64 (sqrt.f64 x) (+.f64 (/.f64 1/9 x) -1))) (fma.f64 -1 (*.f64 (sqrt.f64 x) (*.f64 y (cbrt.f64 -27))) (*.f64 -1/3 (*.f64 (sqrt.f64 x) (/.f64 (+.f64 (*.f64 -118098 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (pow.f64 (cbrt.f64 -27) 2))) (*.f64 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (pow.f64 (cbrt.f64 -27) 2)) 19683)) (*.f64 (*.f64 y y) (pow.f64 (cbrt.f64 -27) 2))))))))
(fma.f64 729 (*.f64 (sqrt.f64 x) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2) y))) (fma.f64 27 (*.f64 (sqrt.f64 x) (*.f64 (+.f64 (/.f64 1/9 x) -1) (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))))) (*.f64 (sqrt.f64 x) (+.f64 (neg.f64 (*.f64 y (cbrt.f64 -27))) (*.f64 -1/3 (/.f64 (*.f64 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (pow.f64 (cbrt.f64 -27) 2)) -98415) (*.f64 y (*.f64 y (pow.f64 (cbrt.f64 -27) 2)))))))))
(fma.f64 (sqrt.f64 x) (-.f64 (*.f64 -1/3 (/.f64 (/.f64 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (pow.f64 (cbrt.f64 -27) 2)) (/.f64 (*.f64 y y) -98415)) (pow.f64 (cbrt.f64 -27) 2))) (*.f64 y (cbrt.f64 -27))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 27 (/.f64 1/9 x)))) (/.f64 (*.f64 (*.f64 729 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7)))) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2)) y))))
(*.f64 (sqrt.f64 x) (+.f64 (fma.f64 -1/3 (*.f64 (/.f64 (pow.f64 (+.f64 (/.f64 1/9 x) -1) 3) (*.f64 y (pow.f64 (cbrt.f64 -27) 2))) (/.f64 -98415 (*.f64 y (pow.f64 (cbrt.f64 -27) 2)))) (*.f64 y (neg.f64 (cbrt.f64 -27)))) (+.f64 (*.f64 729 (*.f64 (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 7))) y) (pow.f64 (+.f64 (/.f64 1/9 x) -1) 2))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -27) 2))) (+.f64 -27 (*.f64 (/.f64 1/9 x) 27))))))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 (pow.f64 y 2) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (sqrt.f64 (pow.f64 x 3)))
(*.f64 (*.f64 y y) (pow.f64 x 3/2))
(*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3))))
(*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)))
(*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) 81)))
(*.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (pow.f64 x 3/2)) (*.f64 (*.f64 y y) 81))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)))
(*.f64 (pow.f64 x 3/2) (*.f64 27 (pow.f64 y 3)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3))))
(*.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)))
(*.f64 27 (*.f64 (pow.f64 x 3/2) (pow.f64 y 3)))
(*.f64 (pow.f64 x 3/2) (*.f64 27 (pow.f64 y 3)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))
(+.f64 (*.f64 27 (*.f64 (pow.f64 y 3) (sqrt.f64 (pow.f64 x 3)))) (*.f64 81 (*.f64 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (pow.f64 y 2)) (sqrt.f64 (pow.f64 x 3)))))
(fma.f64 27 (*.f64 (sqrt.f64 (pow.f64 x 3)) (pow.f64 y 3)) (*.f64 81 (*.f64 (sqrt.f64 (pow.f64 x 3)) (*.f64 (+.f64 (/.f64 1/9 x) -1) (*.f64 y y)))))
(*.f64 (sqrt.f64 (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 81 (*.f64 y y)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 27 (pow.f64 y 3))))
(*.f64 (pow.f64 x 3/2) (*.f64 (*.f64 y y) (+.f64 (+.f64 -81 (*.f64 81 (/.f64 1/9 x))) (*.f64 y 27))))
(*.f64 (*.f64 (*.f64 y y) (pow.f64 x 3/2)) (+.f64 (*.f64 y 27) (+.f64 (*.f64 (/.f64 1/9 x) 81) -81)))

eval415.0ms (3.8%)

Compiler

Compiled 11302 to 8226 computations (27.2% saved)

prune110.0ms (1%)

Pruning

30 alts after pruning (22 fresh and 8 done)

PrunedKeptTotal
New55614570
Fresh9817
Picked011
Done077
Total56530595
Error
0b
Counts
595 → 30
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
39.3b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
0.5b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
23.9b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
39.6b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
59.5b
(*.f64 3 (sqrt.f64 (*.f64 x (*.f64 y y))))
50.2b
(cbrt.f64 (*.f64 -27 (pow.f64 x 3/2)))
23.8b
(*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (*.f64 x 9)))
62.1b
(sqrt.f64 (*.f64 x 9))
39.5b
(*.f64 y (*.f64 (sqrt.f64 x) (neg.f64 (cbrt.f64 -27))))
39.8b
(*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))
20.7b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
20.2b
(*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
23.9b
(*.f64 3 (*.f64 (-.f64 (/.f64 1/9 x) 1) (sqrt.f64 x)))
39.7b
(/.f64 (*.f64 (-.f64 -27 (/.f64 -1/27 (pow.f64 x 3))) (sqrt.f64 x)) (+.f64 (+.f64 9 (/.f64 1/9 (*.f64 x x))) (/.f64 1 x)))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
43.9b
(*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9)))
20.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
39.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) y)
40.9b
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) 3))
0.3b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
43.9b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
59.7b
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
24.4b
(*.f64 3 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 3))
34.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (pow.f64 (*.f64 x -3) -1)))
43.5b
(*.f64 -3 (sqrt.f64 x))
Compiler

Compiled 628 to 508 computations (19.1% saved)

localize31.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 52 to 40 computations (23.1% saved)

series55.0ms (0.5%)

Counts
3 → 36
Calls

12 calls:

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

rewrite89.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
866×prod-diff_binary64
368×fma-def_binary64
271×expm1-udef_binary64
271×log1p-udef_binary64
232×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01533
134231
2434231
Stop Event
node limit
Counts
3 → 83
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2)
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
(pow.f64 (*.f64 x 9) 1/4)
Outputs
((#(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 (pow.f64 (*.f64 x 9) 1/4) (pow.f64 (*.f64 x 9) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (sqrt.f64 x)) 1)))) (#(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 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 (pow.f64 (*.f64 x 9) 1/4)) (pow.f64 (*.f64 x 9) 1/4)))))) (#(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 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) (pow.f64 9 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 9 1/4) (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 9) 1/8) (*.f64 (pow.f64 (*.f64 x 9) 1/8) (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 x 9) 1/4) (pow.f64 (*.f64 x 9) 1/8)) (pow.f64 (*.f64 x 9) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 1/4) (pow.f64 x 1/4)) (*.f64 (pow.f64 9 1/4) (pow.f64 9 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.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 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 2)) 1/2) (pow.f64 (cbrt.f64 (*.f64 x 9)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 x 1/4) 2) (pow.f64 (pow.f64 9 1/4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 x 9) 1/4) (cbrt.f64 (*.f64 3 (sqrt.f64 x)))) (cbrt.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 x 9) 1/4) (pow.f64 x 1/4)) (pow.f64 9 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 (exp.f64 (*.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 expm1.f64 (log1p.f64 (*.f64 3 (sqrt.f64 x))))))) (#(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 x 9)) 1/2))))) (#(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 +.f64 (*.f64 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x))) (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))) (*.f64 (/.f64 1/9 x) (*.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)) (/.f64 1/9 x)) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)) (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x)))))) (#(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 (exp.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))) 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 3 (sqrt.f64 x))) (fma.f64 (+.f64 y -1) (-.f64 (+.f64 y -1) (/.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) (pow.f64 (+.f64 y -1) 2)) (*.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 (/.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)) (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) (pow.f64 (+.f64 y -1) 2))) (-.f64 (/.f64 1/9 x) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 3 (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 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)))) (#(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 (exp.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1))) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.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 expm1.f64 (log1p.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x) (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 y -1) (*.f64 (*.f64 3 (sqrt.f64 x)) (/.f64 1/9 x)))))) (#(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 (/.f64 1/9 x) (*.f64 3 (sqrt.f64 x)) (*.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y -1) (*.f64 3 (sqrt.f64 x)) (*.f64 (/.f64 1/9 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 -1 (*.f64 3 (sqrt.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 x 9) 1/4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 9) 1/4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 x 9) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 1/4)) (cbrt.f64 (*.f64 3 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x))) (cbrt.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 1/4) (pow.f64 9 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 9) 1/8) (pow.f64 (*.f64 x 9) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 x 9))) (sqrt.f64 (cbrt.f64 (*.f64 3 (sqrt.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/4) (pow.f64 (*.f64 x 9) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 2)) 1/4) (pow.f64 (cbrt.f64 (*.f64 x 9)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (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 sqrt.f64 (*.f64 3 (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (*.f64 x 9) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 x 9) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x 9) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 x 9) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 x 9) 1/4)) 1))))))

simplify70.0ms (0.6%)

Algorithm
egg-herbie
Rules
691×fma-neg_binary64
623×fma-def_binary64
512×unswap-sqr_binary64
463×div-sub_binary64
292×exp-sum_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
040588
1106543
2258450
3641330
41829330
55665330
Stop Event
node limit
Counts
119 → 96
Calls
Call 1
Inputs
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(*.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))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
Outputs
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 x))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x)))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x))) 2)
(pow.f64 (*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4)) 2)
(sqrt.f64 (*.f64 9 x))
(*.f64 3 (sqrt.f64 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 3 (*.f64 (+.f64 -1 (/.f64 1/9 x)) (sqrt.f64 x)))
(*.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 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (*.f64 3 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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 (sqrt.f64 x) (*.f64 3 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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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 -1 (/.f64 1/9 x)) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -3 (/.f64 1/3 x))))
(*.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)))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 1/4) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 1/4) (pow.f64 x 1/4))
(pow.f64 (*.f64 9 x) 1/4)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 8 computations (27.3% saved)

localize27.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 17 computations (29.2% saved)

series4.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite75.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
838×pow1_binary64
779×add-log-exp_binary64
778×log1p-expm1-u_binary64
778×expm1-log1p-u_binary64
763×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
118612
2218612
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 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) y) (*.f64 (*.f64 (sqrt.f64 x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 3) -1) (*.f64 (sqrt.f64 x) 3)) (fma.f64 y y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 y y -1) (*.f64 (sqrt.f64 x) 3)) (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 (pow.f64 y 3) -1)) (fma.f64 y y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (fma.f64 y y -1)) (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 y -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 y -1)) (*.f64 (sqrt.f64 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (pow.f64 (*.f64 x 9) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x 9) 3/2) (pow.f64 (+.f64 y -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 y -1) (*.f64 (sqrt.f64 x) 3))))))))

simplify20.0ms (0.2%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
010159
117132
232114
342114
Stop Event
saturated
Counts
31 → 24
Calls
Call 1
Inputs
(*.f64 -3 (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
Outputs
(*.f64 -3 (sqrt.f64 x))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(*.f64 3 (*.f64 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 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(*.f64 3 (*.f64 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 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(+.f64 (*.f64 3 (*.f64 y (sqrt.f64 x))) (*.f64 -3 (sqrt.f64 x)))
(fma.f64 3 (*.f64 (sqrt.f64 x) y) (*.f64 -3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 3 y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))

localize39.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 42 to 29 computations (31% saved)

series16.0ms (0.1%)

Counts
3 → 60
Calls

18 calls:

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

rewrite125.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
572×log-prod_binary64
366×pow-prod-down_binary64
355×fma-def_binary64
324×pow2_binary64
224×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01141
125135
2342435
Stop Event
node limit
Counts
3 → 153
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
(+.f64 (/.f64 -1/3 x) (*.f64 -3 y))
(-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) -3) (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (sqrt.f64 x)) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (sqrt.f64 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 x)) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -3 (sqrt.f64 x) (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1/9 (*.f64 x x)) (+.f64 (/.f64 -1/3 x) (*.f64 3 y))) (/.f64 (*.f64 (*.f64 y y) 9) (+.f64 (/.f64 -1/3 x) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -3 y (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3))) (/.f64 1 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.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)) (*.f64 (*.f64 y y) 9)) (/.f64 1 (+.f64 (/.f64 -1/3 x) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (/.f64 1/9 (*.f64 x x))) (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (/.f64 -1/3 x) (*.f64 3 y)) (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (*.f64 y y) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3))) (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (/.f64 1/9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3))) (fma.f64 (*.f64 y y) 9 (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (/.f64 -1/3 x) (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (*.f64 y y) 9)) (+.f64 (/.f64 -1/3 x) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3)))) (neg.f64 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.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)) (*.f64 (*.f64 y y) 9))) (neg.f64 (+.f64 (/.f64 -1/3 x) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 y y) 9) (/.f64 1/9 (*.f64 x x))) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (/.f64 1/9 (*.f64 x x))) (fma.f64 (pow.f64 y 3) -27 (*.f64 -1/27 (pow.f64 x -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (/.f64 -1/3 x) (*.f64 3 y)) (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (*.f64 y y) 9))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 -1/3 x))) (pow.f64 (exp.f64 y) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 -1/3 x)) (+.f64 1 (expm1.f64 (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 -1/3 x))) (+.f64 1 (expm1.f64 (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -3 y))) (exp.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) -3) (+.f64 1 (expm1.f64 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -3 y))) (+.f64 1 (expm1.f64 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -3 y (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/3 (/.f64 1 x) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -1/3 x) 1 (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y -3 (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -3 y) 1 (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 -1/3 x) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -3 y) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 -3 y)) (cbrt.f64 (*.f64 (*.f64 y y) 9)) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 y y) 9)) (cbrt.f64 (*.f64 -3 y)) (/.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) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 -1/3 x)) 2) (cbrt.f64 (/.f64 -1/3 x)) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) -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 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 -1/3 x)) (sqrt.f64 (/.f64 -1/3 x)) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) -3) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/3 (/.f64 1 (neg.f64 x)) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) -1/3 (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -3 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -3 (sqrt.f64 y)) (sqrt.f64 y) (/.f64 -1/3 x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (*.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (neg.f64 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 3 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 y) -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 -1 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 y y) 9))) (cbrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 -3 y))) (sqrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2) (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (/.f64 1 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (/.f64 1 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3)) (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) (neg.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (neg.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 3) (*.f64 (pow.f64 y 3) -27)) (+.f64 (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 2) (fma.f64 (*.f64 y y) 9 (*.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -27 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 3)) (+.f64 9 (-.f64 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2) (*.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 2) (*.f64 (*.f64 y y) 9)) (+.f64 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 9 (pow.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2)) (-.f64 -3 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 -3 y (/.f64 -1/3 x)) (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 9) (-.f64 -27 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) (-.f64 9 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (-.f64 -3 (/.f64 -1/3 x))) (+.f64 1 (expm1.f64 (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (neg.f64 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 y) -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 -1 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 y y) 9))) (cbrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 -3 (/.f64 -1/3 x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 -3 y))) (sqrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2)) (neg.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) (neg.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 2) (cbrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (neg.f64 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 y) -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 -1 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 y y) 9))) (cbrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) 2) (cbrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 -3 y))) (sqrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (neg.f64 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 y) -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 -1 (*.f64 -3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 y y) 9))) (cbrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (neg.f64 (sqrt.f64 (*.f64 -3 y))) (sqrt.f64 (*.f64 -3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (fma.f64 -3 y (/.f64 -1/3 x)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 (fma.f64 -3 y (/.f64 -1/3 x)) 2))) (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) (sqrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) -3)))))

simplify141.0ms (1.3%)

Algorithm
egg-herbie
Rules
847×fma-def_binary64
681×fma-neg_binary64
186×cancel-sign-sub-inv_binary64
178×distribute-rgt-in_binary64
126×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
032672
177569
2140569
3253569
4466569
5736569
61369569
72379569
83191569
93371569
103693569
113693569
Stop Event
saturated
Counts
213 → 174
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)))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -3 y)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(/.f64 1/3 x)
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(*.f64 -1 (+.f64 (*.f64 -3 y) 3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(*.f64 -1 (+.f64 (*.f64 -3 y) 3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 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) (+.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) (+.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) (+.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 (sqrt.f64 x) (*.f64 3 y))
(*.f64 3 (*.f64 (sqrt.f64 x) 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) (+.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) (+.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) (+.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 (sqrt.f64 x) (*.f64 3 y))
(*.f64 3 (*.f64 (sqrt.f64 x) 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) (+.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) (+.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) (+.f64 (/.f64 1/3 x) (fma.f64 3 y -3)))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(/.f64 -1/3 x)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(*.f64 -3 y)
(*.f64 y -3)
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(-.f64 (*.f64 -3 y) (*.f64 1/3 (/.f64 1 x)))
(-.f64 (*.f64 y -3) (/.f64 1/3 x))
(fma.f64 y -3 (/.f64 -1/3 x))
(/.f64 1/3 x)
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 -1 (+.f64 3 (*.f64 -3 y))) (*.f64 1/3 (/.f64 1 x)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 -1 (+.f64 (*.f64 -3 y) 3))
(neg.f64 (fma.f64 -3 y 3))
(fma.f64 3 y -3)
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 -1 (+.f64 (*.f64 -3 y) 3))
(neg.f64 (fma.f64 -3 y 3))
(fma.f64 3 y -3)
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -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)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(*.f64 3 y)
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(fma.f64 -1 (fma.f64 -3 y 3) (/.f64 1/3 x))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))

localize27.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 32 to 24 computations (25% saved)

series7.0ms (0.1%)

Counts
2 → 12
Calls

6 calls:

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

rewrite440.0ms (4%)

Algorithm
batch-egg-rewrite
Rules
961×pow1_binary64
899×add-log-exp_binary64
899×log1p-expm1-u_binary64
899×expm1-log1p-u_binary64
98×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0922
119816
2242516
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (pow.f64 (*.f64 x -3) -1)))
(pow.f64 (*.f64 x -3) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 (sqrt.f64 x)) (*.f64 (neg.f64 (/.f64 -1/3 x)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) -3) (*.f64 (sqrt.f64 x) (neg.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 -27 (pow.f64 (*.f64 x -3) -3)) (sqrt.f64 x)) (+.f64 9 (*.f64 (/.f64 -1/3 x) (+.f64 -3 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 9 (pow.f64 (*.f64 x -3) -2)) (sqrt.f64 x)) (+.f64 -3 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 -27 (pow.f64 (*.f64 x -3) -3))) (+.f64 9 (*.f64 (/.f64 -1/3 x) (+.f64 -3 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (-.f64 9 (pow.f64 (*.f64 x -3) -2))) (+.f64 -3 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 -3 (/.f64 -1/3 x))) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 -3 (/.f64 -1/3 x)) 3) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 x) (-.f64 -3 (/.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 (/.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 (pow.f64 x -1) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/3 (pow.f64 x -1))))) (#(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 (pow.f64 (cbrt.f64 (*.f64 (*.f64 x x) 9)) -1) (pow.f64 (cbrt.f64 (*.f64 x -3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 x -3)) -1) (pow.f64 (sqrt.f64 (*.f64 x -3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x -3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x -1) -3)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 -1/3 x)) (sqrt.f64 (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (cbrt.f64 (*.f64 (*.f64 x x) 9))) (cbrt.f64 (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x -3) -2))))) (#(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 x -3) -3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -1/3 x)))))) (#(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)))))))

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0448
Stop Event
saturated
Counts
56 → 44
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)
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)

eval222.0ms (2%)

Compiler

Compiled 7241 to 5280 computations (27.1% saved)

prune87.0ms (0.8%)

Pruning

30 alts after pruning (19 fresh and 11 done)

PrunedKeptTotal
New4489457
Fresh71017
Picked101
Done11112
Total45730487
Error
0b
Counts
487 → 30
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
39.3b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
62.1b
(*.f64 (sqrt.f64 x) 3)
0.5b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
59.5b
(*.f64 3 (sqrt.f64 (*.f64 x (*.f64 y y))))
50.2b
(cbrt.f64 (*.f64 -27 (pow.f64 x 3/2)))
39.6b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
23.8b
(*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (*.f64 x 9)))
62.1b
(sqrt.f64 (*.f64 x 9))
39.5b
(*.f64 y (*.f64 (sqrt.f64 x) (neg.f64 (cbrt.f64 -27))))
27.8b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (*.f64 y y) 9)) (+.f64 (/.f64 -1/3 x) (*.f64 3 y)))))
39.8b
(*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))
20.4b
(*.f64 (-.f64 y 1) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
37.4b
(/.f64 (*.f64 (-.f64 9 (pow.f64 (*.f64 x -3) -2)) (sqrt.f64 x)) (+.f64 -3 (/.f64 -1/3 x)))
0.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
20.2b
(*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))
43.9b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
39.7b
(/.f64 (*.f64 (-.f64 -27 (pow.f64 (*.f64 x -3) -3)) (sqrt.f64 x)) (+.f64 9 (*.f64 (/.f64 -1/3 x) (+.f64 -3 (/.f64 -1/3 x)))))
23.9b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
43.9b
(*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9)))
30.8b
(*.f64 (-.f64 y 1) (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)))
39.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) y)
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
59.7b
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
24.4b
(*.f64 3 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 3))
34.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))
23.9b
(*.f64 3 (*.f64 (-.f64 (/.f64 1/9 x) 1) (sqrt.f64 x)))
23.9b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 1 (*.f64 x -3))))
43.5b
(*.f64 -3 (sqrt.f64 x))
0.3b
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
Compiler

Compiled 377 to 304 computations (19.4% saved)

regimes174.0ms (1.6%)

Counts
60 → 1
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 -3 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 (*.f64 x 9)) y)
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (*.f64 3 (sqrt.f64 x)) y)
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))
(*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9)))
(*.f64 3 (sqrt.f64 (*.f64 x (*.f64 y y))))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 1 (*.f64 x -3))))
(*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (*.f64 x 9)))
(*.f64 3 (*.f64 (-.f64 (/.f64 1/9 x) 1) (sqrt.f64 x)))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (/.f64 1/9 x) 1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) -1))
(*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1/9 x)) 1))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (*.f64 1/9 (/.f64 1 x)) 1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 (-.f64 (/.f64 1/9 (*.f64 x x)) (*.f64 (*.f64 y y) 9)) (+.f64 (/.f64 -1/3 x) (*.f64 3 y)))))
(cbrt.f64 (*.f64 -27 (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
(*.f64 y (*.f64 (sqrt.f64 x) (neg.f64 (cbrt.f64 -27))))
(*.f64 -1 (*.f64 (*.f64 y (cbrt.f64 -27)) (sqrt.f64 x)))
(*.f64 (-.f64 y 1) (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (pow.f64 (*.f64 x -3) -1)))
(*.f64 (-.f64 y 1) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)))
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2))
(/.f64 (*.f64 (-.f64 9 (pow.f64 (*.f64 x -3) -2)) (sqrt.f64 x)) (+.f64 -3 (/.f64 -1/3 x)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(cbrt.f64 (*.f64 (*.f64 (pow.f64 x 3/2) (*.f64 y y)) (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) 81) (*.f64 y 27))))
(/.f64 (*.f64 (-.f64 -27 (pow.f64 (*.f64 x -3) -3)) (sqrt.f64 x)) (+.f64 9 (*.f64 (/.f64 -1/3 x) (+.f64 -3 (/.f64 -1/3 x)))))
(/.f64 (*.f64 (-.f64 -27 (/.f64 -1/27 (pow.f64 x 3))) (sqrt.f64 x)) (+.f64 (+.f64 9 (/.f64 1/9 (*.f64 x x))) (/.f64 1 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)))
(cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) 3))
(*.f64 3 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x))) 3))
(pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) -1))) 2)
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (pow.f64 (*.f64 x -3) -1))))
(*.f64 (*.f64 3 (sqrt.f64 x)) (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 3)))
(pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)
(cbrt.f64 (pow.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1))) 3))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (cbrt.f64 (*.f64 x 9))) (cbrt.f64 (sqrt.f64 (*.f64 x 9))))
(*.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))
(fma.f64 (sqrt.f64 x) -3 (*.f64 (sqrt.f64 x) (neg.f64 (fma.f64 -3 y (/.f64 -1/3 x)))))
(*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Calls

3 calls:

51.0ms
y
49.0ms
x
48.0ms
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
0.3b1(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Compiler

Compiled 716 to 512 computations (28.5% saved)

regimes68.0ms (0.6%)

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

2 calls:

27.0ms
y
26.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 240 to 163 computations (32.1% saved)

regimes160.0ms (1.5%)

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

2 calls:

85.0ms
x
63.0ms
y
Results
ErrorSegmentsBranch
7.0b4x
6.6b3y
Compiler

Compiled 180 to 120 computations (33.3% saved)

bsearch85.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
1.5271143340416005e-23
3.349385874425026e-5
43.0ms
-5.488411699963756e+97
-1.7136912199392666e+96
Compiler

Compiled 21 to 17 computations (19% saved)

regimes118.0ms (1.1%)

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

2 calls:

60.0ms
x
50.0ms
y
Results
ErrorSegmentsBranch
7.0b4x
6.6b3y
Compiler

Compiled 120 to 76 computations (36.7% saved)

bsearch82.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
3.509659547819947e+34
2.3880407861532236e+47
42.0ms
-5.488411699963756e+97
-1.7136912199392666e+96
Compiler

Compiled 21 to 17 computations (19% saved)

regimes102.0ms (0.9%)

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

2 calls:

54.0ms
x
42.0ms
y
Results
ErrorSegmentsBranch
7.0b4x
6.6b3y
Compiler

Compiled 110 to 69 computations (37.3% saved)

bsearch73.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
36.0ms
3.509659547819947e+34
2.3880407861532236e+47
36.0ms
-5.488411699963756e+97
-1.7136912199392666e+96
Compiler

Compiled 21 to 17 computations (19% saved)

regimes121.0ms (1.1%)

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

2 calls:

58.0ms
y
56.0ms
x
Results
ErrorSegmentsBranch
7.0b4x
17.5b3y
Compiler

Compiled 102 to 64 computations (37.3% saved)

bsearch113.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
1.8328195539711506e-26
3.250183152341549e-25
37.0ms
3.467270725243057e-75
4.873801776748417e-74
37.0ms
1.5964741002599232e-135
1.5982031020247407e-133
Compiler

Compiled 21 to 17 computations (19% saved)

regimes90.0ms (0.8%)

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

2 calls:

43.0ms
x
43.0ms
y
Results
ErrorSegmentsBranch
7.0b4x
17.5b3y
Compiler

Compiled 70 to 42 computations (40% saved)

bsearch115.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
1.8328195539711506e-26
3.250183152341549e-25
37.0ms
3.467270725243057e-75
4.873801776748417e-74
40.0ms
1.5964741002599232e-135
1.5982031020247407e-133
Compiler

Compiled 21 to 17 computations (19% saved)

regimes111.0ms (1%)

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

2 calls:

67.0ms
x
39.0ms
y
Results
ErrorSegmentsBranch
17.7b7x
17.8b4y
Compiler

Compiled 62 to 36 computations (41.9% saved)

bsearch206.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
4.6895081002725544e+61
1.2104276119689947e+64
40.0ms
6.95828594303381e+35
3.485255098399777e+38
40.0ms
6109095404630602000.0
2.281156321009776e+19
34.0ms
1.8328195539711506e-26
3.250183152341549e-25
24.0ms
3.467270725243057e-75
4.873801776748417e-74
29.0ms
1.5964741002599232e-135
1.5982031020247407e-133
Compiler

Compiled 21 to 17 computations (19% saved)

regimes106.0ms (1%)

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

2 calls:

65.0ms
x
38.0ms
y
Results
ErrorSegmentsBranch
17.7b7x
17.8b4y
Compiler

Compiled 38 to 24 computations (36.8% saved)

bsearch473.0ms (4.3%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
4.6895081002725544e+61
1.2104276119689947e+64
85.0ms
6.95828594303381e+35
3.485255098399777e+38
214.0ms
6109095404630602000.0
2.281156321009776e+19
47.0ms
1.6656171781283214e-39
6.055741334662871e-37
40.0ms
3.467270725243057e-75
4.873801776748417e-74
40.0ms
1.5964741002599232e-135
1.5982031020247407e-133
Compiler

Compiled 21 to 17 computations (19% saved)

regimes109.0ms (1%)

Counts
5 → 7
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 -3 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
Outputs
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 -3 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 -3 (sqrt.f64 x))
Calls

2 calls:

70.0ms
x
35.0ms
y
Results
ErrorSegmentsBranch
17.7b7x
18.1b4y
Compiler

Compiled 32 to 20 computations (37.5% saved)

bsearch314.0ms (2.9%)

Algorithm
binary-search
Steps
TimeLeftRight
47.0ms
4.6895081002725544e+61
1.2104276119689947e+64
47.0ms
6.95828594303381e+35
3.485255098399777e+38
46.0ms
6109095404630602000.0
2.281156321009776e+19
44.0ms
1.6656171781283214e-39
6.055741334662871e-37
45.0ms
3.467270725243057e-75
4.873801776748417e-74
83.0ms
1.5964741002599232e-135
1.5982031020247407e-133
Compiler

Compiled 21 to 17 computations (19% saved)

regimes64.0ms (0.6%)

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

2 calls:

31.0ms
x
30.0ms
y
Results
ErrorSegmentsBranch
31.0b4x
20.7b3y
Compiler

Compiled 26 to 17 computations (34.6% saved)

bsearch92.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
46.0ms
3.349385874425026e-5
20688775841.90199
46.0ms
-5.547054180161296e-38
-1.4316682935061342e-46
Compiler

Compiled 21 to 17 computations (19% saved)

regimes21.0ms (0.2%)

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

2 calls:

11.0ms
y
8.0ms
x
Results
ErrorSegmentsBranch
43.5b1x
43.5b1y
Compiler

Compiled 20 to 14 computations (30% saved)

regimes16.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

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

2 calls:

7.0ms
x
7.0ms
y
Results
ErrorSegmentsBranch
62.1b1x
62.1b1y
Compiler

Compiled 16 to 12 computations (25% saved)

simplify66.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
098618
1128618
2138618
3146618
4155618
5159618
6162618
7163618
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5196500801465685/340282366920938463463374607431768211456) (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (*.f64 x 9))) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 1 (*.f64 x -3)))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9))) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 y -1328255593131043/23945242826029513411849172299223580994042798784118784) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 y 4942821122369307/147573952589676412928) (*.f64 -3 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y))))
(*.f64 -3 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) 3)
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) -1))
(*.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) (sqrt.f64 (*.f64 x 9)))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5196500801465685/340282366920938463463374607431768211456) (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 (*.f64 x 9))) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9)))))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5196500801465685/340282366920938463463374607431768211456) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (/.f64 1/9 x) -1)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1))))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 1 (*.f64 x -3)))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 1 (*.f64 x -3)))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 -1 (*.f64 x -3)))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 y -54884116999637559962643471665363770217147220766569412387195240041794863022871567070235142259736576) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 35096595478199468389155966220763136) (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) (*.f64 (sqrt.f64 (*.f64 x 9)) y)))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (/.f64 1/9 x) (sqrt.f64 (*.f64 x 9))) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 (*.f64 x 9)) (/.f64 1/9 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (*.f64 (-.f64 y 1) (sqrt.f64 (*.f64 x 9))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 y -1)))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 x 3193222020937123/174224571863520493293247799005065324265472) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 (sqrt.f64 x) -3)))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 (*.f64 x 9)) y) (*.f64 (sqrt.f64 x) -3)))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 -3 (sqrt.f64 x)) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 -3 (sqrt.f64 x))))))))
(if (<=.f64 x 1306470831385069/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 441434700438217/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 x 5105101796542555/3064991081731777716716694054300618367237478244367204352) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 6109095404630601728) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 x 695828594303380949283447419600633856) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 46895081002725544376221947409888889981788783568862156890832896) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 (sqrt.f64 x) -3)))))))
(if (<=.f64 y -1328255593131043/23945242826029513411849172299223580994042798784118784) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 y 4942821122369307/147573952589676412928) (*.f64 -3 (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y))))
(if (<=.f64 y -1328255593131043/23945242826029513411849172299223580994042798784118784) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 y 4942821122369307/147573952589676412928) (*.f64 (sqrt.f64 x) -3) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(*.f64 -3 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (sqrt.f64 x) 3)
(*.f64 3 (sqrt.f64 x))
Compiler

Compiled 438 to 299 computations (31.7% saved)

soundness0.0ms (0%)

end522.0ms (4.8%)

Compiler

Compiled 414 to 260 computations (37.2% saved)

Profiling

Loading profile data...