Bill Allombert on Fri, 29 Mar 2024 08:51:38 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Error in gp/code


On Thu, Mar 28, 2024 at 06:13:45PM +0000, Swati, NoFirstName wrote:
> Hello,
> 
> I am trying to compute the coefficients of \Delta^{a} \mid T_{p} modulo an integer m, store them as a column vector, and return the same (Values of a and p are quite large). I tried writing the code for it but getting an error.
> 
> // parfor: mt: attempt to change the value of the exported variable B.)
> 
> I am not sure how to fix this. Could someone help in this regard?
> 
> Here is my code:
> 
> comp(a,p, m) = {
> mf = mfpow(mfDelta(), a);
> mf1 = mfinit(mf);
> B = Col(0,a);
> H = mfhecke(mf1, mf, p);
> export(B, H);
> parfor(i = 1, a, B[i] = mfcoef(H, i) % m);
> return(B);
> }

parfor(i = 1, a, mfcoef(H, i) % m, C, B[i] = C);

But there are much better way to do that, which avoid the use of mfinit
completly.

Deltamodm(n,m)=q*prod(k=1,n,1-q^k*Mod(1,m)+O(q^(n+1)))^24;
T(f,p,m,k)=
{
  f=truncate(f);
  sum(n=0,poldegree(f)\p,
    sumdiv(gcd(p,n),r,polcoeff(f,p*n/r^2)*r^(k-1))*q^n) + O(q^(poldegree(f)\m +1));
}

where k is the weight.

Cheers,
Bill