quadp (p42, positive)

Time bar (total: 2.5s)

analyze188.0ms (7.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
25%25%74.9%0.1%0%0%0%4
37.5%37.4%62.4%0.1%0%0%0%5
37.5%37.4%62.4%0.1%0%0%0%6
40%37.4%56.2%0.1%0%6.2%0%7
48.3%45.2%48.4%0.1%0%6.2%0%8
53%48.4%42.9%0.1%0%8.6%0%9
58.1%50.3%36.3%0.1%0%13.3%0%10
66.1%56.8%29.1%0.1%0%14%0%11
70.4%58.8%24.7%0.1%0%16.4%0%12
Compiler

Compiled 21 to 15 computations (28.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 107.0ms
ival-mult: 58.0ms (54.2% of total)
ival-div: 14.0ms (13.1% of total)
ival-sqrt: 11.0ms (10.3% of total)
ival-neg: 8.0ms (7.5% of total)
ival-sub: 7.0ms (6.5% of total)
ival-add: 7.0ms (6.5% of total)
const: 2.0ms (1.9% of total)

sample2.0s (77.7%)

Results
558.0ms5714×256valid
455.0ms1096×2048valid
191.0ms406×4096valid
190.0ms674×1024valid
90.0ms993×256invalid
69.0ms366×512valid
Precisions
Click to see histograms. Total time spent on operations: 1.1s
ival-mult: 483.0ms (45.5% of total)
ival-sqrt: 142.0ms (13.4% of total)
ival-div: 126.0ms (11.9% of total)
ival-sub: 99.0ms (9.3% of total)
ival-add: 94.0ms (8.8% of total)
ival-neg: 92.0ms (8.7% of total)
const: 26.0ms (2.4% of total)
Bogosity

preprocess136.0ms (5.4%)

Algorithm
egg-herbie
Rules
834×div-sub
688×fma-neg
551×fma-define
496×sub-neg
390×associate-/r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
067779
1184687
2463671
31378671
43677671
57597671
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 2 binary64) (neg.f64 a)))
(/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 #s(literal 2 binary64) a))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 2 binary64) (neg.f64 a))))
(neg.f64 (/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a)))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 #s(literal 2 binary64) a)))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 #s(literal 4 binary64) (*.f64 b c))))) (*.f64 #s(literal 2 binary64) b))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 c a))))) (*.f64 #s(literal 2 binary64) c))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 #s(literal 4 binary64) (*.f64 a b))))) (*.f64 #s(literal 2 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64))))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64)))))) (*.f64 a #s(literal -2 binary64)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64))))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64)))))) (*.f64 a #s(literal -2 binary64)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 2 binary64) (neg.f64 a)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (neg.f64 (*.f64 a #s(literal 2 binary64))))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal -2 binary64)))
(*.f64 #s(literal -1/2 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) (*.f64 a #s(literal -2 binary64)))
(/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 #s(literal -4 binary64) a))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64)))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 b (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b)))) (*.f64 a #s(literal -2 binary64)))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 2 binary64) (neg.f64 a))))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 b (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b)))) (*.f64 a #s(literal -2 binary64)))
(neg.f64 (/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a)))
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (neg.f64 (*.f64 a #s(literal 2 binary64))))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 #s(literal -4 binary64) a))))) (*.f64 a #s(literal -2 binary64)))
(*.f64 #s(literal -1/2 binary64) (/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64)))))) a))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64)))))) (*.f64 a #s(literal -2 binary64)))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (*.f64 #s(literal 2 binary64) a)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a (neg.f64 c)))))) (neg.f64 (*.f64 a #s(literal 2 binary64))))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 a #s(literal -2 binary64)))
(*.f64 #s(literal -1/2 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 #s(literal 4 binary64) (*.f64 a c) (*.f64 b b))) b) (*.f64 a #s(literal -2 binary64)))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 #s(literal 4 binary64) (*.f64 b c))))) (*.f64 #s(literal 2 binary64) b))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 #s(literal 4 binary64) (*.f64 b c))))) (*.f64 b #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 (*.f64 b c) #s(literal -4 binary64)))) a) (*.f64 b #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 c (*.f64 b #s(literal -4 binary64))))) a) (*.f64 b #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 c #s(literal -4 binary64)) (*.f64 a a))) a) (*.f64 b #s(literal 2 binary64)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 c a))))) (*.f64 #s(literal 2 binary64) c))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 c #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 #s(literal -4 binary64) a)))) b) (*.f64 c #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -4 binary64))))) b) (*.f64 c #s(literal 2 binary64)))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 #s(literal 4 binary64) (*.f64 a b))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (+.f64 (*.f64 c c) (*.f64 #s(literal -4 binary64) (*.f64 b a))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c c (*.f64 (*.f64 b a) #s(literal -4 binary64)))) c) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a #s(literal -4 binary64))))) c) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 c (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a #s(literal -4 binary64)))))) (*.f64 a #s(literal -2 binary64)))
(/.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a #s(literal -4 binary64)) (*.f64 c c)))) (*.f64 a #s(literal -2 binary64)))

explain193.0ms (7.6%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
920-2(4.785718880724937e-305 -4.237608528218221e-162 1.2914635232116218e-102)(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))
670-0-(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c)))))
100-0-(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
30-0-(-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c)))
00-0-b
00-0-(neg.f64 b)
00-0-#s(literal 2 binary64)
00-0-c
00-0-(*.f64 #s(literal 2 binary64) a)
00-0-(*.f64 b b)
00-0-#s(literal 4 binary64)
00-0-(*.f64 a c)
00-0-(*.f64 #s(literal 4 binary64) (*.f64 a c))
00-0-a
Results
53.0ms348×256valid
50.0ms76×2048valid
20.0ms44×1024valid
12.0ms20×4096valid
6.0ms24×512valid
Compiler

Compiled 168 to 44 computations (73.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 71.0ms
ival-mult: 34.0ms (47.7% of total)
ival-neg: 11.0ms (15.4% of total)
ival-sqrt: 8.0ms (11.2% of total)
ival-div: 7.0ms (9.8% of total)
ival-sub: 5.0ms (7% of total)
ival-add: 5.0ms (7% of total)
const: 2.0ms (2.8% of total)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
54.4%
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
Compiler

Compiled 40 to 28 computations (30% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
sub-neg
neg-sub0
neg-mul-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02169
13465
24765
36065
46865
57365
67565
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c))))) (*.f64 a #s(literal 2 binary64)))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 4 binary64) (*.f64 a c)))) b) (*.f64 a #s(literal 2 binary64)))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 19 to 13 computations (31.6% saved)

preprocess43.0ms (1.7%)

Compiler

Compiled 294 to 110 computations (62.6% saved)

end0.0ms (0%)

Profiling

Loading profile data...