Bill Allombert on Fri, 28 Mar 2014 16:32:50 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Unidentified subject! |
On Fri, Mar 28, 2014 at 02:34:11PM +0100, Giacomo Mulas wrote: > >>Then I create the extended matrix with > >> > >> GEN coeffs2 = cgetg(cols+2, t_MAT); > >> for (j=1; j<=cols; j++) { > >> gel(coeffs2,j) = gel(coeffs1,j); > >> } > > >This is where the bug lies: you need to copy gel(coeffs1,j): > >gel(coeffs2,j) = gcopy(gel(coeffs1,j)); > >or even simply > >GEN coeffs2 = gcopy(coeffs1); > >otherwise the columns of coeffs2 and coeffs1 are sharing the same memory. > > Indeed that's what I intended: coeffs2 is a matrix with one more column than > coeffs1, and apart from the additional one it is (and remains throughout the > calculation) identical to coeffs1. So I saw nothing wrong with them sharing > the same memory. But your code is doing gmael2(coeffs2,2,4) = stoi(2); so it is modifying the older columns. maybe you wanted to do gmael2(coeffs2,4,2) = stoi(2); in which case you would be correct. Cheers, Bill.