Karim Belabas on Wed, 29 Mar 2006 18:25:39 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: matrix and reference copies |
* ramare [2006-03-29 16:53]: > This one doesn't:: > { > matDelta(n, r)= > local(mymat = matrix(r-1,r-1), too, j, res, s); > for(j = 1, r-1, > for(t = 1, r-1, > if(j <= t, res = 1, res = 0); > print(mymat); > for(s = t+1, r, res += 2^s); > print(res,"/",mymat[j, t],":",j,"-",t); > mymat[j, t] = res;)); > return(mymat) > } > In C, I guess the pointer corresponding to the entries of > matrix(r-1,r-1) haven't been initialized separately (same 0 is used > in each line).In the first case, they are. This is now fixed in CVS. The reason was essentially the one you guessed escape that _columns_ were shared, not individual entries [ and involved special (weaker, faster) assignment rules enforced within 'local' ]. Thanks for your report ! K.B. P.S: Please use our Bug Tracking System to report bugs. This way they are all archived together, and easier to refer to, e.g. current CHANGES has 37- divisors([]) --> SEGV [#441] (one can then look up Bug 441 in the BTS), whereas it is more difficult to refer to your current report. See http://pari.math.u-bordeaux.fr/Bugs/ An interesting feature: you can report a 'bug' with severity "wishlist", so that a proposed feature you care about is officially recorded somewhere. [ The mailing lists are still the proper place to propose and discuss them of course. ] -- Karim Belabas Tel: (+33) (0)5 40 00 26 17 Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50 351, cours de la Liberation http://www.math.u-bordeaux.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]