Details

Time bar (total: 7.7s)

analyze660.0ms (8.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
25%68.6%6.4%7
31.2%62.4%6.4%8
36.7%54.6%8.7%9
38.2%48.4%13.4%10
42.7%42.3%15%11
47.8%34.1%18.1%12
49.1%30.3%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.4s (31.8%)

Results
762.0ms5347×body128valid
664.0ms1199×body2048valid
354.0ms695×body1024valid
271.0ms394×body4096valid
182.0ms422×body512valid
153.0ms1073×body128invalid
43.0ms199×body256valid
Compiler

Compiled 42 to 30 computations (28.6% saved)

preprocess45.0ms (0.6%)

Algorithm
egg-herbie
Rules
795×fma-def_binary64
731×div-sub_binary64
295×fma-neg_binary64
212×associate-/l*_binary64
209×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
034104
19288
221388
344088
475888
5125188
6222188
7445788
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 3 b) c)))) (*.f64 3 b))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 c) a)))) (*.f64 3 c))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 3 a) b)))) (*.f64 3 a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))) b) (*.f64 3 a))
(*.f64 -1/3 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) a))
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (/.f64 -1/3 a))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 3 b) c)))) (*.f64 3 b))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 3 (*.f64 b c))))) (*.f64 b 3))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 c (*.f64 b -3)))) a) (*.f64 b 3))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c (*.f64 b -3) (*.f64 a a))) a) (*.f64 b 3))
(*.f64 -1/3 (/.f64 (-.f64 a (sqrt.f64 (fma.f64 c (*.f64 b -3) (*.f64 a a)))) b))
(*.f64 (/.f64 (-.f64 a (sqrt.f64 (fma.f64 a a (*.f64 (*.f64 b c) -3)))) b) -1/3)
(*.f64 (-.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -3) (*.f64 a a)))) (/.f64 -1/3 b))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 c) a)))) (*.f64 3 c))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 3 (*.f64 c a))))) (*.f64 3 c))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 3 c))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b))) b) (*.f64 3 c))
(*.f64 -1/3 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -3) (*.f64 b b)))) c))
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (/.f64 -1/3 c))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 3 a) b)))) (*.f64 3 a))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 b (*.f64 3 a))))) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a -3)))) c) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 a -3) (*.f64 c c))) c) (*.f64 3 a))
(*.f64 -1/3 (/.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -3) (*.f64 c c)))) a))
(*.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -3) (*.f64 c c)))) (/.f64 -1/3 a))
Compiler

Compiled 20 to 14 computations (30% saved)

simplify35.0ms (0.5%)

Algorithm
egg-herbie
Rules
1220×fma-neg_binary64
367×fma-def_binary64
351×times-frac_binary64
266×associate-/l*_binary64
254×div-sub_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26922
316022
426422
543322
674422
7134122
8276922
9470222
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 -3 (*.f64 a c)))) b) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 -3 c)))) b) (*.f64 3 a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 3 a))
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (/.f64 -1/3 a))
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (/.f64 1/3 a))

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
34.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
34.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
34.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (/.f64 1/3 a))
Compiler

Compiled 111 to 75 computations (32.4% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1/3 a)
0.8b
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)
1.5b
(fma.f64 b b (*.f64 a (*.f64 c -3)))
22.9b
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))

series26.0ms (0.3%)

Counts
4 → 76
Calls

30 calls:

TimeVariablePointExpression
2.0ms
a
@-inf
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))
2.0ms
c
@inf
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))
2.0ms
a
@inf
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))
2.0ms
c
@0
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)
1.0ms
b
@0
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))

rewrite68.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
737×prod-diff_binary64
230×log1p-udef_binary64
132×add-sqr-sqrt_binary64
125×*-un-lft-identity_binary64
125×pow1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01244
126042
2328442
Stop Event
node limit
Counts
4 → 138
Calls
Call 1
Inputs
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))
(fma.f64 b b (*.f64 a (*.f64 c -3)))
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)
(/.f64 1/3 a)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 c -3)) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b b) (*.f64 a (*.f64 c -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) 1) (*.f64 a (*.f64 c -3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 b b (*.f64 a (*.f64 c -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (*.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (*.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4)) (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 a (*.f64 c -3)) 3)) (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (-.f64 (pow.f64 (*.f64 a (*.f64 c -3)) 2) (*.f64 (*.f64 b b) (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (pow.f64 (*.f64 a (*.f64 c -3)) 2)) (-.f64 (*.f64 b b) (*.f64 a (*.f64 c -3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (*.f64 (neg.f64 b) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 b) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 1 1/2) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 1/2) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b)) (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3))) (neg.f64 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b))) (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 (neg.f64 b) (neg.f64 b))) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 1/4) (neg.f64 b))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1/3 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (/.f64 1 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/3 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/3 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/3 a)) (cbrt.f64 (/.f64 1/9 (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1/9 (*.f64 a a))) (cbrt.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1/3 a)) (sqrt.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/3 (/.f64 1 (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 a) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/3 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1/3 a) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1/3 a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a 3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1/9 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1/3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1/3 a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 1/3 a)) 1))))))

simplify56.0ms (0.7%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
278×associate-*r*_binary64
278×associate-/l*_binary64
254×associate-/r*_binary64
241×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0891652
12751584
28841558
348421558
Stop Event
node limit
Counts
214 → 189
Calls
Call 1
Inputs
(sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))
(+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 5))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))))))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3))))
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(*.f64 -1 b)
(-.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) b)
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))) b)
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) b)
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(*.f64 -3 (*.f64 c a))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(pow.f64 b 2)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(pow.f64 b 2)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(pow.f64 b 2)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(*.f64 -3 (*.f64 c a))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(*.f64 -3 (*.f64 c a))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(pow.f64 b 2)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(*.f64 -3 (*.f64 c a))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(*.f64 -3 (*.f64 c a))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))
(-.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) b)
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) b)
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3)))))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(*.f64 -2 b)
(-.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 2 b))
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))) (*.f64 2 b))
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) (*.f64 2 b))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
Outputs
(sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))
(sqrt.f64 (*.f64 (*.f64 c a) -3))
(sqrt.f64 (*.f64 c (*.f64 a -3)))
(+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))))))
(+.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 (*.f64 c a) -3))))
(fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (sqrt.f64 (*.f64 c (*.f64 a -3))))
(fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (sqrt.f64 (*.f64 c (*.f64 a -3))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3))))
(+.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) (-.f64 (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 (*.f64 c a) -3))) (/.f64 (*.f64 1/8 (pow.f64 b 4)) (pow.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) 3))))
(+.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) -1/8)))
(fma.f64 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (sqrt.f64 (*.f64 c (*.f64 a -3)))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 5))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))))))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3))))
(+.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) (-.f64 (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) 5)) (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 (*.f64 c a) -3)))) (/.f64 (*.f64 1/8 (pow.f64 b 4)) (pow.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) 3))))
(+.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 5))) (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) -1/8))))
(fma.f64 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 5)) (sqrt.f64 (*.f64 c (*.f64 a -3))))))
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(+.f64 b (*.f64 (/.f64 c (/.f64 b a)) -3/2))
(+.f64 b (*.f64 (*.f64 (/.f64 c b) a) -3/2))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 b)
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)))))
(+.f64 b (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(+.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 b) (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
(*.f64 -1 b)
(neg.f64 b)
(-.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) b)
(-.f64 (*.f64 3/2 (/.f64 c (/.f64 b a))) b)
(-.f64 (*.f64 3/2 (*.f64 (/.f64 c b) a)) b)
(-.f64 (*.f64 3/2 (*.f64 a (/.f64 c b))) b)
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))) b)
(-.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))) b)
(-.f64 (fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)))) b)
(-.f64 (*.f64 9/8 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c))))) (fma.f64 (*.f64 a (/.f64 c b)) -3/2 b))
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) b)
(-.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) b)
(-.f64 (fma.f64 3/2 (*.f64 (/.f64 c b) a) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))) b)
(-.f64 (fma.f64 9/8 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) (*.f64 27/16 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))))) (fma.f64 (*.f64 a (/.f64 c b)) -3/2 b))
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(+.f64 b (*.f64 (/.f64 c (/.f64 b a)) -3/2))
(+.f64 b (*.f64 (*.f64 (/.f64 c b) a) -3/2))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 b)
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)))))
(+.f64 b (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(+.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 b) (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
b
(-.f64 b (*.f64 3/2 (/.f64 (*.f64 c a) b)))
(+.f64 b (*.f64 (/.f64 c (/.f64 b a)) -3/2))
(+.f64 b (*.f64 (*.f64 (/.f64 c b) a) -3/2))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 b)
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)))))
(+.f64 b (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)))
(-.f64 b (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 b (fma.f64 3/2 (*.f64 (/.f64 c b) a) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(+.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 b) (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
(*.f64 -3 (*.f64 c a))
(*.f64 (*.f64 c a) -3)
(*.f64 c (*.f64 a -3))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(*.f64 -3 (*.f64 c a))
(*.f64 (*.f64 c a) -3)
(*.f64 c (*.f64 a -3))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(*.f64 -3 (*.f64 c a))
(*.f64 (*.f64 c a) -3)
(*.f64 c (*.f64 a -3))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(*.f64 -3 (*.f64 c a))
(*.f64 (*.f64 c a) -3)
(*.f64 c (*.f64 a -3))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(*.f64 -3 (*.f64 c a))
(*.f64 (*.f64 c a) -3)
(*.f64 c (*.f64 a -3))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(-.f64 (pow.f64 b 2) (*.f64 3 (*.f64 c a)))
(+.f64 (*.f64 b b) (*.f64 (*.f64 c a) -3))
(fma.f64 b b (*.f64 c (*.f64 a -3)))
(fma.f64 c (*.f64 a -3) (*.f64 b b))
(sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))
(sqrt.f64 (*.f64 (*.f64 c a) -3))
(sqrt.f64 (*.f64 c (*.f64 a -3)))
(-.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) b)
(-.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) b)
(-.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) b)
(+.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) (-.f64 (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 (*.f64 c a) -3))) b))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a))))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) 3)))))
(+.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) (-.f64 (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 (*.f64 c a) -3))) (+.f64 b (/.f64 (*.f64 1/8 (pow.f64 b 4)) (pow.f64 (sqrt.f64 (*.f64 (*.f64 c a) -3)) 3)))))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (sqrt.f64 (*.f64 c (*.f64 a -3)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) b))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (sqrt.f64 (*.f64 c (*.f64 a -3)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) 3)) b))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(*.f64 (/.f64 c (/.f64 b a)) -3/2)
(*.f64 (*.f64 (/.f64 c b) a) -3/2)
(*.f64 (*.f64 a (/.f64 c b)) -3/2)
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(+.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (*.f64 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) -9/8))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5))))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (fma.f64 405/128 (/.f64 (pow.f64 c 4) (/.f64 (pow.f64 b 7) (pow.f64 a 4))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (fma.f64 405/128 (*.f64 (/.f64 (pow.f64 c 4) (pow.f64 b 7)) (pow.f64 a 4)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(-.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)) (fma.f64 27/16 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) (*.f64 405/128 (*.f64 (pow.f64 a 4) (/.f64 (pow.f64 c 4) (pow.f64 b 7))))))
(*.f64 -2 b)
(*.f64 b -2)
(-.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 2 b))
(fma.f64 3/2 (/.f64 c (/.f64 b a)) (neg.f64 (*.f64 b 2)))
(fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 b -2))
(fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b))))
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))) (*.f64 2 b))
(+.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))) (*.f64 b -2))
(fma.f64 3/2 (*.f64 (/.f64 c b) a) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (*.f64 b -2)))
(fma.f64 b -2 (fma.f64 3/2 (*.f64 a (/.f64 c b)) (*.f64 9/8 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))))))
(-.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) (*.f64 2 b))
(+.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))) (*.f64 b -2))
(+.f64 (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5))) (fma.f64 3/2 (*.f64 (/.f64 c b) a) (*.f64 b -2)))
(fma.f64 3/2 (*.f64 a (/.f64 c b)) (fma.f64 27/16 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) (fma.f64 9/8 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) (*.f64 b -2))))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(*.f64 (/.f64 c (/.f64 b a)) -3/2)
(*.f64 (*.f64 (/.f64 c b) a) -3/2)
(*.f64 (*.f64 a (/.f64 c b)) -3/2)
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(+.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (*.f64 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) -9/8))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5))))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (fma.f64 405/128 (/.f64 (pow.f64 c 4) (/.f64 (pow.f64 b 7) (pow.f64 a 4))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (fma.f64 405/128 (*.f64 (/.f64 (pow.f64 c 4) (pow.f64 b 7)) (pow.f64 a 4)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(-.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)) (fma.f64 27/16 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) (*.f64 405/128 (*.f64 (pow.f64 a 4) (/.f64 (pow.f64 c 4) (pow.f64 b 7))))))
(*.f64 -3/2 (/.f64 (*.f64 c a) b))
(*.f64 (/.f64 c (/.f64 b a)) -3/2)
(*.f64 (*.f64 (/.f64 c b) a) -3/2)
(*.f64 (*.f64 a (/.f64 c b)) -3/2)
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3)))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (*.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))))
(+.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (*.f64 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) -9/8))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5))))
(fma.f64 (*.f64 a (/.f64 c b)) -3/2 (fma.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8 (*.f64 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) -27/16)))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 9/8 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 405/128 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(neg.f64 (fma.f64 3/2 (/.f64 c (/.f64 b a)) (fma.f64 9/8 (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)) (fma.f64 405/128 (/.f64 (pow.f64 c 4) (/.f64 (pow.f64 b 7) (pow.f64 a 4))) (*.f64 27/16 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))))
(-.f64 (*.f64 (*.f64 (/.f64 c b) a) -3/2) (fma.f64 9/8 (*.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) (*.f64 a a)) (fma.f64 405/128 (*.f64 (/.f64 (pow.f64 c 4) (pow.f64 b 7)) (pow.f64 a 4)) (/.f64 (*.f64 (*.f64 27/16 (pow.f64 c 3)) (pow.f64 a 3)) (pow.f64 b 5)))))
(-.f64 (fma.f64 (*.f64 a (/.f64 c b)) -3/2 (*.f64 (/.f64 a (/.f64 (pow.f64 b 3) (*.f64 a (*.f64 c c)))) -9/8)) (fma.f64 27/16 (*.f64 (pow.f64 a 3) (/.f64 (pow.f64 c 3) (pow.f64 b 5))) (*.f64 405/128 (*.f64 (pow.f64 a 4) (/.f64 (pow.f64 c 4) (pow.f64 b 7))))))

prune166.0ms (2.2%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New17316189
Fresh011
Picked101
Done000
Total17417191
Error
9.7b
Counts
191 → 17
Alt Table
StatusErrorProgram
37.3b
(*.f64 (-.f64 (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) 3) b) (/.f64 1/3 a))
34.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
33.7b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (/.f64 1/3 a))
43.0b
(*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a))
34.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (*.f64 a 3) -1))
34.0b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
42.7b
(*.f64 (*.f64 -2 b) (/.f64 1/3 a))
34.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
44.8b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
35.7b
(*.f64 (-.f64 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2))) b) (/.f64 1/3 a))
38.7b
(*.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))) b) (/.f64 1/3 a))
34.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
44.9b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (/.f64 1/3 a))
50.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (exp.f64 (log.f64 (/.f64 1/3 a))))
57.9b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
47.4b
(*.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (/.f64 1/3 a))
37.2b
(*.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
Compiler

Compiled 5214 to 3337 computations (36% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
0.3b
(/.f64 1/3 a)
0.7b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
14.1b
(sqrt.f64 (*.f64 a (*.f64 c -3)))

series75.0ms (1%)

Counts
3 → 16
Calls

24 calls:

TimeVariablePointExpression
14.0ms
c
@-inf
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
8.0ms
c
@-inf
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
6.0ms
c
@inf
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
6.0ms
c
@inf
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
4.0ms
c
@0
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
566×prod-diff_binary64
217×expm1-udef_binary64
217×log1p-udef_binary64
128×add-sqr-sqrt_binary64
123×pow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01339
127839
2312939
Stop Event
node limit
Counts
3 → 134
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 a (*.f64 c -3)))
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (*.f64 a -3) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 a -3) c)) (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))) (cbrt.f64 (*.f64 (*.f64 a -3) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 c -3)) (sqrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (*.f64 a -3) c) 1/4) (pow.f64 (*.f64 (*.f64 a -3) c) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a -3) c)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a c)) (sqrt.f64 -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (*.f64 a -3) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a -3) c)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 a -3) c)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a c) 1/2) (sqrt.f64 -3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 a -3) c) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 a -3) c) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 a -3) c) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 a -3) c) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 a -3) c)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (*.f64 (neg.f64 b) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 b) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 2) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4) (*.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b)) (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4)) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 b)) (-.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))) (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3)) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3))) (neg.f64 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b))) (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 (neg.f64 b) (neg.f64 b))) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (*.f64 (neg.f64 b) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 b) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (neg.f64 b)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))) (/.f64 (pow.f64 b 3) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))) (/.f64 (*.f64 b b) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 2) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4) (*.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b)) (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4)) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 b)) (-.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))) (cbrt.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))) (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3)) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 b 3))) (neg.f64 (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 b b))) (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c)) (*.f64 (neg.f64 b) (neg.f64 b))) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a -3) c))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))))))

simplify33.0ms (0.4%)

Algorithm
egg-herbie
Rules
599×fma-def_binary64
590×cancel-sign-sub-inv_binary64
462×fma-neg_binary64
304×distribute-neg-frac_binary64
253×times-frac_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060559
1174508
2507481
32567477
Stop Event
node limit
Counts
150 → 109
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b))
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (+.f64 (*.f64 5/128 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 8) (pow.f64 b 7))) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)))))
(*.f64 -2 b)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 2 b)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 2 b)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (+.f64 (*.f64 2 b) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5))))))
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
Outputs
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(sqrt.f64 (*.f64 c (*.f64 -3 a)))
(sqrt.f64 (*.f64 a (*.f64 -3 c)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)
(-.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) b)
(-.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) b)
(+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (-.f64 (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b)
(-.f64 (fma.f64 (/.f64 1/2 (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (*.f64 b b) (sqrt.f64 (*.f64 a (*.f64 -3 c)))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 -3 (*.f64 c a))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)) b))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) (sqrt.f64 (*.f64 c (*.f64 -3 a)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 3)) b))
(-.f64 (fma.f64 (/.f64 1/2 (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (*.f64 b b) (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 3)) b))
(*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b))
(*.f64 1/2 (/.f64 (*.f64 -3 (*.f64 c a)) b))
(/.f64 (*.f64 (*.f64 c a) -3/2) b)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(fma.f64 1/2 (/.f64 (*.f64 -3 (*.f64 c a)) b) (*.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 4) (pow.f64 b 3)) -1/8 (/.f64 (*.f64 (*.f64 c a) -3/2) b))
(fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 4) (pow.f64 b 3)) -1/8 (/.f64 (*.f64 (*.f64 c a) -3/2) b))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(+.f64 (fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))))
(fma.f64 1/2 (/.f64 (*.f64 -3 (*.f64 c a)) b) (fma.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)) (*.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)) -1/8)))
(fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 4) (pow.f64 b 3)) -1/8 (fma.f64 1/16 (/.f64 (pow.f64 (*.f64 c (*.f64 -3 a)) 3) (pow.f64 b 5)) (/.f64 (*.f64 (*.f64 c a) -3/2) b)))
(fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 4) (pow.f64 b 3)) -1/8 (fma.f64 (/.f64 1/16 (pow.f64 b 5)) (pow.f64 (*.f64 a (*.f64 -3 c)) 3) (/.f64 (*.f64 (*.f64 c a) -3/2) b)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (+.f64 (*.f64 5/128 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 8) (pow.f64 b 7))) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)))))
(-.f64 (fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5)))) (fma.f64 5/128 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 8) (pow.f64 b 7)) (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 -3 (*.f64 c a)) b) (/.f64 (*.f64 1/16 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6)) (pow.f64 b 5))) (fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)) (*.f64 5/128 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 8) (pow.f64 b 7)))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 (*.f64 c (*.f64 -3 a)) 3) (pow.f64 b 5)) (/.f64 (*.f64 (*.f64 c a) -3/2) b)) (fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 4) (pow.f64 b 3)) -1/8 (/.f64 (*.f64 -5/128 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 8)) (pow.f64 b 7))))
(fma.f64 (/.f64 (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 4) (pow.f64 b 3)) -1/8 (fma.f64 (/.f64 (pow.f64 (*.f64 a (*.f64 -3 c)) 4) (pow.f64 b 7)) -5/128 (fma.f64 (/.f64 1/16 (pow.f64 b 5)) (pow.f64 (*.f64 a (*.f64 -3 c)) 3) (/.f64 (*.f64 (*.f64 c a) -3/2) b))))
(*.f64 -2 b)
(*.f64 b -2)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 2 b)))
(neg.f64 (fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b) (*.f64 b 2)))
(+.f64 (*.f64 (/.f64 (*.f64 -3 (*.f64 c a)) b) -1/2) (*.f64 b -2))
(-.f64 (*.f64 b -2) (/.f64 (*.f64 (*.f64 c a) -3/2) b))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (*.f64 2 b)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b) (*.f64 b 2)))
(fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3)) (+.f64 (*.f64 (/.f64 (*.f64 -3 (*.f64 c a)) b) -1/2) (*.f64 b -2)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 4) (pow.f64 b 3))) (fma.f64 b 2 (/.f64 (*.f64 (*.f64 c a) -3/2) b)))
(-.f64 (fma.f64 (/.f64 1/8 (pow.f64 b 3)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 4) (*.f64 b -2)) (/.f64 (*.f64 (*.f64 c a) -3/2) b))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b)) (+.f64 (*.f64 2 b) (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5))))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) b) (fma.f64 2 b (*.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6) (pow.f64 b 5))))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 (*.f64 -3 (*.f64 c a)) b) (fma.f64 b 2 (/.f64 (*.f64 1/16 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 6)) (pow.f64 b 5)))))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 4) (pow.f64 b 3)) (*.f64 b -2)) (fma.f64 1/16 (/.f64 (pow.f64 (*.f64 c (*.f64 -3 a)) 3) (pow.f64 b 5)) (/.f64 (*.f64 (*.f64 c a) -3/2) b)))
(-.f64 (fma.f64 (/.f64 1/8 (pow.f64 b 3)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 4) (*.f64 b -2)) (fma.f64 (/.f64 1/16 (pow.f64 b 5)) (pow.f64 (*.f64 a (*.f64 -3 c)) 3) (/.f64 (*.f64 (*.f64 c a) -3/2) b)))
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(sqrt.f64 (*.f64 c (*.f64 -3 a)))
(sqrt.f64 (*.f64 a (*.f64 -3 c)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)
(-.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) b)
(-.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) b)
(+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (-.f64 (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b)
(-.f64 (fma.f64 (/.f64 1/2 (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (*.f64 b b) (sqrt.f64 (*.f64 a (*.f64 -3 c)))) b)
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (/.f64 (*.f64 1/2 (*.f64 b b)) (sqrt.f64 (*.f64 -3 (*.f64 c a))))) (+.f64 b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)) b))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) (sqrt.f64 (*.f64 c (*.f64 -3 a)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 c (*.f64 -3 a))) 3)) b))
(-.f64 (fma.f64 (/.f64 1/2 (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (*.f64 b b) (sqrt.f64 (*.f64 a (*.f64 -3 c)))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 -3 c))) 3)) b))

prune143.0ms (1.9%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New1274131
Fresh31316
Picked101
Done000
Total13117148
Error
7.8b
Counts
148 → 17
Alt Table
StatusErrorProgram
37.5b
(*.f64 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))) 2) (/.f64 1/3 a))
35.7b
(*.f64 (-.f64 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2))) b) (/.f64 1/3 a))
49.1b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -3)) (sqrt.f64 a))) b)) 2) (/.f64 1/3 a))
38.7b
(*.f64 (-.f64 (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))) b) (/.f64 1/3 a))
43.6b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 -2 b)) 2) (/.f64 1/3 a))
34.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
52.5b
(*.f64 (pow.f64 (sqrt.f64 (/.f64 (*.f64 (*.f64 c a) -3/2) b)) 2) (/.f64 1/3 a))
44.9b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (/.f64 1/3 a))
34.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
44.8b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
50.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (exp.f64 (log.f64 (/.f64 1/3 a))))
34.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
57.9b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
43.0b
(*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a))
34.0b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
47.4b
(*.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (/.f64 1/3 a))
37.2b
(*.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
Compiler

Compiled 4140 to 2900 computations (30% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1/3 a)
0.4b
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
0.7b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
14.1b
(sqrt.f64 (*.f64 a (*.f64 c -3)))

series130.0ms (1.7%)

Counts
1 → 4
Calls

9 calls:

TimeVariablePointExpression
40.0ms
c
@0
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
27.0ms
a
@0
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
19.0ms
c
@inf
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
17.0ms
c
@-inf
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
9.0ms
a
@-inf
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)

rewrite53.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
566×prod-diff_binary64
216×expm1-udef_binary64
216×log1p-udef_binary64
130×add-sqr-sqrt_binary64
123×pow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
128015
2318915
Stop Event
node limit
Counts
1 → 56
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (*.f64 (neg.f64 b) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (cbrt.f64 (*.f64 b b)) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 b) (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (cbrt.f64 (*.f64 b b)) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) 1 (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 b) 1 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 b)) (cbrt.f64 (*.f64 b b)) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 -1 b b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (neg.f64 b)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) b))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))) (/.f64 (pow.f64 b 3) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))) (/.f64 (*.f64 b b) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) (*.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b)) (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)) 3) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3) (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (sqrt.f64 b)) (-.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) 1) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2))) (cbrt.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6)) (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3))) (neg.f64 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b b))) (neg.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 (neg.f64 b) 3)) (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 (neg.f64 b) (neg.f64 b))) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (neg.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))) (neg.f64 b))))))

simplify18.0ms (0.2%)

Algorithm
egg-herbie
Rules
578×associate-/l*_binary64
436×associate-/r*_binary64
406×associate-*l*_binary64
278×associate-*l/_binary64
272×associate-*r/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
029208
177204
2210204
3932200
Stop Event
node limit
Counts
60 → 63
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
Outputs
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b))
(fma.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) (neg.f64 b) (sqrt.f64 (*.f64 -3 (*.f64 c a))))
(-.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (*.f64 b (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18))))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b))
(+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (-.f64 (*.f64 1/2 (/.f64 (*.f64 b b) (sqrt.f64 (*.f64 -3 (*.f64 c a))))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b)))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (*.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (*.f64 b (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18))))
(-.f64 (+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (*.f64 1/2 (/.f64 (pow.f64 b 2) (sqrt.f64 (*.f64 -3 (*.f64 c a)))))) (+.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/9) b) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (-.f64 (*.f64 1/2 (/.f64 (*.f64 b b) (sqrt.f64 (*.f64 -3 (*.f64 c a))))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3))))))
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b)) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (fma.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) b (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (sqrt.f64 (*.f64 -3 (*.f64 c a)))) (fma.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (*.f64 b (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 3)))))
(+.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) (-.f64 (*.f64 (*.f64 (/.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b) (-.f64 1/2 (/.f64 (*.f64 b b) (/.f64 a (/.f64 -1/24 c))))) (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18) (*.f64 b (pow.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 4) 1/18)))))

prune185.0ms (2.4%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New1846190
Fresh11516
Picked101
Done000
Total18621207
Error
7.8b
Counts
207 → 21
Alt Table
StatusErrorProgram
37.5b
(*.f64 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))) 2) (/.f64 1/3 a))
35.7b
(*.f64 (-.f64 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2))) b) (/.f64 1/3 a))
47.5b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (*.f64 (*.f64 c a) -3/2) b)) 3) (/.f64 1/3 a))
43.6b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 -2 b)) 2) (/.f64 1/3 a))
34.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
52.5b
(*.f64 (pow.f64 (sqrt.f64 (/.f64 (*.f64 (*.f64 c a) -3/2) b)) 2) (/.f64 1/3 a))
44.9b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (/.f64 1/3 a))
49.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
57.9b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
43.0b
(*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a))
34.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
37.5b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))) 3) (/.f64 1/3 a))
34.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
44.8b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
49.1b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -3)) (sqrt.f64 a))) b)) 2) (/.f64 1/3 a))
37.6b
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))) 3) (/.f64 1/3 a))
50.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (exp.f64 (log.f64 (/.f64 1/3 a))))
34.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
47.4b
(*.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (/.f64 1/3 a))
37.2b
(*.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
35.6b
(*.f64 (*.f64 (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3) (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3)) (/.f64 1/3 a))
Compiler

Compiled 6048 to 4115 computations (32% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 (/.f64 1/3 a))
0.7b
(pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3)
0.7b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)
14.1b
(sqrt.f64 (*.f64 a (*.f64 c -3)))

series11.0ms (0.1%)

Counts
2 → 0
Calls

6 calls:

TimeVariablePointExpression
5.0ms
a
@-inf
(pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3)
2.0ms
a
@0
(pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3)
1.0ms
a
@-inf
(cbrt.f64 (/.f64 1/3 a))
1.0ms
a
@inf
(pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3)
1.0ms
a
@inf
(cbrt.f64 (/.f64 1/3 a))

rewrite35.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

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

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

prune177.0ms (2.3%)

Pruning

23 alts after pruning (22 fresh and 1 done)

PrunedKeptTotal
New1623165
Fresh11920
Picked011
Done000
Total16323186
Error
7.8b
Counts
186 → 23
Alt Table
StatusErrorProgram
37.5b
(*.f64 (pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))) 2) (/.f64 1/3 a))
35.7b
(*.f64 (-.f64 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) (pow.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) 2))) b) (/.f64 1/3 a))
34.1b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (/.f64 (pow.f64 (cbrt.f64 1/3) 3) a))
47.5b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (*.f64 (*.f64 c a) -3/2) b)) 3) (/.f64 1/3 a))
43.6b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 -2 b)) 2) (/.f64 1/3 a))
34.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
52.5b
(*.f64 (pow.f64 (sqrt.f64 (/.f64 (*.f64 (*.f64 c a) -3/2) b)) 2) (/.f64 1/3 a))
44.9b
(*.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) 3/2) (pow.f64 b 3)) (/.f64 1 (+.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))) (*.f64 b (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3))))))))) (/.f64 1/3 a))
37.6b
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (sqrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c)))) (neg.f64 b))) 3) (/.f64 1/3 a))
49.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -3)))) b)) 3) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
43.1b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b -2)) 3) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
34.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
49.3b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
57.9b
(*.f64 (-.f64 b b) (/.f64 1/3 a))
43.0b
(*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a))
34.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (pow.f64 (cbrt.f64 (/.f64 1/3 a)) 3))
37.5b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a -3) c))) b) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) b))) 3) (/.f64 1/3 a))
44.8b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
49.1b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -3)) (sqrt.f64 a))) b)) 2) (/.f64 1/3 a))
50.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (exp.f64 (log.f64 (/.f64 1/3 a))))
47.4b
(*.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (/.f64 1/3 a))
37.2b
(*.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/3 a))
35.6b
(*.f64 (*.f64 (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3) (pow.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b) 1/6) 3)) (/.f64 1/3 a))
Compiler

Compiled 5076 to 3734 computations (26.4% saved)

regimes2.8s (36.5%)

Accuracy

Total 7.4b remaining (53.2%)

Threshold costs 0b (0%)

Counts
201 → 3
Compiler

Compiled 4232 to 2882 computations (31.9% saved)

bsearch79.0ms (1%)

Algorithm
binary-search
Calls

2 calls:

41.0ms
b
36.0ms
b
Steps
ItersPointRange
4e-107
∈ [
5.13952792680993e-115
,
4.372937378596999e-107
]
-1.2e+154
∈ [
-1.0130479877032266e+174
,
-5.6154104391147986e+153
]
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03270
14570
24970
35170
45270
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 b -12000000000000000741083689728179300860774047506737883413558835600106129882515049101049668142894279387343668476782235654465533253946114566581028258018492416) (*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a)) (if (<=.f64 b 3305279843951243/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032) (*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (/.f64 1/3 a) 1)) (*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))))
Outputs
(if (<=.f64 b -12000000000000000741083689728179300860774047506737883413558835600106129882515049101049668142894279387343668476782235654465533253946114566581028258018492416) (*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a)) (if (<=.f64 b 3305279843951243/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032) (*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (/.f64 1/3 a) 1)) (*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))))
(if (<=.f64 b -12000000000000000741083689728179300860774047506737883413558835600106129882515049101049668142894279387343668476782235654465533253946114566581028258018492416) (*.f64 (fma.f64 b -2 (*.f64 3/2 (*.f64 a (/.f64 c b)))) (/.f64 1/3 a)) (if (<=.f64 b 3305279843951243/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032) (*.f64 (/.f64 1/3 a) (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)) (*.f64 (/.f64 1/3 a) (*.f64 (*.f64 a (/.f64 c b)) -3/2))))

end330.0ms (4.3%)

Stop Event
fuel
Compiler

Compiled 623 to 446 computations (28.4% saved)

Profiling

Loading profile data...