ramare on Wed, 29 Mar 2006 16:52:17 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
matrix and reference copies |
This one works : (use matDelta(3,3)) { matDelta(n, r)= local(mymat = matrix(r-1,r-1,a,b,a+b), 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) } 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. Cheers ! Amities, Olivier