Skip to content

Commit e5725d6

Browse files
authored
Merge pull request #11 from ranjanan/mem
Some more memory fixes
2 parents 2834910 + 926b343 commit e5725d6

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/classical.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ end
4040
function direct_interpolation(A, T, splitting)
4141

4242
fill!(T.nzval, 1.)
43-
T = A .* T
43+
T .= A .* T
4444
Pp = rs_direct_interpolation_pass1(T, A, splitting)
4545
Pp .= Pp .+ 1
4646

src/splitting.jl

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,28 @@ end
1616
end
1717
RS_CF_splitting(sparse(i,j,v,n,n), sparse(j,i,v,n,n))
1818
end=#
19+
20+
function remove_diag!(a)
21+
n = size(a, 1)
22+
for i = 1:n
23+
for j in nzrange(a, i)
24+
if a.rowval[j] == i
25+
a.nzval[j] = 0
26+
end
27+
end
28+
end
29+
dropzeros!(a)
30+
end
31+
1932
function split_nodes(::RS, S)
20-
S = S - spdiagm(diag(S))
33+
remove_diag!(S)
2134
RS_CF_splitting(S, S')
2235
end
2336

2437
function RS_CF_splitting(S::SparseMatrixCSC, T::SparseMatrixCSC)
2538

26-
m,n = size(S)
39+
n = size(S,1)
2740

28-
n_nodes = n
2941
lambda = zeros(Int, n)
3042

3143
Tp = T.colptr
@@ -70,7 +82,7 @@ function RS_CF_splitting(S::SparseMatrixCSC, T::SparseMatrixCSC)
7082
end
7183
end
7284

73-
for top_index = n_nodes:-1:1
85+
for top_index = n:-1:1
7486
i = index_to_node[top_index]
7587
lambda_i = lambda[i] + 1
7688
interval_count[lambda_i] -= 1
@@ -88,7 +100,7 @@ function RS_CF_splitting(S::SparseMatrixCSC, T::SparseMatrixCSC)
88100
rowk = T.rowval[k]
89101

90102
if splitting[rowk] == U_NODE
91-
lambda[rowk] >= n_nodes - 1 && continue
103+
lambda[rowk] >= n - 1 && continue
92104
lambda_k = lambda[rowk] + 1
93105
old_pos = node_to_index[rowk]
94106
new_pos = interval_ptr[lambda_k] + interval_count[lambda_k]# - 1

0 commit comments

Comments
 (0)