Annegret Weng on Tue, 27 Jun 2000 20:31:52 -0400 (EDT) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Garbage collection |
Dear PARI Lovers, I have a problem with my stack. Sometimes I get the error: the PARI stack overflows ! I think I found the part of my program which is responsible for it but I do not know what to do. The program itself works and if I do not get the error I get the right answer. My only problem is the stack. I wrote the following function: GEN summand(GEN matrix, GEN delta, GEN epsilon, GEN ganz_vector, int prec) { long ltop; /*some calculation - I think this is not important to find my problem but maybe it helps*/ GEN zwischen1,zwischen2; GEN vector1=gadd(delta,ganz_vector); zwischen1=gmul(gmul(vector1,matrix),gtrans(vector1)); zwischen2=gmul(gdeux,gmul(vector1,gtrans(epsilon))); zwischen1=gadd(zwischen1,zwischen2); zwischen1=gmul(gmul(zwischen1,gi),mppi(prec)); ltop=avma; return gerepileupto(ltop,gexp(zwischen1,prec)); } Then I have a command (*) ltop=avma; summe=gerepileupto(ltop,gadd(summe,(GEN) summand(omega,delta,epsilon,x_vector,prec))); I have initialized "summe" before. Now I put cout << avma << endl; before and after the lines (*) and I can see that the value of avma has increased. Why? I haven't created any new variable. If I do not have the gerepileupto-command in (*) it is worse. The value of avma increases between 20 and 60. This is not very much but I am running through a loop and it sums up. So at the end I get the error stated above. Thank you very much for every help! Best regards, Annegret Weng