Skip to content

Commit f0d3d5a

Browse files
committed
fix for nonsquare, sparse, inplace jacobians
1 parent bdbd980 commit f0d3d5a

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

src/jacobians.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,7 @@ 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-
@. fx1 = x1 * (_color == color_i)
374-
tmp = norm(fx1)
373+
tmp = norm(x1 .* (_color .== color_i))
375374
epsilon = compute_epsilon(Val(:forward), sqrt(tmp), relstep, absstep, dir)
376375
@. x1 = x1 + epsilon * (_color == color_i)
377376
f(fx1, x1)
@@ -409,8 +408,7 @@ function finite_difference_jacobian!(
409408
@. J[:,color_i] = (vfx1 - vfx) / 2epsilon
410409
ArrayInterface.allowed_setindex!(x1, x_save, color_i)
411410
else # Perturb along the colorvec vector
412-
@. fx1 = x1 * (_color == color_i)
413-
tmp = norm(fx1)
411+
tmp = norm(x1 .* (_color .== color_i))
414412
epsilon = compute_epsilon(Val(:central), sqrt(tmp), relstep, absstep, dir)
415413
@. x1 = x1 + epsilon * (_color == color_i)
416414
@. x = x - epsilon * (_color == color_i)

0 commit comments

Comments
 (0)