Cubic critical

Time bar (total: 2.6s)

analyze172.0ms (6.6%)

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 13 computations (38.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 84.0ms
ival-mult: 28.0ms (33.2% of total)
ival-neg: 22.0ms (26.1% of total)
ival-sqrt: 11.0ms (13% of total)
ival-div: 8.0ms (9.5% of total)
ival-sub: 7.0ms (8.3% of total)
ival-add: 7.0ms (8.3% of total)
const: 2.0ms (2.4% of total)

sample2.1s (80.7%)

Results
702.0ms5712×256valid
474.0ms1096×2048valid
195.0ms405×4096valid
191.0ms675×1024valid
104.0ms991×256invalid
62.0ms368×512valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
ival-mult: 426.0ms (35% of total)
ival-div: 265.0ms (21.8% of total)
ival-add: 166.0ms (13.6% of total)
ival-sqrt: 134.0ms (11% of total)
ival-neg: 112.0ms (9.2% of total)
ival-sub: 95.0ms (7.8% of total)
const: 19.0ms (1.6% of total)
Bogosity

preprocess118.0ms (4.5%)

Algorithm
egg-herbie
Rules
838×div-sub
712×fma-neg
592×fma-define
501×sub-neg
393×associate-/r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
060779
1176671
2482671
31308671
43657671
57636671
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) (neg.f64 a)) c)))) (*.f64 #s(literal 3 binary64) (neg.f64 a)))
(/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) (neg.f64 c))))) (*.f64 #s(literal 3 binary64) a))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) (neg.f64 a)) c)))) (*.f64 #s(literal 3 binary64) (neg.f64 a))))
(neg.f64 (/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a)))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) (neg.f64 c))))) (*.f64 #s(literal 3 binary64) a)))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 #s(literal 3 binary64) b) c)))) (*.f64 #s(literal 3 binary64) b))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) c) a)))) (*.f64 #s(literal 3 binary64) c))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 #s(literal 3 binary64) a) b)))) (*.f64 #s(literal 3 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 a c))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -3 binary64))))) b) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 a c))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -3 binary64))))) b) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) (neg.f64 a)) c)))) (*.f64 #s(literal 3 binary64) (neg.f64 a)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 3 binary64) (neg.f64 a)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 #s(literal 3 binary64) (*.f64 a c)))) b) (*.f64 a #s(literal -3 binary64)))
(*.f64 #s(literal -1/3 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a))
(*.f64 (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a) #s(literal -1/3 binary64))
(/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 a c))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -3 binary64)))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) (neg.f64 c))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 #s(literal 3 binary64) (*.f64 a c)))) b) (*.f64 #s(literal 3 binary64) a))
(*.f64 #s(literal 1/3 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a))
(*.f64 (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a) #s(literal 1/3 binary64))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) (neg.f64 a)) c)))) (*.f64 #s(literal 3 binary64) (neg.f64 a))))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) (neg.f64 c))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 #s(literal 3 binary64) (*.f64 a c)))) b) (*.f64 #s(literal 3 binary64) a))
(*.f64 #s(literal 1/3 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a))
(*.f64 (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a) #s(literal 1/3 binary64))
(neg.f64 (/.f64 (+.f64 (neg.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a)))
(/.f64 (+.f64 b (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 a c))))) (*.f64 #s(literal 3 binary64) (neg.f64 a)))
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -3 binary64)))))) (*.f64 a #s(literal -3 binary64)))
(neg.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) (neg.f64 c))))) (*.f64 #s(literal 3 binary64) a)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 (neg.f64 a) c))))) (*.f64 #s(literal 3 binary64) (neg.f64 a)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 #s(literal 3 binary64) (*.f64 a c)))) b) (*.f64 a #s(literal -3 binary64)))
(*.f64 #s(literal -1/3 binary64) (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a))
(*.f64 (/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 #s(literal 3 binary64) c)))) b) a) #s(literal -1/3 binary64))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 (*.f64 #s(literal 3 binary64) b) c)))) (*.f64 #s(literal 3 binary64) b))
(/.f64 (+.f64 (neg.f64 a) (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 #s(literal 3 binary64) (*.f64 b c))))) (*.f64 b #s(literal 3 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 c (*.f64 b #s(literal -3 binary64))))) a) (*.f64 b #s(literal 3 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a a (*.f64 b (*.f64 c #s(literal -3 binary64))))) a) (*.f64 b #s(literal 3 binary64)))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 c #s(literal -3 binary64)) (*.f64 a a))) a) (*.f64 b #s(literal 3 binary64)))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) c) a)))) (*.f64 #s(literal 3 binary64) c))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 #s(literal 3 binary64) (*.f64 c a))))) (*.f64 #s(literal 3 binary64) c))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c #s(literal -3 binary64))))) b) (*.f64 #s(literal 3 binary64) c))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 (*.f64 #s(literal 3 binary64) a) b)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (+.f64 (neg.f64 c) (sqrt.f64 (-.f64 (*.f64 c c) (*.f64 b (*.f64 #s(literal 3 binary64) a))))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 c c (*.f64 b (*.f64 a #s(literal -3 binary64))))) c) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (fma.f64 b (*.f64 a #s(literal -3 binary64)) (*.f64 c c))) c) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 c (sqrt.f64 (fma.f64 b (*.f64 a #s(literal -3 binary64)) (*.f64 c c)))) (*.f64 a #s(literal -3 binary64)))

explain179.0ms (6.8%)

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 (*.f64 #s(literal 3 binary64) a) c)))
670-0-(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c))))
100-0-(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
30-0-(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c))
00-0-(*.f64 #s(literal 3 binary64) a)
00-0-b
00-0-(neg.f64 b)
00-0-c
00-0-(*.f64 b b)
00-0-(*.f64 (*.f64 #s(literal 3 binary64) a) c)
00-0-#s(literal 3 binary64)
00-0-a
Results
60.0ms348×256valid
35.0ms76×2048valid
14.0ms44×1024valid
11.0ms20×4096valid
5.0ms24×512valid
Compiler

Compiled 160 to 38 computations (76.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 50.0ms
ival-mult: 18.0ms (35.7% of total)
ival-sqrt: 8.0ms (15.9% of total)
ival-div: 7.0ms (13.9% of total)
ival-neg: 5.0ms (9.9% of total)
ival-sub: 5.0ms (9.9% of total)
ival-add: 5.0ms (9.9% of total)
const: 1.0ms (2% 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.7%
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
Compiler

Compiled 40 to 24 computations (40% 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
01969
13165
25065
36165
46965
57265
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c)))) (*.f64 #s(literal 3 binary64) a))
(/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 3 binary64) a) c))) b) (*.f64 #s(literal 3 binary64) a))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 19 to 11 computations (42.1% saved)

preprocess32.0ms (1.2%)

Compiler

Compiled 78 to 46 computations (41% saved)

end0.0ms (0%)

Profiling

Loading profile data...