David Bremner on Wed, 6 Dec 2000 12:15:01 -0400 (AST)


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

recursion of the heap


Well, I thought about my problem with heap usage some more, and came 
up with a much shorter example:  consider the following (stupid)
function


foo(depth)=
{

 if(depth>=1000, return(0));

 return(foo(depth+1));
}


I have appended a gp trace at the end of this message, the gist seems
to be that each recursive invocation of the function leaves something on 
the heap.  Is this a feature? Can it be worked around somehow?

Thanks for any ideas,

David




\\ Trace follows :

Called with: /usr/local/bin/gp -s 10000000 -p 500000 -emacs

                   GP/PARI CALCULATOR Version 2.0.20 (beta)
                      ix86 running freebsd 32-bit version
               (readline v4.1 enabled, extended help available)

                          Copyright (C) 1989-1999 by
          C. Batut, K. Belabas, D. Bernardi, H. Cohen and M. Olivier.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

   realprecision = 28 significant digits
   seriesprecision = 16 significant terms
   format = g0.28

parisize = 10000000, primelimit = 500000
? \r /tmp/gp_#NOB4XT
? \s

 Top : 8a03680   Bottom : 807a000   Current stack : 8a03680
 Used :                         0  long words  (0 K)
 Available :                    2500000  long words  (9764 K)
 Occupation of the PARI stack :   0.00 percent
 1 objects on heap occupy 15 long words

 2 variable names used out of 16383

? foo(0)
%1 = 0
? \s

 Top : 8a03680   Bottom : 807a000   Current stack : 8a03680
 Used :                         0  long words  (0 K)
 Available :                    2500000  long words  (9764 K)
 Occupation of the PARI stack :   0.00 percent
 1003 objects on heap occupy 6027 long words

 2 variable names used out of 16383

?