Skip to content

Commit da00fa4

Browse files
committed
nonallocating version
1 parent f0d3d5a commit da00fa4

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/jacobians.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,8 @@ function finite_difference_jacobian!(
370370
# Now return x1 back to its original value
371371
ArrayInterface.allowed_setindex!(x1, x1_save, color_i)
372372
else # Perturb along the colorvec vector
373-
tmp = norm(x1 .* (_color .== color_i))
373+
idx = findfirst(isequal(color_i), _color)
374+
tmp = norm(x1[idx])
374375
epsilon = compute_epsilon(Val(:forward), sqrt(tmp), relstep, absstep, dir)
375376
@. x1 = x1 + epsilon * (_color == color_i)
376377
f(fx1, x1)
@@ -408,7 +409,8 @@ function finite_difference_jacobian!(
408409
@. J[:,color_i] = (vfx1 - vfx) / 2epsilon
409410
ArrayInterface.allowed_setindex!(x1, x_save, color_i)
410411
else # Perturb along the colorvec vector
411-
tmp = norm(x1 .* (_color .== color_i))
412+
idx = findfirst(isequal(color_i), _color)
413+
tmp = norm(x1[idx])
412414
epsilon = compute_epsilon(Val(:central), sqrt(tmp), relstep, absstep, dir)
413415
@. x1 = x1 + epsilon * (_color == color_i)
414416
@. x = x - epsilon * (_color == color_i)

0 commit comments

Comments
 (0)