Kahan p13 Example 1

Time bar (total: 8.5s)

analyze5.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
50%50%50%0%0%0%0%2
75%75%25%0%0%0%0%3
87.5%87.5%12.5%0%0%0%0%4
93.8%93.7%6.2%0%0%0%0%5
96.9%96.8%3.1%0%0%0%0%6
98.4%98.4%1.6%0%0%0%0%7
99.2%99.2%0.8%0%0%0%0%8
99.6%99.6%0.4%0%0%0%0%9
99.8%99.8%0.2%0%0%0%0%10
99.9%99.9%0.1%0%0%0%0%11
100%99.9%0%0%0%0%0%12
Compiler

Compiled 37 to 29 computations (21.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.0ms
Operation ival-add, time spent: 1.0ms, 42.0% of total-time
Operation ival-mult, time spent: 1.0ms, 42.0% of total-time
Operation ival-div, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample3.0s (35.8%)

Results
2.5s8255×0valid
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 1.8s
Operation ival-add, time spent: 1.0s, 55.0% of total-time
Operation ival-mult, time spent: 378.0ms, 21.0% of total-time
Operation ival-div, time spent: 377.0ms, 21.0% of total-time
Operation const, time spent: 69.0ms, 4.0% of total-time
Bogosity

preprocess2.6s (30.5%)

Algorithm
egg-herbie
Rules
1406×fma-def
1052×fma-neg
824×neg-mul-1
804×div-sub
728×sub-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t))))
00-0-(*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))
00-0-(+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t))))
00-0-(+.f64 1 t)
00-0-(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
00-0-(*.f64 2 t)
00-0-t
00-0-2
00-0-(/.f64 (*.f64 2 t) (+.f64 1 t))
00-0-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
024544
158480
2143460
3537420
42544416
56574416
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))))
(neg.f64 (/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t)))))))
Outputs
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (*.f64 (/.f64 2 (/.f64 (+.f64 1 t) t)) (/.f64 2 (/.f64 (+.f64 1 t) t)))) (+.f64 2 (*.f64 (/.f64 2 (/.f64 (+.f64 1 t) t)) (/.f64 2 (/.f64 (+.f64 1 t) t)))))
(/.f64 (fma.f64 (/.f64 t (/.f64 (+.f64 1 t) 2)) (/.f64 t (/.f64 (+.f64 1 t) 2)) 1) (fma.f64 (/.f64 t (/.f64 (+.f64 1 t) 2)) (/.f64 t (/.f64 (+.f64 1 t) 2)) 2))
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
(/.f64 (fma.f64 (/.f64 (/.f64 (*.f64 t 4) (+.f64 1 t)) (+.f64 1 t)) t 1) (fma.f64 (/.f64 (/.f64 4 (+.f64 1 t)) (+.f64 1 t)) (*.f64 t t) 2))
(/.f64 (fma.f64 t (*.f64 (/.f64 4 (+.f64 1 t)) (/.f64 t (+.f64 1 t))) 1) (fma.f64 t (*.f64 (/.f64 4 (+.f64 1 t)) (/.f64 t (+.f64 1 t))) 2))
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (*.f64 (/.f64 2 (/.f64 (+.f64 1 t) t)) (/.f64 2 (/.f64 (+.f64 1 t) t)))) (+.f64 2 (*.f64 (/.f64 2 (/.f64 (+.f64 1 t) t)) (/.f64 2 (/.f64 (+.f64 1 t) t)))))
(/.f64 (fma.f64 (/.f64 t (/.f64 (+.f64 1 t) 2)) (/.f64 t (/.f64 (+.f64 1 t) 2)) 1) (fma.f64 (/.f64 t (/.f64 (+.f64 1 t) 2)) (/.f64 t (/.f64 (+.f64 1 t) 2)) 2))
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
(/.f64 (fma.f64 (/.f64 (/.f64 (*.f64 t 4) (+.f64 1 t)) (+.f64 1 t)) t 1) (fma.f64 (/.f64 (/.f64 4 (+.f64 1 t)) (+.f64 1 t)) (*.f64 t t) 2))
(/.f64 (fma.f64 t (*.f64 (/.f64 4 (+.f64 1 t)) (/.f64 t (+.f64 1 t))) 1) (fma.f64 t (*.f64 (/.f64 4 (+.f64 1 t)) (/.f64 t (+.f64 1 t))) 2))
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))))
(/.f64 (+.f64 1 (*.f64 (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))) (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))))) (+.f64 2 (*.f64 (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))) (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))))))
(/.f64 (fma.f64 (/.f64 (*.f64 t -2) (-.f64 1 t)) (/.f64 (*.f64 t -2) (-.f64 1 t)) 1) (fma.f64 (/.f64 (*.f64 t -2) (-.f64 1 t)) (/.f64 (*.f64 t -2) (-.f64 1 t)) 2))
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t (*.f64 t 4)) (-.f64 1 t)) (-.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t (*.f64 t 4)) (-.f64 1 t)) (-.f64 1 t))))
(/.f64 (+.f64 1 (/.f64 (/.f64 4 (-.f64 (/.f64 1 t) 1)) (-.f64 (/.f64 1 t) 1))) (+.f64 2 (/.f64 (/.f64 4 (-.f64 (/.f64 1 t) 1)) (-.f64 (/.f64 1 t) 1))))
(/.f64 (fma.f64 t (/.f64 (/.f64 -4 (+.f64 1 (/.f64 -1 t))) (-.f64 1 t)) 1) (fma.f64 t (/.f64 (/.f64 -4 (+.f64 1 (/.f64 -1 t))) (-.f64 1 t)) 2))
(neg.f64 (/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t))) (/.f64 (*.f64 2 (neg.f64 t)) (+.f64 1 (neg.f64 t)))))))
(/.f64 (neg.f64 (+.f64 1 (*.f64 (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))) (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t)))))) (+.f64 2 (*.f64 (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))) (/.f64 2 (/.f64 (-.f64 1 t) (neg.f64 t))))))
(neg.f64 (/.f64 (fma.f64 (/.f64 (*.f64 t -2) (-.f64 1 t)) (/.f64 (*.f64 t -2) (-.f64 1 t)) 1) (fma.f64 (/.f64 (*.f64 t -2) (-.f64 1 t)) (/.f64 (*.f64 t -2) (-.f64 1 t)) 2)))
(/.f64 (-.f64 -1 (/.f64 (/.f64 (*.f64 t (*.f64 t 4)) (-.f64 1 t)) (-.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t (*.f64 t 4)) (-.f64 1 t)) (-.f64 1 t))))
(/.f64 (+.f64 -1 (/.f64 (/.f64 4 (-.f64 (/.f64 1 t) 1)) (+.f64 1 (/.f64 -1 t)))) (+.f64 2 (/.f64 (/.f64 4 (-.f64 (/.f64 1 t) 1)) (-.f64 (/.f64 1 t) 1))))
(/.f64 (fma.f64 (/.f64 4 (+.f64 1 (/.f64 -1 t))) (/.f64 t (-.f64 1 t)) -1) (fma.f64 t (/.f64 (/.f64 -4 (+.f64 1 (/.f64 -1 t))) (-.f64 1 t)) 2))
Compiler

Compiled 240 to 182 computations (24.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.1s
Operation ival-add, time spent: 981.0ms, 47.0% of total-time
Operation ival-mult, time spent: 541.0ms, 26.0% of total-time
Operation ival-div, time spent: 498.0ms, 24.0% of total-time
Operation const, time spent: 77.0ms, 4.0% of total-time

eval5.0ms (0.1%)

Compiler

Compiled 158 to 118 computations (25.3% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
100.0%
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
Compiler

Compiled 68 to 52 computations (23.5% saved)

localize2.6s (31.2%)

Compiler

Compiled 200 to 147 computations (26.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.3s
Operation ival-add, time spent: 1.3s, 56.0% of total-time
Operation ival-div, time spent: 597.0ms, 26.0% of total-time
Operation ival-mult, time spent: 340.0ms, 15.0% of total-time
Operation const, time spent: 77.0ms, 3.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
100.0%
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
Compiler

Compiled 135 to 103 computations (23.7% saved)

regimes14.0ms (0.2%)

Counts
2 → 1
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
Outputs
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
Calls

4 calls:

6.0ms
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
3.0ms
t
3.0ms
(/.f64 (*.f64 2 t) (+.f64 1 t))
2.0ms
(*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))
Results
AccuracySegmentsBranch
100.0%1t
100.0%1(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
100.0%1(*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))
100.0%1(/.f64 (*.f64 2 t) (+.f64 1 t))
Compiler

Compiled 62 to 47 computations (24.2% saved)

regimes3.0ms (0%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
Outputs
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
Calls

1 calls:

3.0ms
t
Results
AccuracySegmentsBranch
100.0%1t
Compiler

Compiled 2 to 1 computations (50% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
10×+-commutative
*-commutative
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022242
135242
Stop Event
done
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
Outputs
(/.f64 (+.f64 1 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))) (+.f64 2 (*.f64 (/.f64 (*.f64 2 t) (+.f64 1 t)) (/.f64 (*.f64 2 t) (+.f64 1 t)))))
(/.f64 (+.f64 1 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))) (+.f64 2 (/.f64 (/.f64 (*.f64 t 4) (/.f64 (+.f64 1 t) t)) (+.f64 1 t))))
Compiler

Compiled 68 to 52 computations (23.5% saved)

soundness114.0ms (1.3%)

Rules
1406×fma-def
1052×fma-neg
824×neg-mul-1
804×div-sub
728×sub-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
024544
158480
2143460
3537420
42544416
56574416
Stop Event
node limit
Compiler

Compiled 312 to 240 computations (23.1% saved)

end0.0ms (0%)

preprocess59.0ms (0.7%)

Compiler

Compiled 206 to 158 computations (23.3% saved)

Profiling

Loading profile data...