Late reply but I found this googling some other stuff.
The problem is that x[1] + x[2] + x[3] is parsed as +(x[1], x[2], x[3]). If
you insert a parenthesis, that is: (x[1] + x[2]) + x[3] then it will work.
On Wednesday, February 3, 2016 at 7:54:49 PM UTC+1, Eliot Abrams wrote:
>
> Hello,
>
> I'm trying to use ReverseDiffSource to produce the exact Jacobian for a
> pretty simple nonlinear function below.
>
> Testfunction works fine, but testfunction2 produces the error reprinted.
>
> Could someone explain what might be going wrong?
>
> Thanks!
> Eliot
>
>
> using ReverseDiffSource
>
> testfunction(x) = exp(x[1] + x[2])
> testfunction_diff = rdiff(testfunction, (ones(2),), order=1)
> testfunction_diff([1,2])
>
> testfunction2(x) = exp(x[1] + x[2] + x[3])
> testfunction2_diff = rdiff(testfunction2, (ones(3),), order=1)
> testfunction2_diff([1,2,3])
>
> ERROR: no derivation rule for + at arg #1 for signature
> Tuple{Float64,Float64,Float64}
>
> in error at
> /Applications/Julia-0.4.3.app/Contents/Resources/julia/lib/julia/sys.dylib
>
> in rev at
> /Users/eliotabrams/.julia/v0.4/ReverseDiffSource/src/reversegraph.jl:50
>
> in reversepass! at
> /Users/eliotabrams/.julia/v0.4/ReverseDiffSource/src/reversegraph.jl:246
>
> in reversegraph at
> /Users/eliotabrams/.julia/v0.4/ReverseDiffSource/src/reversegraph.jl:23
>
> in rdiff at
> /Users/eliotabrams/.julia/v0.4/ReverseDiffSource/src/rdiff.jl:70
>
> in rdiff at
> /Users/eliotabrams/.julia/v0.4/ReverseDiffSource/src/frdiff.jl:23
>