[BACK]Return to appc.tex CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / doc

Annotation of OpenXM_contrib/pari/doc/appc.tex, Revision 1.1.1.1

1.1       maekawa     1: \appendix{Summary of Available Constants}
                      2:
                      3: In this appendix we give the list of predefined constants available in the
                      4: PARI library. All of them are in the \idx{heap} and {\it not\/} on the PARI
                      5: \idx{stack}. We start by recalling the \idx{universal object}s introduced in
                      6: \secref{se:intro4}:
                      7: %
                      8: \bprog%
                      9: t\_INT: gzero (zero), gun (un), gdeux (deux)
                     10: t\_FRAC: ghalf (lhalf)
                     11: t\_COMPLEX: gi
                     12: t\_POL: polun[..] (lpolun[..]), polx[..] (lpolx[..])
                     13: \eprog
                     14: \noindent Only polynomials in the variables \kbd{0} and \kbd{MAXVARN} are
                     15: defined initially. Use \kbd{fetch\_var()} (see \secref{se:fetch_var}) to
                     16: create new ones.
                     17:
                     18: \noindent The other objects are not initialized by default:
                     19:
                     20: \tet{geuler}. This is Euler's constant. To initialize it, call
                     21: {\tt\idx{consteuler}(prec)} (see \secref{se:euler}).
                     22:
                     23: \tet{gpi}. This is the number $\pi$. To initialize it, call
                     24: {\tt\idx{constpi}(prec)} (see \secref{se:pi}).
                     25:
                     26: \tet{bern}(i). This is the $2i$-th Bernoulli number ($B_0=1$, $B_2=1/6$,
                     27: $B_4=-1/30$, etc\dots). To initialize them, use the function:
                     28:
                     29: \kbd{void \idx{mpbern}(long n, long prec);}
                     30:
                     31: This creates the even numbered Bernoulli numbers up to $B_{2n-2}$ {\it as
                     32: real numbers\/} of precision \kbd{prec}. They can then be used with the macro
                     33: \kbd{bern(i)}. Note that this is not a function but simply an abbreviation,
                     34: hence care must be taken that \kbd{i} is inside the right bounds (i.e. $0\le
                     35: \kbd{i}\le n-1$) before using it, since no checking is done by PARI itself.
                     36:
                     37: Finally, one has access to a table of (differences of) primes through the
                     38: pointer \tet{diffptr}. This is used as follows: when
                     39:
                     40: \kbd{void pari\_init(long size, long maxprime);}
                     41:
                     42: \noindent is called, this table is initialized with the successive
                     43: differences of primes up to (just a little beyond) \kbd{maxprime}
                     44: (see \secref{se:intro4}). \kbd{maxprime} has to be less than $436272744$,
                     45: whatever memory is available. A
                     46: difference of $0$ means we have reached the end of the table. The following
                     47: example illustrates its use.
                     48: %
                     49: \bprog%
                     50: byteptr d = diffptr;
                     51: long p = 0;
                     52: \h
                     53: while (p <= p\_goal) /* {\rm run through all primes up to \kbd{p\_goal}} */
                     54: \obr
                     55: \q  p += *d;
                     56: \q  if (*d == 0) err(primer1); /* {\rm not enough primes} */
                     57: \q  d++;
                     58: \q  ...
                     59: \cbr
                     60: \eprog\noindent
                     61: Here, we use the general error handling function \kbd{err} (see
                     62: \secref{se:err}), with the codeword \kbd{primer1}. This will just print
                     63: the error message:
                     64:
                     65: \kbd{*** not enough precomputed primes}
                     66:
                     67: \noindent and then abort the computations.
                     68:
                     69: You can use the function \kbd{initprimes} from the file \kbd{arith2.c} to
                     70: compute a new table on the fly and assign it to \kbd{diffptr} or to a
                     71: similar variable of your own. Beware that before changing \kbd{diffptr},
                     72: you should really free the (\kbd{malloc}ed) precomputed table first, and then
                     73: all pointers into the old table will become invalid.
                     74:
                     75: PARI currently guarantees that the first 6547 primes, up to and including
                     76: 65557, will be present in the table, even if you set \kbd{maxnum} to zero.
                     77:
                     78: In addition, some single or double-precision real numbers are predefined,
                     79: and their list is in the file \kbd{paricom.h}.
                     80: \vfill\eject

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>