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

Diff for /OpenXM_contrib/pari-2.2/doc/Attic/appc.tex between version 1.1 and 1.2

version 1.1, 2001/10/02 11:16:56 version 1.2, 2002/09/11 07:26:41
Line 49  reason. You should always use \tet{mpeuler} and \tet{m
Line 49  reason. You should always use \tet{mpeuler} and \tet{m
 the first call will actually compute the constant, unless a higher precision  the first call will actually compute the constant, unless a higher precision
 is required).  is required).
   
   In addition, some single or double-precision real numbers (like \kbd{PI}) are
   predefined, and their list is in the file \kbd{paricom.h}.
   
 Finally, one has access to a table of (differences of) primes through the  Finally, one has access to a table of (differences of) primes through the
 pointer \tet{diffptr}. This is used as follows: when  pointer \tet{diffptr}. This is used as follows: when
   
 \fun{void}{pari_init}{long size, long maxprime}  \fun{void}{pari_init}{long size, ulong maxprime}
   
 \noindent is called, this table is initialized with the successive  \noindent is called, this table is initialized with the successive
 differences of primes up to (just a little beyond) \kbd{maxprime}  differences of primes up to (just a little beyond) \kbd{maxprime}
 (see \secref{se:intro4}). \tet{maxprime} has to be less than $436272744$,  (see \secref{se:intro4}). The prime table will occupy roughly
 whatever memory is available. A difference of $0$ means we have reached the  $\kbd{maxprime}/\log(\kbd{maxprime})$ bytes in memory, so be sensible when
 end of the table. The largest prime computable using this table is  choosing \kbd{maxprime} (it is $500000$ by default under \kbd{gp}). In any case,
 available as the output of  the implementation requires that $\tet{maxprime} < 4294965248$
   (resp.~$18446744073709549568$) on 32-bit (resp.~64-bit) machines, whatever memory
   is available.
   
   The largest prime computable using this table is available as the output of
   
 \fun{ulong}{maxprime}{}  \fun{ulong}{maxprime}{}
   
 \noindent Here's a small example:  After the following initializations (the names $p$ and \var{ptr} are arbitrary of
   course)
   \bprog
   byteptr ptr = diffptr;
   ulong p = 0;
   @eprog
   \noindent calling the macro \tet{NEXT_PRIME_VIADIFF_CHECK(p, ptr)} repeatedly will
   assign the successive prime numbers to $p$. Overrunning the prime table boundary
   will raise the error \tet{primer1}, which will just print the error message:
   
   \kbd{*** not enough precomputed primes}
   
   \noindent and then abort the computations. The alternative macro
   \tet{NEXT_PRIME_VIADIFF} operates in the same way, but will omit that check, and
   is slightly faster. It should be used in the following way:
 %  %
 \bprog  \bprog
 byteptr d = diffptr;  byteptr ptr = diffptr;
 ulong p = 0;  ulong p = 0;
   
 if (maxprime() < goal) err(primer1); /*@Ccom not enough primes */  if (maxprime() < goal) err(primer1); /*@Ccom not enough primes */
 while (p <= goal) /*@Ccom run through all primes up to \kbd{goal} */  while (p <= goal) /*@Ccom run through all primes up to \kbd{goal} */
 {  {
   p += *d++;    NEXT_PRIME_VIADIFF(p, ptr);
   ...    ...
 }  }
 @eprog\noindent  @eprog\noindent
 Here, we use the general error handling function \kbd{err} (see  Here, we use the general error handling function \kbd{err} (see
 \secref{se:err}), with the codeword \kbd{primer1}. This will just print  \secref{se:err}), with the codeword \kbd{primer1}, raising the ``not enough
 the error message:  primes'' error.
   
 \kbd{*** not enough precomputed primes}  
   
 \noindent and then abort the computations.  
   
 You can use the function \kbd{initprimes} from the file \kbd{arith2.c} to  You can use the function \kbd{initprimes} from the file \kbd{arith2.c} to
 compute a new table on the fly and assign it to \kbd{diffptr} or to a  compute a new table on the fly and assign it to \kbd{diffptr} or to a
 similar variable of your own. Beware that before changing \kbd{diffptr},  similar variable of your own. Beware that before changing \kbd{diffptr},
Line 92  all pointers into the old table will become invalid.
Line 109  all pointers into the old table will become invalid.
   
 PARI currently guarantees that the first 6547 primes, up to and including  PARI currently guarantees that the first 6547 primes, up to and including
 65557, will be present in the table, even if you set \kbd{maxnum} to zero.  65557, will be present in the table, even if you set \kbd{maxnum} to zero.
   
 In addition, some single or double-precision real numbers are predefined,  
 and their list is in the file \kbd{paricom.h}.  
 \vfill\eject  \vfill\eject

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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