Skip to content

Commit 088caf8

Browse files
committed
Fix display issue
1 parent c72c8bb commit 088caf8

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/multilevel.jl

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,17 @@ function Base.show(io::IO, ml::MultiLevel)
2424
op = operator_complexity(ml)
2525
g = grid_complexity(ml)
2626
c = ml.coarse_solver
27-
total_nnz = sum(nnz(level.A) for level in ml.levels) + nnz(ml.final_A)
27+
total_nnz = nnz(ml.final_A)
28+
if !isempty(ml.levels)
29+
total_nnz += sum(nnz(level.A) for level in ml.levels)
30+
end
2831
lstr = ""
32+
if !isempty(ml.levels)
2933
for (i, level) in enumerate(ml.levels)
3034
lstr = lstr *
3135
@sprintf " %2d %10d %10d [%5.2f%%]\n" i size(level.A, 1) nnz(level.A) (100 * nnz(level.A) / total_nnz)
3236
end
37+
end
3338
lstr = lstr *
3439
@sprintf " %2d %10d %10d [%5.2f%%]" length(ml.levels) + 1 size(ml.final_A, 1) nnz(ml.final_A) (100 * nnz(ml.final_A) / total_nnz)
3540
str = """
@@ -47,13 +52,21 @@ function Base.show(io::IO, ml::MultiLevel)
4752
end
4853

4954
function operator_complexity(ml::MultiLevel)
50-
(sum(nnz(level.A) for level in ml.levels) +
51-
nnz(ml.final_A)) / nnz(ml.levels[1].A)
55+
if !isempty(ml.levels)
56+
(sum(nnz(level.A) for level in ml.levels) +
57+
nnz(ml.final_A)) / nnz(ml.levels[1].A)
58+
else
59+
1.
60+
end
5261
end
5362

5463
function grid_complexity(ml::MultiLevel)
55-
(sum(size(level.A, 1) for level in ml.levels) +
56-
size(ml.final_A, 1)) / size(ml.levels[1].A, 1)
64+
if !isempty(ml.levels)
65+
(sum(size(level.A, 1) for level in ml.levels) +
66+
size(ml.final_A, 1)) / size(ml.levels[1].A, 1)
67+
else
68+
1.
69+
end
5770
end
5871

5972
abstract type Cycle end

0 commit comments

Comments
 (0)