Skip to content

Commit bcf0198

Browse files
Merge pull request #193 from JuliaDiff/gd/remove_inbounds
Remove `@inbounds` for structured matrices
2 parents 616d8ff + fb6341d commit bcf0198

4 files changed

+15
-15
lines changed

ext/FiniteDiffBandedMatricesExt.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ FiniteDiff._use_findstructralnz(::BandedMatrices.BandedMatrix) = false
1616
nrows = size(Jac,1)
1717
l,u = BandedMatrices.bandwidths(Jac)
1818
#data = BandedMatrices.bandeddata(Jac)
19-
@inbounds for col_index in max(1,1-l):min(ncols,ncols+u)
19+
for col_index in max(1,1-l):min(ncols,ncols+u)
2020
if colorvec[col_index] == color_i
21-
@inbounds for row_index in max(1,col_index-u):min(nrows,col_index+l)
21+
for row_index in max(1,col_index-u):min(nrows,col_index+l)
2222
#data[u+row_index-col_index+1,col_index] = vfx[row_index]
2323
Jac[row_index,col_index]=vfx[row_index]
2424
end

ext/FiniteDiffBlockBandedMatricesExt.jl

+8-8
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@ FiniteDiff._use_findstructralnz(::BlockBandedMatrices.BlockBandedMatrix) = false
2121
cs = BlockArrays.blocklengths(BlockArrays.axes(Jac,1))
2222
b = BlockBandedMatrices.BlockArray(vfx,rs)
2323
c = BlockBandedMatrices.BlockArray(colorvec,cs)
24-
@inbounds for J=BlockArrays.blockaxes(Jac,2)
24+
for J=BlockArrays.blockaxes(Jac,2)
2525
c_v = c.blocks[J.n[1]]
26-
@inbounds for K=BlockBandedMatrices.blockcolrange(Jac,J)
26+
for K=BlockBandedMatrices.blockcolrange(Jac,J)
2727
V = view(Jac,K,J)
2828
b_v = b.blocks[K.n[1]]
2929
data = BlockBandedMatrices.bandeddata(V)
3030
p = pointer(data)
3131
st = stride(data,2)
3232
m,n = size(V)
33-
@inbounds for j=1:n
33+
for j=1:n
3434
if c_v[j] == color_i
35-
@inbounds for k=max(1,j-μ):min(m,j+λ)
35+
for k=max(1,j-μ):min(m,j+λ)
3636
unsafe_store!(p, b_v[k], (j-1)*st + μ + k - j + 1)
3737
end
3838
end
@@ -48,17 +48,17 @@ end
4848
cs = BlockArrays.blocklengths(BlockArrays.axes(Jac,1))
4949
b = BlockBandedMatrices.BlockArray(vfx,rs)
5050
c = BlockBandedMatrices.BlockArray(colorvec,cs)
51-
@inbounds for J=BlockArrays.blockaxes(Jac,2)
51+
for J=BlockArrays.blockaxes(Jac,2)
5252
c_v = c.blocks[J.n[1]]
5353
blockcolrange = BlockBandedMatrices.blockcolrange(Jac,J)
5454
_,n = length.(getindex.(axes(Jac), (blockcolrange[1], J)))
55-
@inbounds for j = 1:n
55+
for j = 1:n
5656
if c_v[j] == color_i
57-
@inbounds for K = blockcolrange
57+
for K = blockcolrange
5858
V = view(Jac,K,J)
5959
b_v = b.blocks[K.n[1]]
6060
m = size(V,1)
61-
@inbounds for k = 1:m
61+
for k = 1:m
6262
V[k,j] = b_v[k]
6363
end
6464
end

ext/FiniteDiffSparseArraysExt.jl

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ function FiniteDiff._make_Ji(::SparseMatrixCSC, xtype, dx, color_i, nrows, ncols
1818
end
1919

2020
@inline function FiniteDiff._colorediteration!(J, sparsity::SparseMatrixCSC, rows_index, cols_index, vfx, colorvec, color_i, ncols)
21-
@inbounds for col_index in 1:ncols
21+
for col_index in 1:ncols
2222
if colorvec[col_index] == color_i
23-
@inbounds for row_index in view(sparsity.rowval, sparsity.colptr[col_index]:sparsity.colptr[col_index+1]-1)
23+
for row_index in view(sparsity.rowval, sparsity.colptr[col_index]:sparsity.colptr[col_index+1]-1)
2424
J[row_index, col_index] = vfx[row_index]
2525
end
2626
end
@@ -36,9 +36,9 @@ end
3636
# iteration_utils.jl
3737
## fast version for the case where J and sparsity have the same sparsity pattern
3838
@inline function FiniteDiff._colorediteration!(Jsparsity::SparseMatrixCSC, vfx, colorvec, color_i, ncols)
39-
@inbounds for col_index in 1:ncols
39+
for col_index in 1:ncols
4040
if colorvec[col_index] == color_i
41-
@inbounds for spidx in nzrange(Jsparsity, col_index)
41+
for spidx in nzrange(Jsparsity, col_index)
4242
row_index = Jsparsity.rowval[spidx]
4343
Jsparsity.nzval[spidx] = vfx[row_index]
4444
end

src/iteration_utils.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@inline function _colorediteration!(J,sparsity,rows_index,cols_index,vfx,colorvec,color_i,ncols)
2-
@inbounds for i in 1:length(cols_index)
2+
for i in 1:length(cols_index)
33
if colorvec[cols_index[i]] == color_i
44
J[rows_index[i],cols_index[i]] = vfx[rows_index[i]]
55
end

0 commit comments

Comments
 (0)