>> For instance your first nzval update could be:
>>
>> locs = Vector{Int}[[-1, 18, 63, 103],
>> [1, 63],
>> [1, 18],
>> ...
>> ]
>> function update_nzval!(nzval, v, locs)
>> for i =1:length(locs)
>> nzval[i] = 0
>> for j=2:length(locs[i])
>> nzval[i] += v[locs[i][j]]
>> end
>> nzval[i] *= locs[i][1]
>> end
>> end
> Thank you, I didn't knew I can use vectors of vectors !
You're welcome. Vectors can hold anything. Note that at the moment the
`Vector{...}` is necessary as otherwise the subvectors get concatenated. M
>>> S.
>>>
>>> Le 06/05/2015 16:47, Stefan Karpinski a écrit :
>>>> Yes, this seems like a severe abuse of the compiler. It makes much
>>>> more sense for this to be input as data rather than code.
>>>>
>>>> On Wed, May 6, 2015 at 8:42 AM, Steven G. Johnson
>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>>
>>>> It doesn't make sense to me to use code generation to spit out a
>>>> literal expression for inputting a large sparse matrix on each
>>>> iteration of optimization. In no conceivable compiler will this be
>>>> faster than just using a loop to generate the sparse matrix data
>>>> structure, rather than using a loop to generate the code to
>>>> generate the sparse matrix and then compiling the generated code.
>>>> It should be O(n) work in either case, but the constant factor
>>>> will inevitably be worse for a compiler.
>>>>
>>>>