-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathFiniteDiffBandedMatricesExt.jl
More file actions
29 lines (25 loc) · 1.03 KB
/
FiniteDiffBandedMatricesExt.jl
File metadata and controls
29 lines (25 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module FiniteDiffBandedMatricesExt
if isdefined(Base, :get_extension)
using FiniteDiff: FiniteDiff, ArrayInterface
using BandedMatrices: BandedMatrices
else
using ..FiniteDiff: FiniteDiff, ArrayInterface
using ..BandedMatrices: BandedMatrices
end
FiniteDiff._use_findstructralnz(::BandedMatrices.BandedMatrix) = false
@inline function FiniteDiff._colorediteration!(Jac::BandedMatrices.BandedMatrix,
sparsity::BandedMatrices.BandedMatrix,
rows_index,cols_index,vfx,colorvec,color_i,ncols)
nrows = size(Jac,1)
l,u = BandedMatrices.bandwidths(Jac)
#data = BandedMatrices.bandeddata(Jac)
@inbounds for col_index in max(1,1-l):min(ncols,ncols+u)
if colorvec[col_index] == color_i
@inbounds for row_index in max(1,col_index-u):min(nrows,col_index+l)
#data[u+row_index-col_index+1,col_index] = vfx[row_index]
Jac[row_index,col_index]=vfx[row_index]
end
end
end
end
end #module