Skip to content

Commit c04f12c

Browse files
colorvec
1 parent cd64bb3 commit c04f12c

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "SparseDiffTools"
22
uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804"
33
authors = ["Pankaj Mishra <[email protected]>", "Chris Rackauckas <[email protected]>"]
4-
version = "0.7.0"
4+
version = "0.8.0"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"

src/differentiation/compute_jacobian_ad.jl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ struct ForwardColorJacCache{T,T2,T3,T4,T5,T6}
33
fx::T2
44
dx::T3
55
p::T4
6-
color::T5
6+
colorvec::T5
77
sparsity::T6
88
chunksize::Int
99
end
@@ -21,16 +21,16 @@ getsize(N::Integer) = N
2121

2222
function ForwardColorJacCache(f,x,_chunksize = nothing;
2323
dx = nothing,
24-
color=1:length(x),
24+
colorvec=1:length(x),
2525
sparsity::Union{AbstractArray,Nothing}=nothing)
2626

2727
if _chunksize === nothing
28-
chunksize = default_chunk_size(maximum(color))
28+
chunksize = default_chunk_size(maximum(colorvec))
2929
else
3030
chunksize = _chunksize
3131
end
3232

33-
p = adapt.(typeof(x),generate_chunked_partials(x,color,chunksize))
33+
p = adapt.(typeof(x),generate_chunked_partials(x,colorvec,chunksize))
3434
t = Dual{typeof(f)}.(x,first(p))
3535

3636
if dx === nothing
@@ -42,24 +42,24 @@ function ForwardColorJacCache(f,x,_chunksize = nothing;
4242
end
4343

4444

45-
ForwardColorJacCache(t,fx,_dx,p,color,sparsity,getsize(chunksize))
45+
ForwardColorJacCache(t,fx,_dx,p,colorvec,sparsity,getsize(chunksize))
4646
end
4747

48-
generate_chunked_partials(x,color,N::Integer) = generate_chunked_partials(x,color,Val(N))
49-
function generate_chunked_partials(x,color,::Val{chunksize}) where chunksize
48+
generate_chunked_partials(x,colorvec,N::Integer) = generate_chunked_partials(x,colorvec,Val(N))
49+
function generate_chunked_partials(x,colorvec,::Val{chunksize}) where chunksize
5050

51-
num_of_chunks = Int(ceil(maximum(color) / chunksize))
51+
num_of_chunks = Int(ceil(maximum(colorvec) / chunksize))
5252

53-
padding_size = (chunksize - (maximum(color) % chunksize)) % chunksize
53+
padding_size = (chunksize - (maximum(colorvec) % chunksize)) % chunksize
5454

55-
partials = BitMatrix(undef, length(x), maximum(color))
55+
partials = BitMatrix(undef, length(x), maximum(colorvec))
5656
partial = BitMatrix(undef, length(x), chunksize)
5757
chunked_partials = Array{Array{Tuple{Vararg{Bool,chunksize}},1},1}(
5858
undef, num_of_chunks)
5959

60-
for color_i in 1:maximum(color)
60+
for color_i in 1:maximum(colorvec)
6161
for j in 1:length(x)
62-
partials[j,color_i] = color[j]==color_i
62+
partials[j,color_i] = colorvec[j]==color_i
6363
end
6464
end
6565

@@ -82,9 +82,9 @@ function forwarddiff_color_jacobian!(J::AbstractMatrix{<:Number},
8282
f,
8383
x::AbstractArray{<:Number};
8484
dx = nothing,
85-
color = eachindex(x),
85+
colorvec = eachindex(x),
8686
sparsity = ArrayInterface.has_sparsestruct(J) ? J : nothing)
87-
forwarddiff_color_jacobian!(J,f,x,ForwardColorJacCache(f,x,dx=dx,color=color,sparsity=sparsity))
87+
forwarddiff_color_jacobian!(J,f,x,ForwardColorJacCache(f,x,dx=dx,colorvec=colorvec,sparsity=sparsity))
8888
end
8989

9090
function forwarddiff_color_jacobian!(J::AbstractMatrix{<:Number},
@@ -96,7 +96,7 @@ function forwarddiff_color_jacobian!(J::AbstractMatrix{<:Number},
9696
fx = jac_cache.fx
9797
dx = jac_cache.dx
9898
p = jac_cache.p
99-
color = jac_cache.color
99+
colorvec = jac_cache.colorvec
100100
sparsity = jac_cache.sparsity
101101
chunksize = jac_cache.chunksize
102102
color_i = 1
@@ -112,7 +112,7 @@ function forwarddiff_color_jacobian!(J::AbstractMatrix{<:Number},
112112
dx .= partials.(fx, j)
113113
if ArrayInterface.fast_scalar_indexing(dx)
114114
for k in 1:length(cols_index)
115-
if color[cols_index[k]] == color_i
115+
if colorvec[cols_index[k]] == color_i
116116
if J isa SparseMatrixCSC
117117
J.nzval[k] = dx[rows_index[k]]
118118
else
@@ -122,24 +122,24 @@ function forwarddiff_color_jacobian!(J::AbstractMatrix{<:Number},
122122
end
123123
else
124124
#=
125-
J.nzval[rows_index] .+= (color[cols_index] .== color_i) .* dx[rows_index]
125+
J.nzval[rows_index] .+= (colorvec[cols_index] .== color_i) .* dx[rows_index]
126126
or
127-
J[rows_index, cols_index] .+= (color[cols_index] .== color_i) .* dx[rows_index]
127+
J[rows_index, cols_index] .+= (colorvec[cols_index] .== color_i) .* dx[rows_index]
128128
+= means requires a zero'd out start
129129
=#
130130
if J isa SparseMatrixCSC
131-
@. setindex!((J.nzval,),getindex((J.nzval,),rows_index) + (getindex((color,),cols_index) == color_i) * getindex((dx,),rows_index),rows_index)
131+
@. setindex!((J.nzval,),getindex((J.nzval,),rows_index) + (getindex((colorvec,),cols_index) == color_i) * getindex((dx,),rows_index),rows_index)
132132
else
133-
@. setindex!((J,),getindex((J,),rows_index, cols_index) + (getindex((color,),cols_index) == color_i) * getindex((dx,),rows_index),rows_index, cols_index)
133+
@. setindex!((J,),getindex((J,),rows_index, cols_index) + (getindex((colorvec,),cols_index) == color_i) * getindex((dx,),rows_index),rows_index, cols_index)
134134
end
135135
end
136136
color_i += 1
137-
(color_i > maximum(color)) && continue
137+
(color_i > maximum(colorvec)) && continue
138138
end
139139
else
140140
for j in 1:chunksize
141141
col_index = (i-1)*chunksize + j
142-
(col_index > maximum(color)) && continue
142+
(col_index > maximum(colorvec)) && continue
143143
J[:, col_index] .= partials.(fx, j)
144144
end
145145
end

0 commit comments

Comments
 (0)