[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     ! 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>