JuliaDiff / JuliaDiff/ForwardDiff.jl
Modifying a single index of a vector valued function doesn't work
Open
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 1k
- Forks
- 160
- PR merge metrics
- No merged PRs in 30d
Description
The following works:
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:
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:
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!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the two Julia snippets in the issue, comparing the broadcasted in-place update with the direct indexed assignment. No source file or test entry point is named; the issue does not define a concrete acceptance condition beyond explaining or fixing the differing ForwardDiff.jacobian behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100