Math-Pari
view release on metacpan or search on metacpan
}
}
OUTPUT:
RETVAL
# Tag is menu entry, or -1 for all.
void
_listPari(tag)
int tag
PPCODE:
{
long valence;
entree *ep, *table = functions_basic;
int i=-1;
while (++i <= 1) {
if (i==1)
#if defined(NO_HIGHLEVEL_PARI) || PARI_VERSION_EXP >= 2009000 /* Probably disappered earlier */
break;
#else
if (! code_return_1) {
code_return_1 = gclone(compile_str("x->1"));
code2_return_1 = gclone(compile_str("(x,y)->1"));
avma = sentinel;
}
#endif
}
void
memUsage()
PPCODE:
#ifdef DEBUG_PARI
EXTEND(sp, 4); /* Got cv + 0, - but on newer Perls, this does not count. Return 4. */
PUSHs(sv_2mortal(newSViv(SVnumtotal)));
PUSHs(sv_2mortal(newSViv(SVnum)));
PUSHs(sv_2mortal(newSViv(onStack)));
PUSHs(sv_2mortal(newSViv(offStack)));
#endif
void
dumpStack()
PPCODE:
long i = 0, ssize, oursize = 0;
SV *ret, *sv1, *nextsv;
const char *pref = "";
switch(GIMME_V) {
case G_VOID:
pref = "# ";
case G_SCALAR:
ssize = getstack();
ret = newSVpvf("%sstack size is %ld bytes (%ld x %ld longs)\n",
case G_ARRAY:
for (sv1 = PariStack; sv1 != (SV *) GENfirstOnStack; sv1 = nextsv) {
GEN x = (GEN) SV_myvoidp_get(sv1);
XPUSHs(sv_2mortal(pari_print(x)));
nextsv = SV_Stack_find_next(sv1);
}
}
void
__dumpStack()
PPCODE:
GEN x = (GEN)avma; /* If this works, it is accidental only: it assumes the entry point to the region on stack is at its smallest address. */
long ssize, i = 0;
SV* ret;
switch(GIMME_V) {
case G_VOID:
case G_SCALAR:
ssize = getstack();
ret = newSVpvf("stack size is %ld bytes (%ld x %ld longs)\n",
ssize,(long)sizeof(long),ssize/sizeof(long));
ST(0) = sv_2mortal(ret);
XSRETURN(1);
}
case G_ARRAY:
for(; x < (GEN)myPARI_top; x += gsizeword(x), i++)
XPUSHs(sv_2mortal(pari_print(x)));
}
void
dumpHeap()
PPCODE:
heap_dumper_t hd;
int context = GIMME_V, m;
SV* ret = Nullsv; /* Avoid unit warning */
switch(context) {
case G_VOID:
case G_SCALAR: ret = newSVpvn("",0); break;
case G_ARRAY: ret = (SV*)newAV(); break;
}
( run in 0.683 second using v1.01-cache-2.11-cpan-5511b514fd6 )