Kahan p13 Example 1

Time bar (total: 1.8s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze2.0ms (0.1%)

Memory
0.6MiB live, 0.6MiB allocated
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 12 computations (67.6% saved)

sample22.0ms (1.2%)

Memory
0.5MiB live, 8.1MiB allocated
Samples
14.0ms260×0valid
Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-div: 3.0ms (31.5% of total)
ival-add: 3.0ms (31.5% of total)
ival-mult: 3.0ms (31.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
Bogosity

explain1.5s (82.2%)

Memory
7.1MiB live, 881.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t))
00-0-t
00-0-#s(literal 1 binary64)
00-0-(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
00-0-(*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))
00-0-(+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t))))
00-0-#s(literal 2 binary64)
00-0-(+.f64 #s(literal 1 binary64) t)
00-0-(*.f64 #s(literal 2 binary64) t)
00-0-(+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t))))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t))o/n10
(*.f64 #s(literal 2 binary64) t)overflow1
Confusion
Predicted +Predicted -
+10
-0255
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-00255
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
18.791748046875
Average Time
0.07340526580810547
Samples
389.0ms6 144×0valid
Compiler

Compiled 4 068 to 528 computations (87% saved)

Precisions
Click to see histograms. Total time spent on operations: 231.0ms
ival-add: 79.0ms (34.2% of total)
ival-mult: 71.0ms (30.7% of total)
ival-div: 67.0ms (29% of total)
exact: 5.0ms (2.2% of total)
ival-true: 4.0ms (1.7% of total)
adjust: 2.0ms (0.9% of total)
ival-assert: 2.0ms (0.9% of total)

preprocess278.0ms (15.3%)

Memory
-5.7MiB live, 45.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01279
13671
29962
338662
4155662
5381262
6550462
7711762
8758862
9783862
10793662
01035
01735
12931
25531
312631
420831
524831
639331
755131
869231
975631
1083931
11119731
12204829
13338629
14548729
15592629
16597129
17597829
18598429
19706829
0814426
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
Outputs
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
(+.f64 (/.f64 (/.f64 (*.f64 t t) (fma.f64 (/.f64 #s(literal 2 binary64) (fma.f64 (+.f64 t #s(literal 2 binary64)) t #s(literal 1 binary64))) (*.f64 t t) #s(literal 1 binary64))) (fma.f64 (+.f64 t #s(literal 2 binary64)) t #s(literal 1 binary64))) #s(literal 1/2 binary64))
Compiler

Compiled 35 to 10 computations (71.4% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
Compiler

Compiled 70 to 20 computations (71.4% saved)

simplify21.0ms (1.2%)

Memory
-1.3MiB live, 18.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01035
11735
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
Outputs
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))) (+.f64 #s(literal 2 binary64) (*.f64 (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)) (/.f64 (*.f64 #s(literal 2 binary64) t) (+.f64 #s(literal 1 binary64) t)))))
(/.f64 (+.f64 (*.f64 (/.f64 (*.f64 t #s(literal 2 binary64)) (+.f64 t #s(literal 1 binary64))) (/.f64 (*.f64 t #s(literal 2 binary64)) (+.f64 t #s(literal 1 binary64)))) #s(literal 1 binary64)) (+.f64 (*.f64 (/.f64 (*.f64 t #s(literal 2 binary64)) (+.f64 t #s(literal 1 binary64))) (/.f64 (*.f64 t #s(literal 2 binary64)) (+.f64 t #s(literal 1 binary64)))) #s(literal 2 binary64)))

soundness0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Stop Event
fuel
Compiler

Compiled 35 to 10 computations (71.4% saved)

preprocess1.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 140 to 40 computations (71.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...