The following works: ```julia N = 8; t = (0:N-1)*2π/N; yt = cos.(t); fun = (yt) -> begin yf = rfft(yt); yout = real(yf); return yout; end; Dh = ForwardDiff.jacobian(fun, yt) ``` while the following doesn't: ```julia N = 8; t = (0:N-1)*2π/N; yt = cos.(t); fun = (yt) -> begin yf = rfft(yt); yout = real(yf); yout[1] .*= 2; return yout; end; Dh = ForwardDiff.jacobian(fun, yt) ``` Curiously enough, the following works: ```julia N = 8; t = (0:N-1)*2π/N; yt = cos.(t); fun = (yt) -> begin yf = rfft(yt); yout = real(yf); yout[1] = 2yout[1]; return yout; end; Dh = ForwardDiff.jacobian(fun, yt) ``` I'd appreciate any leads!