Isotropic LOD (LOD)

Time bar (total: 4.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze982.0ms (24.8%)

Memory
6.6MiB live, 420.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
0%0%0%100%0%0%0%2
0%0%0%100%0%0%0%3
0%0%0%100%0%0%0%4
0%0%0%100%0%0%0%5
0%0%0%100%0%0%0%6
Compiler

Compiled 145 to 78 computations (46.2% saved)

sample84.0ms (2.1%)

Memory
2.9MiB live, 39.5MiB allocated
Samples
61.0ms260×0valid
Precisions
Click to see histograms. Total time spent on operations: 50.0ms
ival-mult: 15.0ms (29.9% of total)
ival-<=: 9.0ms (17.9% of total)
ival-fabs: 7.0ms (13.9% of total)
const: 4.0ms (8% of total)
ival-add: 3.0ms (6% of total)
ival-floor: 3.0ms (6% of total)
ival-log2: 3.0ms (6% of total)
ival-and: 2.0ms (4% of total)
ival-fmax: 1.0ms (2% of total)
ival-sqrt: 1.0ms (2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
Bogosity

explain2.8s (70.4%)

Memory
3.2MiB live, 2 201.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
840-0-(sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w)))))
00-0-(+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v)))
00-0-(*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))
00-0-(*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))
00-0-d
00-0-(fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))
00-0-(*.f32 (floor.f32 h) dY.v)
00-0-(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
00-0-(*.f32 (floor.f32 w) dY.u)
00-0-(*.f32 (floor.f32 d) dX.w)
00-0-dX.w
00-0-(*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u))
00-0-dX.v
00-0-(*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))
00-0-dY.u
00-0-(floor.f32 w)
00-0-(floor.f32 d)
00-0-(*.f32 (floor.f32 d) dY.w)
00-0-(*.f32 (floor.f32 w) dX.u)
00-0-dY.w
00-0-(*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u))
00-0-(+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w)))
00-0-(+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v)))
00-0-(*.f32 (floor.f32 h) dX.v)
00-0-(floor.f32 h)
00-0-(+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w)))
00-0-(*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))
00-0-w
00-0-dY.v
00-0-dX.u
00-0-h
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f32(sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w)))))oflow-rescue840
(*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))overflow18
(fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))overflow84
(+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v)))overflow32
(*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))overflow22
(*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u))overflow17
(+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v)))overflow36
(*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u))overflow16
(+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w)))overflow53
(*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))overflow7
(+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w)))overflow39
(*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))overflow19
Confusion
Predicted +Predicted -
+840
-0172
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+8400
-00172
Precision?
1.0
Recall?
1.0
2:
4:
8:
16:
32:
64:
128:
256:
512:
1024:
2048:
Freqs
test
numberfreq
0172
184
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
18.505615234375
Average Time
0.07228755950927734
Samples
480.0ms3 024×0valid
17.0ms48×1valid
Compiler

Compiled 14 040 to 1 512 computations (89.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 332.0ms
ival-mult: 178.0ms (53.7% of total)
ival-floor: 44.0ms (13.3% of total)
ival-add: 42.0ms (12.7% of total)
ival-log2: 30.0ms (9% of total)
ival-sqrt: 17.0ms (5.1% of total)
ival-fmax: 14.0ms (4.2% of total)
adjust: 3.0ms (0.9% of total)
ival-true: 2.0ms (0.6% of total)
ival-assert: 1.0ms (0.3% of total)

preprocess61.0ms (1.6%)

Memory
-1.0MiB live, 14.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04583351
112363327
226923327
351963327
03161
05361
110661
219361
320061
020057
Stop Event
iter limit
saturated
iter limit
node limit
Calls
Call 1
Inputs
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
Outputs
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
(log2.f32 (sqrt.f32 (fmax.f32 (fma.f32 (*.f32 (*.f32 dX.w (floor.f32 d)) dX.w) (floor.f32 d) (fma.f32 (*.f32 (*.f32 dX.u (floor.f32 w)) dX.u) (floor.f32 w) (*.f32 (*.f32 (*.f32 dX.v (floor.f32 h)) dX.v) (floor.f32 h)))) (fma.f32 (*.f32 (*.f32 dY.w (floor.f32 d)) dY.w) (floor.f32 d) (fma.f32 (*.f32 (*.f32 dY.u (floor.f32 w)) dY.u) (floor.f32 w) (*.f32 (*.f32 (*.f32 dY.v (floor.f32 h)) dY.v) (floor.f32 h)))))))
Symmetry

(abs dY.w)

(abs dY.v)

(abs dY.u)

(abs dX.w)

(abs dX.v)

(abs dX.u)

Compiler

Compiled 61 to 31 computations (49.2% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 9 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
69.3%
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
Compiler

Compiled 122 to 62 computations (49.2% saved)

simplify20.0ms (0.5%)

Memory
0.2MiB live, 18.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03161
14161
Stop Event
saturated
Calls
Call 1
Inputs
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
Outputs
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dX.u) (*.f32 (floor.f32 w) dX.u)) (*.f32 (*.f32 (floor.f32 h) dX.v) (*.f32 (floor.f32 h) dX.v))) (*.f32 (*.f32 (floor.f32 d) dX.w) (*.f32 (floor.f32 d) dX.w))) (+.f32 (+.f32 (*.f32 (*.f32 (floor.f32 w) dY.u) (*.f32 (floor.f32 w) dY.u)) (*.f32 (*.f32 (floor.f32 h) dY.v) (*.f32 (floor.f32 h) dY.v))) (*.f32 (*.f32 (floor.f32 d) dY.w) (*.f32 (floor.f32 d) dY.w))))))
(log2.f32 (sqrt.f32 (fmax.f32 (+.f32 (*.f32 (*.f32 dX.w (floor.f32 d)) (*.f32 dX.w (floor.f32 d))) (+.f32 (*.f32 (*.f32 dX.v (floor.f32 h)) (*.f32 dX.v (floor.f32 h))) (*.f32 (*.f32 dX.u (floor.f32 w)) (*.f32 dX.u (floor.f32 w))))) (+.f32 (*.f32 (*.f32 dY.w (floor.f32 d)) (*.f32 dY.w (floor.f32 d))) (+.f32 (*.f32 (*.f32 dY.v (floor.f32 h)) (*.f32 dY.v (floor.f32 h))) (*.f32 (*.f32 dY.u (floor.f32 w)) (*.f32 dY.u (floor.f32 w))))))))

soundness0.0ms (0%)

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

Compiled 61 to 31 computations (49.2% saved)

preprocess22.0ms (0.5%)

Memory
3.2MiB live, 18.8MiB allocated
Remove

(abs dX.u)

(abs dX.v)

(abs dX.w)

(abs dY.u)

(abs dY.v)

(abs dY.w)

Compiler

Compiled 1 708 to 868 computations (49.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...