jeff quadratic root 2

Details

Time bar (total: 7.1s)

analyze2.1s (29%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%199.7%-99.7%0%0%0%1
0%0%399.4%-299.4%0%0%0%2
0%0%798.8%-698.8%0%0%0%3
0%0%1597.7%-1497.7%0%0%0%4
0%0%3195.3%-3095.3%0%0%0%5
0%0%6390.6%-6290.6%0%0%0%6
0%0%12781.3%-12681.3%0%0%0%7
0%0%25562.5%-25462.5%0%0%0%8
0%0%51125%-51025%0%0%0%9
0%0%102250.1%-102150.1%0%0%0%10
0%0%204500.1%-204400.1%0%0%0%11
0%0%409000.3%-408900.3%0%0%0%12
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample4.8s (66.8%)

Results
3.2s7576×body256valid
1.2s2782×body256invalid
305.0ms680×body256infinite
Bogosity

preprocess97.0ms (1.4%)

Algorithm
egg-herbie
Rules
1922×fma-def
962×div-sub
922×associate-/r*
894×associate-/l*
692×sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059444
1136396
2326396
3704380
41307380
52412380
66246380
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
(if (>=.f64 a 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 4 b) c))))) (/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 4 b) c)))) (*.f64 2 b)))
(if (>=.f64 b 0) (/.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 c) a))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 c) a)))) (*.f64 2 c)))
(if (>=.f64 c 0) (/.f64 (*.f64 2 b) (-.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 4 a) b))))) (/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 4 a) b)))) (*.f64 2 a)))
Outputs
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a)))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 4 a))))) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 (/.f64 2 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) c) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 c (/.f64 2 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (/.f64 (/.f64 c -1/2) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 -1/2 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) a)))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))))) (*.f64 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) a) -1/2))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))))) (*.f64 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) a) -1/2))
(if (>=.f64 a 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 4 b) c))))) (/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 4 b) c)))) (*.f64 2 b)))
(if (>=.f64 a 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 c (*.f64 b 4)))))) (/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 c (*.f64 b 4))))) (*.f64 b 2)))
(if (>=.f64 a 0) (*.f64 (/.f64 2 (-.f64 (neg.f64 a) (sqrt.f64 (fma.f64 a a (*.f64 c (*.f64 b -4)))))) c) (/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 c (*.f64 b -4)))) a) (*.f64 b 2)))
(if (>=.f64 a 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 a) (sqrt.f64 (fma.f64 c (*.f64 b -4) (*.f64 a a))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 c (*.f64 b -4) (*.f64 a a))) a) (*.f64 b 2)))
(if (>=.f64 a 0) (*.f64 c (/.f64 -2 (+.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a))) a) (*.f64 b 2)))
(if (>=.f64 a 0) (/.f64 -2 (/.f64 (+.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))) c)) (*.f64 -1/2 (/.f64 (-.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))) b)))
(if (>=.f64 a 0) (*.f64 c (/.f64 -2 (+.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))))) (/.f64 (-.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))) (*.f64 b -2)))
(if (>=.f64 a 0) (*.f64 c (/.f64 -2 (+.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a)))))) (/.f64 (*.f64 -1/2 (-.f64 a (sqrt.f64 (fma.f64 b (*.f64 c -4) (*.f64 a a))))) b))
(if (>=.f64 b 0) (/.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 c) a))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 c) a)))) (*.f64 2 c)))
(if (>=.f64 b 0) (/.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 c a)))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 c a))))) (*.f64 2 c)))
(if (>=.f64 b 0) (*.f64 (/.f64 2 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) a) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 c)))
(if (>=.f64 b 0) (*.f64 a (/.f64 2 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 c)))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 c)))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 -1/2 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) c)))
(if (>=.f64 b 0) (/.f64 a (*.f64 (+.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) -1/2)) (*.f64 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -4) (*.f64 b b)))) c) -1/2))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))))) (*.f64 (/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) c) -1/2))
(if (>=.f64 c 0) (/.f64 (*.f64 2 b) (-.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 4 a) b))))) (/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 4 a) b)))) (*.f64 2 a)))
(if (>=.f64 c 0) (/.f64 (*.f64 b 2) (-.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 b (*.f64 4 a)))))) (/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 b (*.f64 4 a))))) (*.f64 2 a)))
(if (>=.f64 c 0) (*.f64 (/.f64 2 (-.f64 (neg.f64 c) (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a -4)))))) b) (/.f64 (-.f64 (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a -4)))) c) (*.f64 2 a)))
(if (>=.f64 c 0) (*.f64 b (/.f64 2 (-.f64 (neg.f64 c) (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c))) c) (*.f64 2 a)))
(if (>=.f64 c 0) (*.f64 b (/.f64 -2 (+.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c))) c) (*.f64 2 a)))
(if (>=.f64 c 0) (*.f64 b (/.f64 -2 (+.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))))) (*.f64 -1/2 (/.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))) a)))
(if (>=.f64 c 0) (*.f64 b (/.f64 -2 (+.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))))) (*.f64 (/.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a -4) (*.f64 c c)))) a) -1/2))
Compiler

Compiled 44 to 29 computations (34.1% saved)

simplify193.0ms (2.7%)

Algorithm
egg-herbie
Rules
2518×fma-def
1118×div-sub
1050×fma-neg
910×times-frac
738×sub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
026111
14999
210499
324595
444095
577695
6148895
7291995
8431795
9553295
10655695
11700895
12712695
13793295
14799795
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Outputs
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (neg.f64 (*.f64 4 (*.f64 a c)))))) c)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (neg.f64 (*.f64 4 (*.f64 a c)))))) (*.f64 2 a)))
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) c)) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 (/.f64 c (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 c a) -4))))) 2) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 c a) -4))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)))

eval3.0ms (0%)

Compiler

Compiled 217 to 131 computations (39.6% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New336
Fresh011
Picked000
Done000
Total347
Accurracy
72.1%
Counts
7 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.0%
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
71.4%
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) c)) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
71.9%
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)))
72.0%
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
71.4%
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) c)) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a)))
71.9%
(if (>=.f64 b 0) (*.f64 -2 (/.f64 c (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (/.f64 -1/2 a)))
Compiler

Compiled 232 to 150 computations (35.3% saved)

localize2.0ms (0%)

Compiler

Compiled 428 to 239 computations (44.2% saved)

end0.0ms (0%)

Profiling

Loading profile data...