Details

Time bar (total: 10.9s)

analyze56.0ms (0.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%74.9%0.1%0%25%0%4
0%0%74.9%0.1%0%25%0%5
30%18.7%43.7%0.1%0%37.5%0%6
45%28.1%34.3%0.1%0%37.5%0%7
58.3%32.8%23.4%0.1%0%43.7%0%8
67.1%36.7%18%0.1%1.6%43.7%0%9
76.5%39.4%12.1%0.1%1.6%46.8%0%10
81.9%41.6%9.2%0.1%2.3%46.8%0%11
87.5%43%6.1%0.1%2.3%48.4%0%12
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample2.4s (22.2%)

Results
2.3s8256×body256valid
40.0ms269×body256invalid
30.0ms159×body256infinite
Bogosity

preprocess101.0ms (0.9%)

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)

simplify263.0ms (2.4%)

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))))

eval2.0ms (0%)

Compiler

Compiled 27 to 20 computations (25.9% saved)

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 29 to 23 computations (20.7% saved)

localize34.0ms (0.3%)

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 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.f64 -1/3 x))))
0.3b
(/.f64 -1/3 x)
Compiler

Compiled 36 to 24 computations (33.3% saved)

series23.0ms (0.2%)

Counts
4 → 60
Calls

21 calls:

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

rewrite131.0ms (1.2%)

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 -1/3 x)
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (/.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 -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 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 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 x) (-.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 (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 (/.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))) (-.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 (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 -3) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.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 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)))))

simplify148.0ms (1.4%)

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))

localize40.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 51 to 36 computations (29.4% saved)

series24.0ms (0.2%)

Counts
4 → 48
Calls

18 calls:

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

rewrite130.0ms (1.2%)

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

simplify277.0ms (2.5%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
017426
138381
284360
3195360
4406360
5811360
61177360
71916360
83391360
94482360
104918360
115480360
125481360
135481360
146291360
156291360
166291360
176291360
Stop Event
saturated
Counts
183 → 145
Calls
Call 1
Inputs
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
Outputs
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(/.f64 1/9 x)
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 3 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x)))
(*.f64 (sqrt.f64 x) (-.f64 (/.f64 1/3 x) 3))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 (/.f64 1/9 x) -1) y)))
(*.f64 (sqrt.f64 x) (fma.f64 3 y (+.f64 -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 (sqrt.f64 x) (fma.f64 3 (-.f64 y (/.f64 -1/9 x)) -3))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(-.f64 y (/.f64 -1/9 x))

eval239.0ms (2.2%)

Compiler

Compiled 5717 to 4097 computations (28.3% saved)

prune75.0ms (0.7%)

Pruning

24 alts after pruning (24 fresh and 0 done)

PrunedKeptTotal
New30824332
Fresh000
Picked101
Done101
Total31024334
Error
0.0b
Counts
334 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(*.f64 (sqrt.f64 x) (-.f64 -3 (fma.f64 y -3 (pow.f64 (*.f64 x -3) -1))))
22.4b
(*.f64 (pow.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3) 1/3) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.9b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
0.4b
(+.f64 (*.f64 (+.f64 (/.f64 1/9 x) y) (*.f64 3 (sqrt.f64 x))) (*.f64 -1 (*.f64 3 (sqrt.f64 x))))
24.6b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
24.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
51.1b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
29.9b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 2)
41.9b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
39.5b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
41.9b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
34.1b
(*.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))
24.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (*.f64 y -3)))
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 3 (sqrt.f64 x)) (+.f64 (/.f64 1/9 x) (+.f64 y -1)))) 3)
1.2b
(*.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x)))) 3))
19.4b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
21.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
21.6b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
21.6b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
0.7b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 3 (sqrt.f64 x))) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
Compiler

Compiled 662 to 534 computations (19.3% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 48 to 36 computations (25% saved)

series4.0ms (0%)

Counts
2 → 12
Calls

9 calls:

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

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))))))

simplify213.0ms (2%)

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))))

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

rewrite134.0ms (1.2%)

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)))))))

simplify93.0ms (0.9%)

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.1b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 y 1))
0.2b
(*.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))

rewrite66.0ms (0.6%)

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)))))))))

simplify11.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 2 expressions with local error:

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

Compiled 19 to 12 computations (36.8% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

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

rewrite62.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
689×pow1_binary64
638×add-log-exp_binary64
638×log1p-expm1-u_binary64
638×expm1-log1p-u_binary64
625×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify36.0ms (0.3%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
012213
122168
236168
342168
Stop Event
saturated
Counts
60 → 45
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)))
-3
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
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) (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) (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) (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) (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) (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) (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) (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) (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) (fma.f64 3 y -3))
-3
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)

localize30.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (sqrt.f64 x))
0.3b
(/.f64 1 (*.f64 x 9))
0.5b
(pow.f64 (*.f64 3 (sqrt.f64 x)) 3)
18.7b
(cbrt.f64 (pow.f64 (*.f64 3 (sqrt.f64 x)) 3))
Compiler

Compiled 67 to 48 computations (28.4% saved)

series10.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

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

rewrite76.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
528×pow1_binary64
515×add-sqr-sqrt_binary64
499×add-log-exp_binary64
499×log1p-expm1-u_binary64
499×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify51.0ms (0.5%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

eval233.0ms (2.1%)

Compiler

Compiled 5819 to 4290 computations (26.3% saved)

prune77.0ms (0.7%)

Pruning

24 alts after pruning (21 fresh and 3 done)

PrunedKeptTotal
New35612368
Fresh10919
Picked101
Done134
Total36824392
Error
0.0b
Counts
392 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
24.6b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
45.3b
(*.f64 (sqrt.f64 x) -3)
24.6b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
19.4b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
19.4b
(*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) 27)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.9b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
24.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
51.1b
(sqrt.f64 (*.f64 (*.f64 x 9) (pow.f64 (+.f64 (/.f64 1/9 x) (+.f64 y -1)) 2)))
0.4b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
0.6b
(*.f64 (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.9b
(*.f64 y (*.f64 3 (sqrt.f64 x)))
39.5b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
21.6b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
0.6b
(*.f64 (*.f64 (pow.f64 x 1/4) (*.f64 (pow.f64 x 1/4) 3)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
24.4b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
21.6b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 1/3 (/.f64 1 x)) 3))
29.9b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 2)
41.3b
(*.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (fma.f64 3 y -3) 3)))
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.9b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
21.6b
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
Compiler

Compiled 591 to 480 computations (18.8% saved)

localize17.0ms (0.2%)

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 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
0.3b
(/.f64 -1/3 x)
Compiler

Compiled 42 to 29 computations (31% saved)

series9.0ms (0.1%)

Counts
3 → 60
Calls

18 calls:

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

rewrite92.0ms (0.8%)

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)))))

simplify113.0ms (1%)

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))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 6 computations (40% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite51.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

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

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

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 15 computations (34.8% saved)

series4.0ms (0%)

Counts
2 → 15
Calls

9 calls:

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

rewrite71.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify12.0ms (0.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
011168
118141
232123
341123
Stop Event
saturated
Counts
66 → 58
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)))
-3
(*.f64 3 y)
(*.f64 3 y)
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 y (*.f64 (sqrt.f64 x) 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 (*.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 y (*.f64 (sqrt.f64 x) 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 (*.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))
-3
(*.f64 3 y)
(*.f64 3 y)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

Compiled 40 to 26 computations (35% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite127.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
598×prod-diff_binary64
586×log-prod_binary64
347×fma-def_binary64
327×pow2_binary64
230×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify270.0ms (2.5%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
017378
138333
284312
3198312
4407312
5815312
61181312
71919312
83398312
94486312
104932312
115485312
125486312
135486312
146296312
156296312
166296312
176296312
Stop Event
saturated
Counts
219 → 192
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 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
Outputs
(*.f64 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))))
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(/.f64 1/9 x)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
y
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)
(+.f64 y (*.f64 1/9 (/.f64 1 x)))
(+.f64 (/.f64 1/9 x) y)

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.3b
(pow.f64 (*.f64 x 9) 3/2)
0.3b
(/.f64 1 (*.f64 x 9))
18.7b
(cbrt.f64 (pow.f64 (*.f64 x 9) 3/2))
Compiler

Compiled 58 to 45 computations (22.4% saved)

series92.0ms (0.8%)

Counts
3 → 24
Calls

12 calls:

TimeVariablePointExpression
64.0ms
x
@0
(pow.f64 (*.f64 x 9) 3/2)
11.0ms
x
@-inf
(pow.f64 (*.f64 x 9) 3/2)
7.0ms
x
@inf
(pow.f64 (*.f64 x 9) 3/2)
6.0ms
x
@-inf
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
1.0ms
x
@0
(cbrt.f64 (pow.f64 (*.f64 x 9) 3/2))

rewrite76.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
620×prod-diff_binary64
606×log-prod_binary64
355×fma-def_binary64
232×log1p-udef_binary64
231×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify70.0ms (0.6%)

Algorithm
egg-herbie
Rules
700×fma-def_binary64
624×fma-neg_binary64
601×div-sub_binary64
425×times-frac_binary64
255×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036396
192351
2222294
3497258
41124258
52674258
66461258
Stop Event
node limit
Counts
108 → 94
Calls
Call 1
Inputs
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
Outputs
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 9) (log.f64 x))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 9))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(pow.f64 (exp.f64 3/2) (+.f64 (log.f64 9) (log.f64 x)))
(*.f64 (pow.f64 9 3/2) (pow.f64 x 3/2))
(pow.f64 (*.f64 x 9) 3/2)
(pow.f64 (/.f64 1/9 x) -3/2)
(*.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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) 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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) 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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))
(+.f64 (*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x))) (*.f64 3 (*.f64 y (sqrt.f64 x))))
(*.f64 3 (+.f64 (*.f64 (+.f64 (/.f64 1/9 x) -1) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) y)))
(*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 (+.f64 -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) (fma.f64 3 (+.f64 (/.f64 1/9 x) y) -3))

eval581.0ms (5.3%)

Compiler

Compiled 11123 to 8021 computations (27.9% saved)

prune246.0ms (2.3%)

Pruning

27 alts after pruning (21 fresh and 6 done)

PrunedKeptTotal
New60015615
Fresh10616
Picked101
Done167
Total61227639
Error
0.0b
Counts
639 → 27
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
24.6b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
19.4b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1/9 x)) 1))
21.6b
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (pow.f64 (*.f64 x -3) -1) (*.f64 -3 y))))
45.3b
(*.f64 (sqrt.f64 x) -3)
24.6b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
19.4b
(*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) 27)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
52.1b
(cbrt.f64 (*.f64 (pow.f64 x 3/2) -27))
41.9b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
37.8b
(/.f64 (*.f64 (+.f64 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) (fma.f64 3 y 3))
24.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
62.0b
(sqrt.f64 (*.f64 x 9))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
0.6b
(*.f64 (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
39.5b
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
21.6b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
29.9b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))) 2)
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.3b
(*.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (fma.f64 3 y -3) 3)))
0.4b
(+.f64 0 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))
41.9b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
41.9b
(*.f64 y (*.f64 (sqrt.f64 x) 3))
24.4b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
21.6b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (/.f64 1/9 x) 1))
Compiler

Compiled 605 to 492 computations (18.7% saved)

localize32.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 39 computations (26.4% saved)

series9.0ms (0.1%)

Counts
4 → 72
Calls

21 calls:

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

rewrite97.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
628×log-prod_binary64
378×fma-def_binary64
345×pow2_binary64
236×pow1/3_binary64
234×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01257
126939
2360039
Stop Event
node limit
Counts
4 → 184
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (pow.f64 (*.f64 x -3) -1) (*.f64 -3 y))))
(pow.f64 (*.f64 x -3) -1)
(+.f64 (pow.f64 (*.f64 x -3) -1) (*.f64 -3 y))
(-.f64 -3 (+.f64 (pow.f64 (*.f64 x -3) -1) (*.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 pow.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3) (pow.f64 x 3/2)) 1/3)))) (#(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 cbrt.f64 (*.f64 (pow.f64 x 3/2) (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.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 (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 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 (/.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 (/.f64 1 x) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/3 (/.f64 1 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 (pow.f64 (cbrt.f64 (*.f64 x -3)) -2) (cbrt.f64 (/.f64 -1/3 x)))))) (#(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 (/.f64 1 x) -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 (pow.f64 (cbrt.f64 (*.f64 x -3)) -2) (cbrt.f64 (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -1/3 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 -.f64 (exp.f64 (log1p.f64 (fma.f64 -3 y (/.f64 -1/3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (/.f64 -1/3 x) 2) (+.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))) (pow.f64 (cbrt.f64 (fma.f64 -3 y (/.f64 -1/3 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.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 (pow.f64 (/.f64 -1/3 x) 3)) (/.f64 1 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (pow.f64 (/.f64 -1/3 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.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)) (pow.f64 (/.f64 -1/3 x) 2)) (fma.f64 (pow.f64 y 3) -27 (pow.f64 (/.f64 -1/3 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (/.f64 -1/3 x) (*.f64 3 y)) (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.f64 (*.f64 y y) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 3) -27 (pow.f64 (/.f64 -1/3 x) 3)) (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (pow.f64 (/.f64 -1/3 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 3) -27 (pow.f64 (/.f64 -1/3 x) 3)) (fma.f64 (*.f64 y y) 9 (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.f64 (/.f64 -1/3 x) (*.f64 -3 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.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 (pow.f64 (/.f64 -1/3 x) 3))) (neg.f64 (fma.f64 (*.f64 -3 y) (-.f64 (*.f64 -3 y) (/.f64 -1/3 x)) (pow.f64 (/.f64 -1/3 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.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) (pow.f64 (/.f64 -1/3 x) 2)) (-.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)) (pow.f64 (/.f64 -1/3 x) 2)) (fma.f64 (pow.f64 y 3) -27 (pow.f64 (/.f64 -1/3 x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (/.f64 -1/3 x) (*.f64 3 y)) (-.f64 (pow.f64 (/.f64 -1/3 x) 2) (*.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 (/.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 y y)) (*.f64 (cbrt.f64 y) -3) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 -3 y)) (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2) (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 (sqrt.f64 y) (*.f64 (sqrt.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 (/.f64 1 x) -1/3 (*.f64 -3 y))))) (#(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 (sqrt.f64 (/.f64 -1/3 x)) (sqrt.f64 (/.f64 -1/3 x)) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -3)) -2) (cbrt.f64 (/.f64 -1/3 x)) (*.f64 -3 y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -3 (cbrt.f64 (*.f64 y y))) (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 (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2)) (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)))) (cbrt.f64 (pow.f64 (-.f64 -3 (fma.f64 -3 y (/.f64 -1/3 x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.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 (fma.f64 -3 y (/.f64 -1/3 x)) -3)))) (#(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 (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2)) (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 (pow.f64 (cbrt.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 (-.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 (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2)) (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 (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 (-.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 (pow.f64 (cbrt.f64 (*.f64 -3 y)) 2)) (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 (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 (neg.f64 (pow.f64 (cbrt.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)))))

simplify107.0ms (1%)

Algorithm
egg-herbie
Rules
738×fma-neg_binary64
639×fma-def_binary64
335×cancel-sign-sub-inv_binary64
137×distribute-rgt-in_binary64
113×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
033758
182655
2178617
3426617
41072617
52030617
62954617
73436617
84024617
94024617
Stop Event
saturated
Counts
256 → 204
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 (-.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 -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 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(-.f64 (*.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/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 -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 -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 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 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 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 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (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 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) (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 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) (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 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 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 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 3 y -3)))
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(/.f64 -1/3 x)
(-.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/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.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)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.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)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 -1 (+.f64 (*.f64 -3 y) 3)))
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.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)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 3 y) (*.f64 1/3 (/.f64 1 x))) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 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 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 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 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))
(-.f64 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 3 y)) 3)
(+.f64 (/.f64 1/3 x) (neg.f64 (fma.f64 -3 y 3)))
(+.f64 (/.f64 1/3 x) (fma.f64 3 y -3))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 8 computations (27.3% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series5.0ms (0%)

Counts
3 → 12
Calls

9 calls:

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

rewrite72.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
883×pow1_binary64
829×add-log-exp_binary64
829×log1p-expm1-u_binary64
829×expm1-log1p-u_binary64
814×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify17.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-neg_binary64
+-commutative_binary64
*-commutative_binary64
associate-*r/_binary64
sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01069
11769
22069
Stop Event
saturated
Counts
84 → 76
Calls
Call 1
Inputs
(/.f64 1/3 x)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
-3
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
-3
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
Outputs
(/.f64 1/3 x)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
-3
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
-3
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)
(-.f64 (*.f64 1/3 (/.f64 1 x)) 3)
(+.f64 (/.f64 1/3 x) -3)

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 47 to 33 computations (29.8% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite102.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
782×prod-diff_binary64
595×fma-def_binary64
531×log-prod_binary64
268×fma-neg_binary64
204×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify29.0ms (0.3%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
012372
122282
236282
342282
Stop Event
saturated
Counts
267 → 154
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)))
(*.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)))
-3
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
(-.f64 (*.f64 3 y) 3)
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) (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) (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) (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) (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) (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) (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) (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) (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) (fma.f64 3 y -3))
(*.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) (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) (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) (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) (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) (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) (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) (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) (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) (fma.f64 3 y -3))
-3
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(*.f64 3 y)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)
(-.f64 (*.f64 3 y) 3)
(fma.f64 3 y -3)

localize35.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 3 y 3)
0.2b
(*.f64 y (*.f64 y 9))
1.4b
(*.f64 (+.f64 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x))
13.2b
(/.f64 (*.f64 (+.f64 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) (fma.f64 3 y 3))
Compiler

Compiled 53 to 35 computations (34% saved)

series11.0ms (0.1%)

Counts
4 → 48
Calls

18 calls:

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

rewrite94.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
666×log-prod_binary64
341×pow2_binary64
238×pow1/3_binary64
235×expm1-udef_binary64
235×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify220.0ms (2%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
637×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
021507
141435
286399
3167399
4380399
51118399
61455399
71869399
81975399
92109399
102278399
112523399
122837399
133209399
143669399
154254399
164960399
175818399
186240399
196552399
206864399
216946399
226982399
Stop Event
node limit
Counts
174 → 143
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)))
(*.f64 -9 (sqrt.f64 x))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (pow.f64 y 2))
3
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
(*.f64 3 y)
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
(*.f64 3 y)
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
(+.f64 3 (*.f64 3 y))
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 y (*.f64 (sqrt.f64 x) 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 (*.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 y (*.f64 (sqrt.f64 x) 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 (*.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 -9 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) -9)
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x)))
(*.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)))
(*.f64 (sqrt.f64 x) (*.f64 y (*.f64 y 9)))
(*.f64 y (*.f64 (*.f64 (sqrt.f64 x) y) 9))
(*.f64 (*.f64 (sqrt.f64 x) y) (*.f64 y 9))
(*.f64 (*.f64 y y) (*.f64 (sqrt.f64 x) 9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x)))
(*.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)))
(*.f64 (sqrt.f64 x) (*.f64 y (*.f64 y 9)))
(*.f64 y (*.f64 (*.f64 (sqrt.f64 x) y) 9))
(*.f64 (*.f64 (sqrt.f64 x) y) (*.f64 y 9))
(*.f64 (*.f64 y y) (*.f64 (sqrt.f64 x) 9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(+.f64 (*.f64 9 (*.f64 (pow.f64 y 2) (sqrt.f64 x))) (*.f64 -9 (sqrt.f64 x)))
(fma.f64 9 (*.f64 (sqrt.f64 x) (*.f64 y y)) (*.f64 (sqrt.f64 x) -9))
(*.f64 (sqrt.f64 x) (+.f64 -9 (*.f64 y (*.f64 y 9))))
(*.f64 (sqrt.f64 x) (fma.f64 9 (*.f64 y y) -9))
(*.f64 (sqrt.f64 x) (fma.f64 y (*.f64 y 9) -9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
(*.f64 9 (pow.f64 y 2))
(*.f64 9 (*.f64 y y))
(*.f64 y (*.f64 y 9))
3
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(*.f64 3 y)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(*.f64 3 y)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)
(+.f64 3 (*.f64 3 y))
(fma.f64 3 y 3)

eval496.0ms (4.5%)

Compiler

Compiled 9984 to 7003 computations (29.9% saved)

prune373.0ms (3.4%)

Pruning

30 alts after pruning (21 fresh and 9 done)

PrunedKeptTotal
New59610606
Fresh51116
Picked101
Done1910
Total60330633
Error
0b
Counts
633 → 30
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
24.6b
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
19.4b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x 9) 3/2)) (-.f64 (+.f64 y (/.f64 1/9 x)) 1))
45.3b
(*.f64 (sqrt.f64 x) -3)
24.6b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 y 1))
19.4b
(*.f64 (cbrt.f64 (*.f64 (pow.f64 x 3/2) 27)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
52.1b
(cbrt.f64 (*.f64 (pow.f64 x 3/2) -27))
38.6b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (/.f64 1/3 x) -3) 3)) (sqrt.f64 x))
40.1b
(pow.f64 (sqrt.f64 (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))) 2)
41.9b
(*.f64 3 (*.f64 (sqrt.f64 x) y))
45.5b
(/.f64 (*.f64 (+.f64 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) 3)
24.6b
(*.f64 (sqrt.f64 x) (fma.f64 3 y -3))
62.0b
(sqrt.f64 (*.f64 x 9))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
0.6b
(*.f64 (pow.f64 (pow.f64 (*.f64 x 9) 1/4) 2) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
21.6b
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
41.9b
(*.f64 y (*.f64 (sqrt.f64 x) 3))
62.0b
(*.f64 (sqrt.f64 x) 3)
24.9b
(*.f64 (*.f64 (*.f64 (sqrt.f64 x) 3) (pow.f64 (cbrt.f64 (+.f64 y -1)) 2)) (cbrt.f64 (+.f64 y -1)))
24.4b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
0.4b
(+.f64 0 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))
0.3b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
41.9b
(*.f64 (sqrt.f64 x) (*.f64 3 y))
21.6b
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
21.6b
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (/.f64 1/9 x) 1))
35.6b
(/.f64 (*.f64 (+.f64 (/.f64 1/9 (*.f64 x x)) -9) (sqrt.f64 x)) (+.f64 (/.f64 1/3 x) 3))
0.3b
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 -3 y))))
0.4b
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
39.5b
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
Compiler

Compiled 370 to 301 computations (18.6% saved)

regimes301.0ms (2.8%)

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

3 calls:

90.0ms
y
76.0ms
x
53.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 745 to 531 computations (28.7% saved)

regimes87.0ms (0.8%)

Counts
33 → 1
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 (sqrt.f64 x) -3)
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
(*.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 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.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 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) 3)
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
(*.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 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 -3 y))))
(+.f64 0 (*.f64 3 (*.f64 (sqrt.f64 x) (+.f64 y (+.f64 (/.f64 1/9 x) -1)))))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (+.f64 y (*.f64 (/.f64 1 x) 1/9)) 1))
Outputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 -3 y))))
Calls

2 calls:

38.0ms
y
32.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 308 to 207 computations (32.8% saved)

regimes52.0ms (0.5%)

Counts
29 → 1
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 (sqrt.f64 x) -3)
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
(*.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 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.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 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) 3)
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
(*.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 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
Outputs
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
Calls

2 calls:

22.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 252 to 166 computations (34.1% saved)

regimes38.0ms (0.3%)

Counts
27 → 1
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 (sqrt.f64 x) -3)
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
(*.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 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.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 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) 3)
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(*.f64 3 (*.f64 (-.f64 (*.f64 1/9 (/.f64 1 x)) 1) (sqrt.f64 x)))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 x) (*.f64 3 (+.f64 y -1)))) 1)
(*.f64 (*.f64 3 (sqrt.f64 x)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
Outputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
Calls

2 calls:

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

Compiled 228 to 149 computations (34.6% saved)

regimes76.0ms (0.7%)

Counts
22 → 3
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 (sqrt.f64 x) -3)
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
(*.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 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.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 (*.f64 y (*.f64 y 9)) -9) (sqrt.f64 x)) 3)
Outputs
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
Calls

2 calls:

49.0ms
y
21.0ms
x
Results
ErrorSegmentsBranch
8.9b2x
5.8b3y
Compiler

Compiled 168 to 105 computations (37.5% saved)

bsearch49.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
6.585535439738029e-20
1.2496670745915802e-16
25.0ms
-1.3342735936190832e+39
-4.977793607720896e+36
Compiler

Compiled 21 to 17 computations (19% saved)

regimes56.0ms (0.5%)

Counts
17 → 3
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) 3)
(sqrt.f64 (*.f64 x 9))
(*.f64 (sqrt.f64 x) -3)
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 (/.f64 1/3 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 y (*.f64 (sqrt.f64 x) 3))
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 y (*.f64 3 (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (/.f64 1/3 x))
(*.f64 (sqrt.f64 x) (*.f64 3 y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
(*.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 y -3)))
(*.f64 (sqrt.f64 x) (-.f64 -3 (/.f64 -1/3 x)))
Outputs
(*.f64 3 (*.f64 (sqrt.f64 x) y))
(*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))
Calls

2 calls:

32.0ms
y
19.0ms
x
Results
ErrorSegmentsBranch
8.9b2x
5.8b3y
Compiler

Compiled 116 to 69 computations (40.5% saved)

bsearch48.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
6.585535439738029e-20
1.2496670745915802e-16
24.0ms
-1.3342735936190832e+39
-4.977793607720896e+36
Compiler

Compiled 21 to 17 computations (19% saved)

regimes59.0ms (0.5%)

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

2 calls:

35.0ms
x
21.0ms
y
Results
ErrorSegmentsBranch
17.4b5x
5.9b3y
Compiler

Compiled 76 to 43 computations (43.4% saved)

bsearch47.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
5.831984062304147e+36
7.773813740068449e+45
24.0ms
-1.3342735936190832e+39
-4.977793607720896e+36
Compiler

Compiled 21 to 17 computations (19% saved)

regimes89.0ms (0.8%)

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

2 calls:

57.0ms
y
28.0ms
x
Results
ErrorSegmentsBranch
17.4b5x
17.5b8y
Compiler

Compiled 68 to 38 computations (44.1% saved)

bsearch198.0ms (1.8%)

Algorithm
binary-search
Steps
TimeLeftRight
150.0ms
1.0664603995100735e+107
5.3049753276354873e+107
22.0ms
1.1180990759716935e+98
1.9596638381004368e+99
25.0ms
1.2950639259596168e+38
2.7559576323755913e+38
0.0ms
1.081906061854238e-15
1.1070406116146194e-15
Compiler

Compiled 117 to 95 computations (18.8% saved)

regimes169.0ms (1.6%)

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

2 calls:

94.0ms
y
72.0ms
x
Results
ErrorSegmentsBranch
17.4b5x
17.5b8y
Compiler

Compiled 32 to 20 computations (37.5% saved)

bsearch391.0ms (3.6%)

Algorithm
binary-search
Steps
TimeLeftRight
295.0ms
1.0664603995100735e+107
5.3049753276354873e+107
51.0ms
1.1180990759716935e+98
1.9596638381004368e+99
44.0ms
1.2950639259596168e+38
2.7559576323755913e+38
0.0ms
1.081906061854238e-15
1.1070406116146194e-15
Compiler

Compiled 117 to 95 computations (18.8% saved)

regimes88.0ms (0.8%)

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

2 calls:

35.0ms
x
24.0ms
y
Results
ErrorSegmentsBranch
32.9b4x
25.1b3y
Compiler

Compiled 26 to 17 computations (34.6% saved)

bsearch85.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
44.0ms
1.855164118988133e-11
12163805774917244.0
41.0ms
-1.9864591310354914e-9
-6.966438401139607e-10
Compiler

Compiled 21 to 17 computations (19% saved)

regimes19.0ms (0.2%)

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

2 calls:

9.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
45.3b1x
45.3b1y
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.0b1x
62.0b1y
Compiler

Compiled 16 to 12 computations (25% saved)

simplify46.0ms (0.4%)

Algorithm
egg-herbie
Rules
32×*-commutative_binary64
23×+-commutative_binary64
18×sub-neg_binary64
13×neg-sub0_binary64
13×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082387
1119387
2142387
3173387
4197387
5217387
6225387
7229387
8230387
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (+.f64 y (/.f64 1 (*.f64 x 9))) 1))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 -3 y))))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5831984062304147273642004497077108736) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 y -4802963466236091/2417851639229258349412352) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (if (<=.f64 y 5741454855852493/309485009821345068724781056) (*.f64 (sqrt.f64 x) -3) (*.f64 y (*.f64 (sqrt.f64 x) 3))))
(*.f64 (sqrt.f64 x) -3)
(*.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 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 -3 y))))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 (/.f64 1 x) -3) (*.f64 y -3))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (-.f64 (*.f64 y 3) (/.f64 (/.f64 1 x) -3))))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (/.f64 -1/3 x) (*.f64 -3 y))))
(*.f64 (sqrt.f64 x) (-.f64 -3 (+.f64 (*.f64 y -3) (/.f64 -1/3 x))))
(*.f64 (sqrt.f64 x) (+.f64 -3 (+.f64 (/.f64 1/3 x) (*.f64 y 3))))
(*.f64 (sqrt.f64 (*.f64 x 9)) (-.f64 (-.f64 y (/.f64 -1/9 x)) 1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (-.f64 y (/.f64 -1/9 x)) -1))
(*.f64 (sqrt.f64 (*.f64 x 9)) (+.f64 (+.f64 y (/.f64 1/9 x)) -1))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (-.f64 (*.f64 1/3 (/.f64 1 x)) 3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 (/.f64 1 x) 1/3) -3)) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 y 3) -3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 (/.f64 1 x) 1/3))) (*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 y 3)))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (-.f64 (*.f64 3 y) 3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) (*.f64 (sqrt.f64 x) (+.f64 (*.f64 y 3) -3))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5471048796083447/83076749736557242056487941267521536) (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) (*.f64 (sqrt.f64 x) (+.f64 -3 (*.f64 y 3)))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 (sqrt.f64 x) y)) (if (<=.f64 y 5831984062304147273642004497077108736) (*.f64 (+.f64 (/.f64 1/3 x) -3) (sqrt.f64 x)) (*.f64 (sqrt.f64 x) (*.f64 3 y))))
(if (<=.f64 y -1334273593619083188664629357972914438144) (*.f64 3 (*.f64 y (sqrt.f64 x))) (if (<=.f64 y 5831984062304147273642004497077108736) (*.f64 (sqrt.f64 x) (+.f64 -3 (/.f64 1/3 x))) (*.f64 (sqrt.f64 x) (*.f64 y 3))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 (sqrt.f64 x) (*.f64 3 y)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 (sqrt.f64 x) (*.f64 y 3)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (/.f64 1/3 x) (sqrt.f64 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 x 5577662641004209/5070602400912917605986812821504) (*.f64 (sqrt.f64 x) (/.f64 1/3 x)) (if (<=.f64 x 129506392595961678042414629529929646080) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (if (<=.f64 x 111809907597169352408789654913185293546888254144571983101003007698972611693610495516393200754360320) (*.f64 (sqrt.f64 x) -3) (if (<=.f64 x 108000000000000002498558382635641070563324553205191168387404722450911248979688791167492465905437269397864448) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (*.f64 (sqrt.f64 x) -3)))))
(if (<=.f64 y -4802963466236091/2417851639229258349412352) (*.f64 y (*.f64 (sqrt.f64 x) 3)) (if (<=.f64 y 5741454855852493/309485009821345068724781056) (*.f64 (sqrt.f64 x) -3) (*.f64 y (*.f64 (sqrt.f64 x) 3))))
(*.f64 (sqrt.f64 x) -3)
(*.f64 (sqrt.f64 x) 3)
Compiler

Compiled 282 to 197 computations (30.1% saved)

soundness0.0ms (0%)

end127.0ms (1.2%)

Compiler

Compiled 260 to 164 computations (36.9% saved)

Profiling

Loading profile data...