Browse Source

- Added forgotten index entries.

master
Richard Kreckel 25 years ago
parent
commit
2d6362ebe2
  1. BIN
      doc/cln.dvi
  2. 185
      doc/cln.html
  3. 1
      doc/cln.info
  4. 249
      doc/cln.ps
  5. 13
      doc/cln.tex
  6. 13
      doc/cln.texi
  7. 2
      doc/cln_1.html
  8. 12
      doc/cln_10.html
  9. 14
      doc/cln_11.html
  10. 12
      doc/cln_12.html
  11. 2
      doc/cln_13.html
  12. 2
      doc/cln_2.html
  13. 2
      doc/cln_3.html
  14. 2
      doc/cln_4.html
  15. 2
      doc/cln_5.html
  16. 3
      doc/cln_6.html
  17. 72
      doc/cln_7.html
  18. 22
      doc/cln_8.html
  19. 60
      doc/cln_9.html
  20. 4
      doc/cln_toc.html

BIN
doc/cln.dvi

185
doc/cln.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers</TITLE>
</HEAD>
@ -3452,6 +3452,7 @@ Type tests can be performed for any of <CODE>cl_C_ring</CODE>, <CODE>cl_R_ring</
<DT><CODE>cl_boolean instanceof (const cl_number&#38; x, const cl_number_ring&#38; R)</CODE>
<DD>
<A NAME="IDX240"></A>
Tests whether the given number is an element of the number ring R.
</DL>
@ -3459,14 +3460,14 @@ Tests whether the given number is an element of the number ring R.
<H1><A NAME="SEC49" HREF="cln.html#TOC49">7. Modular integers</A></H1>
<P>
<A NAME="IDX240"></A>
<A NAME="IDX241"></A>
<H2><A NAME="SEC50" HREF="cln.html#TOC50">7.1 Modular integer rings</A></H2>
<P>
<A NAME="IDX241"></A>
<A NAME="IDX242"></A>
<P>
@ -3495,7 +3496,7 @@ The class of modular integer rings is
</PRE>
<P>
<A NAME="IDX242"></A>
<A NAME="IDX243"></A>
<P>
@ -3517,11 +3518,11 @@ Modular integer rings are constructed using the function
<DT><CODE>cl_modint_ring cl_find_modint_ring (const cl_I&#38; N)</CODE>
<DD>
<A NAME="IDX243"></A>
<A NAME="IDX244"></A>
This function returns the modular ring <SAMP>`Z/NZ'</SAMP>. It takes care
of finding out about special cases of <CODE>N</CODE>, like powers of two
and odd numbers for which Montgomery multiplication will be a win,
<A NAME="IDX244"></A>
<A NAME="IDX245"></A>
and precomputes any necessary auxiliary data for computing modulo <CODE>N</CODE>.
There is a cache table of rings, indexed by <CODE>N</CODE> (or, more precisely,
by <CODE>abs(N)</CODE>). This ensures that the precomputation costs are reduced
@ -3536,10 +3537,10 @@ Modular integer rings can be compared for equality:
<DT><CODE>bool operator== (const cl_modint_ring&#38;, const cl_modint_ring&#38;)</CODE>
<DD>
<A NAME="IDX245"></A>
<A NAME="IDX246"></A>
<DT><CODE>bool operator!= (const cl_modint_ring&#38;, const cl_modint_ring&#38;)</CODE>
<DD>
<A NAME="IDX246"></A>
<A NAME="IDX247"></A>
These compare two modular integer rings for equality. Two different calls
to <CODE>cl_find_modint_ring</CODE> with the same argument necessarily return the
same ring because it is memoized in the cache table.
@ -3557,27 +3558,27 @@ Given a modular integer ring <CODE>R</CODE>, the following members can be used.
<DT><CODE>cl_I R-&#62;modulus</CODE>
<DD>
<A NAME="IDX247"></A>
<A NAME="IDX248"></A>
This is the ring's modulus, normalized to be nonnegative: <CODE>abs(N)</CODE>.
<DT><CODE>cl_MI R-&#62;zero()</CODE>
<DD>
<A NAME="IDX248"></A>
<A NAME="IDX249"></A>
This returns <CODE>0 mod N</CODE>.
<DT><CODE>cl_MI R-&#62;one()</CODE>
<DD>
<A NAME="IDX249"></A>
<A NAME="IDX250"></A>
This returns <CODE>1 mod N</CODE>.
<DT><CODE>cl_MI R-&#62;canonhom (const cl_I&#38; x)</CODE>
<DD>
<A NAME="IDX250"></A>
<A NAME="IDX251"></A>
This returns <CODE>x mod N</CODE>.
<DT><CODE>cl_I R-&#62;retract (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX251"></A>
<A NAME="IDX252"></A>
This is a partial inverse function to <CODE>R-&#62;canonhom</CODE>. It returns the
standard representative (<CODE>&#62;=0</CODE>, <CODE>&#60;N</CODE>) of <CODE>x</CODE>.
@ -3585,7 +3586,7 @@ standard representative (<CODE>&#62;=0</CODE>, <CODE>&#60;N</CODE>) of <CODE>x</
<DD>
<DT><CODE>cl_MI R-&#62;random()</CODE>
<DD>
<A NAME="IDX252"></A>
<A NAME="IDX253"></A>
This returns a random integer modulo <CODE>N</CODE>.
</DL>
@ -3597,20 +3598,20 @@ The following operations are defined on modular integers.
<DT><CODE>cl_modint_ring x.ring ()</CODE>
<DD>
<A NAME="IDX253"></A>
<A NAME="IDX254"></A>
Returns the ring to which the modular integer <CODE>x</CODE> belongs.
<DT><CODE>cl_MI operator+ (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX254"></A>
Returns the sum of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX255"></A>
Returns the sum of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI operator- (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX255"></A>
Returns the difference of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX256"></A>
Returns the difference of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI operator- (const cl_MI&#38;)</CODE>
<DD>
@ -3618,61 +3619,61 @@ Returns the negative of a modular integer.
<DT><CODE>cl_MI operator* (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX256"></A>
Returns the product of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX257"></A>
Returns the product of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI square (const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX257"></A>
<A NAME="IDX258"></A>
Returns the square of a modular integer.
<DT><CODE>cl_MI recip (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX258"></A>
<A NAME="IDX259"></A>
Returns the reciprocal <CODE>x^-1</CODE> of a modular integer <CODE>x</CODE>. <CODE>x</CODE>
must be coprime to the modulus, otherwise an error message is issued.
<DT><CODE>cl_MI div (const cl_MI&#38; x, const cl_MI&#38; y)</CODE>
<DD>
<A NAME="IDX259"></A>
<A NAME="IDX260"></A>
Returns the quotient <CODE>x*y^-1</CODE> of two modular integers <CODE>x</CODE>, <CODE>y</CODE>.
<CODE>y</CODE> must be coprime to the modulus, otherwise an error message is issued.
<DT><CODE>cl_MI expt_pos (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX260"></A>
<A NAME="IDX261"></A>
<CODE>y</CODE> must be &#62; 0. Returns <CODE>x^y</CODE>.
<DT><CODE>cl_MI expt (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX261"></A>
<A NAME="IDX262"></A>
Returns <CODE>x^y</CODE>. If <CODE>y</CODE> is negative, <CODE>x</CODE> must be coprime to the
modulus, else an error message is issued.
<DT><CODE>cl_MI operator&#60;&#60; (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX262"></A>
<A NAME="IDX263"></A>
Returns <CODE>x*2^y</CODE>.
<DT><CODE>cl_MI operator&#62;&#62; (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX263"></A>
<A NAME="IDX264"></A>
Returns <CODE>x*2^-y</CODE>. When <CODE>y</CODE> is positive, the modulus must be odd,
or an error message is issued.
<DT><CODE>bool operator== (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX264"></A>
<A NAME="IDX265"></A>
<DT><CODE>bool operator!= (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX265"></A>
<A NAME="IDX266"></A>
Compares two modular integers, belonging to the same modular integer ring,
for equality.
<DT><CODE>cl_boolean zerop (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX266"></A>
<A NAME="IDX267"></A>
Returns true if <CODE>x</CODE> is <CODE>0 mod N</CODE>.
</DL>
@ -3685,10 +3686,10 @@ input/output).
<DT><CODE>void fprint (cl_ostream stream, const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX267"></A>
<A NAME="IDX268"></A>
<DT><CODE>cl_ostream operator&#60;&#60; (cl_ostream stream, const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX268"></A>
<A NAME="IDX269"></A>
Prints the modular integer <CODE>x</CODE> on the <CODE>stream</CODE>. The output may depend
on the global printer settings in the variable <CODE>cl_default_print_flags</CODE>.
</DL>
@ -3697,7 +3698,7 @@ on the global printer settings in the variable <CODE>cl_default_print_flags</COD
<H1><A NAME="SEC52" HREF="cln.html#TOC52">8. Symbolic data types</A></H1>
<P>
<A NAME="IDX269"></A>
<A NAME="IDX270"></A>
<P>
@ -3708,7 +3709,7 @@ CLN implements two symbolic (non-numeric) data types: strings and symbols.
<H2><A NAME="SEC53" HREF="cln.html#TOC53">8.1 Strings</A></H2>
<P>
<A NAME="IDX270"></A>
<A NAME="IDX271"></A>
<P>
@ -3734,7 +3735,7 @@ Strings are constructed through the following constructors:
<DT><CODE>cl_string (const char * s)</CODE>
<DD>
<A NAME="IDX271"></A>
<A NAME="IDX272"></A>
Returns an immutable copy of the (zero-terminated) C string <CODE>s</CODE>.
<DT><CODE>cl_string (const char * ptr, unsigned long len)</CODE>
@ -3755,21 +3756,21 @@ Assignment from <CODE>cl_string</CODE> and <CODE>const char *</CODE>.
<DT><CODE>s.length()</CODE>
<DD>
<A NAME="IDX272"></A>
<A NAME="IDX273"></A>
<DT><CODE>strlen(s)</CODE>
<DD>
<A NAME="IDX273"></A>
<A NAME="IDX274"></A>
Returns the length of the string <CODE>s</CODE>.
<DT><CODE>s[i]</CODE>
<DD>
<A NAME="IDX274"></A>
<A NAME="IDX275"></A>
Returns the <CODE>i</CODE>th character of the string <CODE>s</CODE>.
<CODE>i</CODE> must be in the range <CODE>0 &#60;= i &#60; s.length()</CODE>.
<DT><CODE>bool equal (const cl_string&#38; s1, const cl_string&#38; s2)</CODE>
<DD>
<A NAME="IDX275"></A>
<A NAME="IDX276"></A>
Compares two strings for equality. One of the arguments may also be a
plain <CODE>const char *</CODE>.
</DL>
@ -3778,7 +3779,7 @@ plain <CODE>const char *</CODE>.
<H2><A NAME="SEC54" HREF="cln.html#TOC54">8.2 Symbols</A></H2>
<P>
<A NAME="IDX276"></A>
<A NAME="IDX277"></A>
<P>
@ -3798,7 +3799,7 @@ Symbols are constructed through the following constructor:
<DT><CODE>cl_symbol (const cl_string&#38; s)</CODE>
<DD>
<A NAME="IDX277"></A>
<A NAME="IDX278"></A>
Looks up or creates a new symbol with a given name.
</DL>
@ -3815,7 +3816,7 @@ Conversion to <CODE>cl_string</CODE>: Returns the string which names the symbol
<DT><CODE>bool equal (const cl_symbol&#38; sym1, const cl_symbol&#38; sym2)</CODE>
<DD>
<A NAME="IDX278"></A>
<A NAME="IDX279"></A>
Compares two symbols for equality. This is very fast.
</DL>
@ -3823,8 +3824,8 @@ Compares two symbols for equality. This is very fast.
<H1><A NAME="SEC55" HREF="cln.html#TOC55">9. Univariate polynomials</A></H1>
<P>
<A NAME="IDX279"></A>
<A NAME="IDX280"></A>
<A NAME="IDX281"></A>
@ -3937,7 +3938,7 @@ return the same polynomial ring.
<DT><CODE>cl_univpoly_complex_ring cl_find_univpoly_ring (const cl_complex_ring&#38; R)</CODE>
<DD>
<A NAME="IDX281"></A>
<A NAME="IDX282"></A>
<DT><CODE>cl_univpoly_complex_ring cl_find_univpoly_ring (const cl_complex_ring&#38; R, const cl_symbol&#38; varname)</CODE>
<DD>
<DT><CODE>cl_univpoly_real_ring cl_find_univpoly_ring (const cl_real_ring&#38; R)</CODE>
@ -3972,33 +3973,33 @@ Given a univariate polynomial ring <CODE>R</CODE>, the following members can be
<DT><CODE>cl_ring R-&#62;basering()</CODE>
<DD>
<A NAME="IDX282"></A>
<A NAME="IDX283"></A>
This returns the base ring, as passed to <SAMP>`cl_find_univpoly_ring'</SAMP>.
<DT><CODE>cl_UP R-&#62;zero()</CODE>
<DD>
<A NAME="IDX283"></A>
<A NAME="IDX284"></A>
This returns <CODE>0 in R</CODE>, a polynomial of degree -1.
<DT><CODE>cl_UP R-&#62;one()</CODE>
<DD>
<A NAME="IDX284"></A>
<A NAME="IDX285"></A>
This returns <CODE>1 in R</CODE>, a polynomial of degree &#60;= 0.
<DT><CODE>cl_UP R-&#62;canonhom (const cl_I&#38; x)</CODE>
<DD>
<A NAME="IDX285"></A>
<A NAME="IDX286"></A>
This returns <CODE>x in R</CODE>, a polynomial of degree &#60;= 0.
<DT><CODE>cl_UP R-&#62;monomial (const cl_ring_element&#38; x, uintL e)</CODE>
<DD>
<A NAME="IDX286"></A>
<A NAME="IDX287"></A>
This returns a sparse polynomial: <CODE>x * X^e</CODE>, where <CODE>X</CODE> is the
indeterminate.
<DT><CODE>cl_UP R-&#62;create (sintL degree)</CODE>
<DD>
<A NAME="IDX287"></A>
<A NAME="IDX288"></A>
Creates a new polynomial with a given degree. The zero polynomial has degree
<CODE>-1</CODE>. After creating the polynomial, you should put in the coefficients,
using the <CODE>set_coeff</CODE> member function, and then call the <CODE>finalize</CODE>
@ -4013,14 +4014,14 @@ The following are the only destructive operations on univariate polynomials.
<DT><CODE>void set_coeff (cl_UP&#38; x, uintL index, const cl_ring_element&#38; y)</CODE>
<DD>
<A NAME="IDX288"></A>
<A NAME="IDX289"></A>
This changes the coefficient of <CODE>X^index</CODE> in <CODE>x</CODE> to be <CODE>y</CODE>.
After changing a polynomial and before applying any "normal" operation on it,
you should call its <CODE>finalize</CODE> member function.
<DT><CODE>void finalize (cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX289"></A>
<A NAME="IDX290"></A>
This function marks the endpoint of destructive modifications of a polynomial.
It normalizes the internal representation so that subsequent computations have
less overhead. Doing normal computations on unnormalized polynomials may
@ -4035,17 +4036,17 @@ The following operations are defined on univariate polynomials.
<DT><CODE>cl_univpoly_ring x.ring ()</CODE>
<DD>
<A NAME="IDX290"></A>
<A NAME="IDX291"></A>
Returns the ring to which the univariate polynomial <CODE>x</CODE> belongs.
<DT><CODE>cl_UP operator+ (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX291"></A>
<A NAME="IDX292"></A>
Returns the sum of two univariate polynomials.
<DT><CODE>cl_UP operator- (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX292"></A>
<A NAME="IDX293"></A>
Returns the difference of two univariate polynomials.
<DT><CODE>cl_UP operator- (const cl_UP&#38;)</CODE>
@ -4054,54 +4055,54 @@ Returns the negative of a univariate polynomial.
<DT><CODE>cl_UP operator* (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX293"></A>
<A NAME="IDX294"></A>
Returns the product of two univariate polynomials. One of the arguments may
also be a plain integer or an element of the base ring.
<DT><CODE>cl_UP square (const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX294"></A>
<A NAME="IDX295"></A>
Returns the square of a univariate polynomial.
<DT><CODE>cl_UP expt_pos (const cl_UP&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX295"></A>
<A NAME="IDX296"></A>
<CODE>y</CODE> must be &#62; 0. Returns <CODE>x^y</CODE>.
<DT><CODE>bool operator== (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX296"></A>
<A NAME="IDX297"></A>
<DT><CODE>bool operator!= (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX297"></A>
<A NAME="IDX298"></A>
Compares two univariate polynomials, belonging to the same univariate
polynomial ring, for equality.
<DT><CODE>cl_boolean zerop (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX298"></A>
<A NAME="IDX299"></A>
Returns true if <CODE>x</CODE> is <CODE>0 in R</CODE>.
<DT><CODE>sintL degree (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX299"></A>
<A NAME="IDX300"></A>
Returns the degree of the polynomial. The zero polynomial has degree <CODE>-1</CODE>.
<DT><CODE>cl_ring_element coeff (const cl_UP&#38; x, uintL index)</CODE>
<DD>
<A NAME="IDX300"></A>
<A NAME="IDX301"></A>
Returns the coefficient of <CODE>X^index</CODE> in the polynomial <CODE>x</CODE>.
<DT><CODE>cl_ring_element x (const cl_ring_element&#38; y)</CODE>
<DD>
<A NAME="IDX301"></A>
<A NAME="IDX302"></A>
Evaluation: If <CODE>x</CODE> is a polynomial and <CODE>y</CODE> belongs to the base ring,
then <SAMP>`x(y)'</SAMP> returns the value of the substitution of <CODE>y</CODE> into
<CODE>x</CODE>.
<DT><CODE>cl_UP deriv (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX302"></A>
<A NAME="IDX303"></A>
Returns the derivative of the polynomial <CODE>x</CODE> with respect to the
indeterminate <CODE>X</CODE>.
</DL>
@ -4115,10 +4116,10 @@ input/output).
<DT><CODE>void fprint (cl_ostream stream, const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX303"></A>
<A NAME="IDX304"></A>
<DT><CODE>cl_ostream operator&#60;&#60; (cl_ostream stream, const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX304"></A>
<A NAME="IDX305"></A>
Prints the univariate polynomial <CODE>x</CODE> on the <CODE>stream</CODE>. The output may
depend on the global printer settings in the variable
<CODE>cl_default_print_flags</CODE>.
@ -4136,26 +4137,26 @@ The following functions return special polynomials.
<DT><CODE>cl_UP_I cl_tschebychev (sintL n)</CODE>
<DD>
<A NAME="IDX305"></A>
<A NAME="IDX306"></A>
<A NAME="IDX307"></A>
Returns the n-th Tchebychev polynomial (n &#62;= 0).
<DT><CODE>cl_UP_I cl_hermite (sintL n)</CODE>
<DD>
<A NAME="IDX307"></A>
<A NAME="IDX308"></A>
<A NAME="IDX309"></A>
Returns the n-th Hermite polynomial (n &#62;= 0).
<DT><CODE>cl_UP_RA cl_legendre (sintL n)</CODE>
<DD>
<A NAME="IDX309"></A>
<A NAME="IDX310"></A>
<A NAME="IDX311"></A>
Returns the n-th Legendre polynomial (n &#62;= 0).
<DT><CODE>cl_UP_I cl_laguerre (sintL n)</CODE>
<DD>
<A NAME="IDX311"></A>
<A NAME="IDX312"></A>
<A NAME="IDX313"></A>
Returns the n-th Laguerre polynomial (n &#62;= 0).
</DL>
@ -4173,7 +4174,7 @@ of these polynomials from their definition can be found in the
<H2><A NAME="SEC60" HREF="cln.html#TOC60">10.1 Why C++ ?</A></H2>
<P>
<A NAME="IDX313"></A>
<A NAME="IDX314"></A>
<P>
@ -4188,7 +4189,7 @@ Efficiency: It compiles to machine code.
<LI>
<A NAME="IDX314"></A>
<A NAME="IDX315"></A>
Portability: It runs on all platforms supporting a C++ compiler. Because
of the availability of GNU C++, this includes all currently used 32-bit and
64-bit platforms, independently of the quality of the vendor's C++ compiler.
@ -4234,8 +4235,8 @@ Object sharing: An operation like <CODE>x+0</CODE> returns <CODE>x</CODE> withou
it.
<LI>
<A NAME="IDX315"></A>
<A NAME="IDX316"></A>
<A NAME="IDX317"></A>
Garbage collection: A reference counting mechanism makes sure that any
number object's storage is freed immediately when the last reference to the
object is gone.
@ -4280,7 +4281,7 @@ algorithm.
For very large numbers (more than 12000 decimal digits), CLN uses
Schönhage-Strassen
<A NAME="IDX317"></A>
<A NAME="IDX318"></A>
multiplication, which is an asymptotically optimal multiplication
algorithm.
<LI>
@ -4293,7 +4294,7 @@ of division and radix conversion.
<H2><A NAME="SEC63" HREF="cln.html#TOC63">10.4 Garbage collection</A></H2>
<P>
<A NAME="IDX318"></A>
<A NAME="IDX319"></A>
<P>
@ -4331,7 +4332,7 @@ environment variables, or directly substitute the appropriate values.
<H2><A NAME="SEC65" HREF="cln.html#TOC65">11.1 Compiler options</A></H2>
<P>
<A NAME="IDX319"></A>
<A NAME="IDX320"></A>
<P>
@ -4370,8 +4371,8 @@ linking a CLN application it is sufficient to give the flag <CODE>-lcln</CODE>.
<H2><A NAME="SEC66" HREF="cln.html#TOC66">11.2 Include files</A></H2>
<P>
<A NAME="IDX320"></A>
<A NAME="IDX321"></A>
<A NAME="IDX322"></A>
<P>
@ -4568,7 +4569,7 @@ Includes all of the above.
<P>
A function which computes the nth Fibonacci number can be written as follows.
<A NAME="IDX322"></A>
<A NAME="IDX323"></A>
@ -4654,7 +4655,7 @@ contains this implementation together with an even faster algorithm.
<H2><A NAME="SEC68" HREF="cln.html#TOC68">11.4 Debugging support</A></H2>
<P>
<A NAME="IDX323"></A>
<A NAME="IDX324"></A>
<P>
@ -4688,7 +4689,7 @@ CLN offers a function <CODE>cl_print</CODE>, callable from the debugger,
for printing number objects. In order to get this function, you have
to define the macro <SAMP>`CL_DEBUG'</SAMP> and then include all the header files
for which you want <CODE>cl_print</CODE> debugging support. For example:
<A NAME="IDX324"></A>
<A NAME="IDX325"></A>
<PRE>
#define CL_DEBUG
@ -4715,7 +4716,7 @@ only with number objects and similar. Therefore CLN offers a member function
<CODE>debug_print()</CODE> on all CLN types. The same macro <SAMP>`CL_DEBUG'</SAMP>
is needed for this member function to be implemented. Under <CODE>gdb</CODE>,
you call it like this:
<A NAME="IDX325"></A>
<A NAME="IDX326"></A>
<PRE>
(gdb) print s
@ -4737,7 +4738,7 @@ Unfortunately, this feature does not seem to work under all circumstances.
<H1><A NAME="SEC69" HREF="cln.html#TOC69">12. Customizing</A></H1>
<P>
<A NAME="IDX326"></A>
<A NAME="IDX327"></A>
@ -4757,7 +4758,7 @@ void cl_abort (void);
</PRE>
<P>
<A NAME="IDX327"></A>
<A NAME="IDX328"></A>
This function must not return control to its caller.
@ -4765,7 +4766,7 @@ This function must not return control to its caller.
<H2><A NAME="SEC71" HREF="cln.html#TOC71">12.2 Floating-point underflow</A></H2>
<P>
<A NAME="IDX328"></A>
<A NAME="IDX329"></A>
<P>
@ -4791,7 +4792,7 @@ will be generated instead. The default value of
<P>
The output of the function <CODE>fprint</CODE> may be customized by changing the
value of the global variable <CODE>cl_default_print_flags</CODE>.
<A NAME="IDX329"></A>
<A NAME="IDX330"></A>
@ -4815,8 +4816,8 @@ void (*cl_free_hook) (void* ptr) = ...;
</PRE>
<P>
<A NAME="IDX330"></A>
<A NAME="IDX331"></A>
<A NAME="IDX332"></A>
The <CODE>cl_malloc_hook</CODE> function must not return a <CODE>NULL</CODE> pointer.
@ -4836,7 +4837,7 @@ Jump to:
<P><HR><P>
This document was generated on 5 May 2000 using
This document was generated on 19 May 2000 using
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>&nbsp;1.56k.
</BODY>
</HTML>

1
doc/cln.info

@ -3475,6 +3475,7 @@ Index
* include files: Include files.
* Input/Output: Input/Output.
* installation: Installing the library.
* instanceof (): Rings.
* integer: Ordinary number types.
* integer_decode_float (): Functions on floating-point numbers.
* integer_length (): Logical functions.

249
doc/cln.ps

@ -9,7 +9,7 @@
%DVIPSCommandLine: /usr/local/teTeX/bin/ix86-linux-libc6/dvips -D600 -o
%+ cln.ps cln.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2000.05.05:1954
%DVIPSSource: TeX output 2000.05.19:1449
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@ -5124,333 +5124,336 @@ f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fc(45)2032
g(.)h(.)f(.)g(.)g(.)h(.)f(.)40 b Fc(28)2032 2531 y(installation)9
b Fd(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(4)2032 2623 y(in)n(teger)10
h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(4)2032 2623 y Fe(instanceof)28
b(\(\))20 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)46 b Fc(33)2032 2714 y(in)n(teger)10
b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)36 b Fc(6)2032
2714 y Fe(integer_decode_float)30 b(\(\))24 b Fd(.)13
2806 y Fe(integer_decode_float)30 b(\(\))24 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)49 b Fc(24)2032 2806 y Fe(integer_length)29
(.)g(.)h(.)f(.)g(.)h(.)49 b Fc(24)2032 2898 y Fe(integer_length)29
b(\(\))14 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
b Fc(22)2032 2898 y Fe(isqrt)27 b(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g
b Fc(22)2032 2990 y Fe(isqrt)27 b(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35
b Fc(16)2032 3159 y Fs(L)2032 3281 y Fc(Laguerre)27 b(p)r(olynomial)13
b Fc(16)2032 3251 y Fs(L)2032 3373 y Fc(Laguerre)27 b(p)r(olynomial)13
b Fd(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38
b Fc(42)2032 3373 y Fe(lcm)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g(.)h(.)
b Fc(42)2032 3465 y Fe(lcm)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)38 b Fc(23)2032 3465 y Fe(ldb)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g
g(.)38 b Fc(23)2032 3557 y Fe(ldb)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)38 b Fc(22)2032 3557 y Fe(ldb_test)28 b(\(\))23
(.)f(.)g(.)38 b Fc(22)2032 3648 y Fe(ldb_test)28 b(\(\))23
b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)48 b Fc(22)2032 3648 y Fe(least_negative_float)30
f(.)g(.)h(.)48 b Fc(22)2032 3740 y Fe(least_negative_float)30
b(\(\))24 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)49 b Fc(25)2032
3740 y Fe(least_positive_float)30 b(\(\))24 b Fd(.)13
3832 y Fe(least_positive_float)30 b(\(\))24 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)49 b Fc(25)2032 3832 y(Legende)26
(.)g(.)h(.)f(.)g(.)h(.)49 b Fc(25)2032 3924 y(Legende)26
b(p)r(olynomial)e Fd(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
49 b Fc(42)2032 3924 y Fe(length)27 b(\(\))8 b Fd(.)13
49 b Fc(42)2032 4015 y Fe(length)27 b(\(\))8 b Fd(.)13
b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)33 b Fc(37)2032 4015 y Fe(ln)26 b(\(\))13
h(.)f(.)g(.)h(.)33 b Fc(37)2032 4107 y Fe(ln)26 b(\(\))13
b Fd(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fc(17)2032
4107 y Fe(log)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
4199 y Fe(log)27 b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fc(17)2032 4199 y Fe(logand)27 b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h
b Fc(17)2032 4291 y Fe(logand)27 b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(21)2032 4291 y Fe(logandc1)28 b(\(\))23 b Fd(.)12
b Fc(21)2032 4382 y Fe(logandc1)28 b(\(\))23 b Fd(.)12
b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)48 b Fc(21)2032 4382 y Fe(logandc2)28 b(\(\))23 b
h(.)48 b Fc(21)2032 4474 y Fe(logandc2)28 b(\(\))23 b
Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)48 b Fc(21)2032 4474 y Fe(logbitp)27 b(\(\))6
f(.)g(.)h(.)48 b Fc(21)2032 4566 y Fe(logbitp)27 b(\(\))6
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)32 b Fc(21)2032 4566 y Fe(logcount)c(\(\))23
f(.)g(.)h(.)f(.)g(.)32 b Fc(21)2032 4658 y Fe(logcount)c(\(\))23
b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)48 b Fc(21)2032 4658 y Fe(logeqv)27 b(\(\))8
f(.)g(.)h(.)48 b Fc(21)2032 4749 y Fe(logeqv)27 b(\(\))8
b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(21)2032 4749 y Fe(logior)27
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(21)2032 4841 y Fe(logior)27
b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(21)2032 4841
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(21)2032 4933
y Fe(lognand)27 b(\(\))6 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32 b Fc(21)2032
4933 y Fe(lognor)27 b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
5024 y Fe(lognor)27 b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(21)2032 5024 y Fe(lognot)27 b(\(\))8 b Fd(.)13 b(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(20)p eop
b Fc(21)p eop
%%Page: 54 56
54 55 bop -30 -116 a Fr(Index)3646 b(54)-30 299 y Fe(logorc1)27
b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fc(21)-30 391 y Fe(logorc2)27
b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fc(21)-30 483 y Fe(logp)27
b(\(\))10 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fc(23)-30
575 y Fe(logtest)27 b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)
54 55 bop -30 -116 a Fr(Index)3646 b(54)-30 299 y Fe(lognot)27
b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(20)-30 391 y
Fe(logorc1)27 b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fc(21)-30
483 y Fe(logorc2)27 b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32
b Fc(21)-30 667 y Fe(logxor)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f(.)
b Fc(21)-30 575 y Fe(logp)27 b(\(\))10 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36
b Fc(23)-30 667 y Fe(logtest)27 b(\(\))6 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32
b Fc(21)-30 759 y Fe(logxor)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(21)-30 929 y Fs(M)-30 1052 y Fe(make)9 b Fd(.)k(.)g(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)35 b Fc(3)-30 1144 y Fe(mask_field)28
b Fc(21)-30 1021 y Fs(M)-30 1144 y Fe(make)9 b Fd(.)k(.)g(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(3)-30 1235 y Fe(mask_field)28
b(\(\))20 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)46 b Fc(22)-30 1235 y Fe(max)26 b(\(\))12
g(.)h(.)f(.)g(.)46 b Fc(22)-30 1327 y Fe(max)26 b(\(\))12
b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fc(13)-30 1327
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fc(13)-30 1419
y Fe(min)26 b(\(\))12 b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fc(13)-30 1419 y Fe(minus1)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f
b Fc(13)-30 1511 y Fe(minus1)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(11)-30 1511 y Fe(minusp)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f
b Fc(11)-30 1603 y Fe(minusp)27 b(\(\))8 b Fd(.)k(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(13)-30 1603 y Fe(mod)26 b(\(\))12 b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f
b Fc(13)-30 1695 y Fe(mod)26 b(\(\))12 b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)38 b Fc(16)-30 1695 y(mo)r(difying)26 b(op)r(erators)c
(.)38 b Fc(16)-30 1787 y(mo)r(difying)26 b(op)r(erators)c
Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47
b Fc(27)-30 1787 y(mo)r(dular)25 b(in)n(teger)20 b Fd(.)12
b Fc(27)-30 1879 y(mo)r(dular)25 b(in)n(teger)20 b Fd(.)12
b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45
b Fc(34)-30 1879 y Fe(modulus)23 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)
b Fc(34)-30 1971 y Fe(modulus)23 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
b Fc(34)-30 1971 y Fe(monomial)27 b(\(\))d Fd(.)12 b(.)g(.)h(.)f(.)g(.)
b Fc(34)-30 2063 y Fe(monomial)27 b(\(\))d Fd(.)12 b(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
b Fc(40)-30 2063 y(Mon)n(tgomery)25 b(m)n(ultiplication)9
b Fc(40)-30 2155 y(Mon)n(tgomery)25 b(m)n(ultiplication)9
b Fd(.)k(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fc(34)-30 2155 y Fe
f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fc(34)-30 2247 y Fe
(most_negative_float)30 b(\(\))7 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)33 b Fc(25)-30 2247 y Fe(most_positive_float)d(\(\))7
(.)33 b Fc(25)-30 2339 y Fe(most_positive_float)d(\(\))7
b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 b Fc(25)-30
2509 y Fs(N)-30 2632 y Fe(numerator)28 b(\(\))21 b Fd(.)13
2601 y Fs(N)-30 2724 y Fe(numerator)28 b(\(\))21 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
47 b Fc(12)-30 2879 y Fs(O)-30 3002 y Fe(oddp)27 b(\(\))10
47 b Fc(12)-30 2971 y Fs(O)-30 3094 y Fe(oddp)27 b(\(\))10
b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fc(22)-30 3094 y
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fc(22)-30 3186 y
Fe(one)26 b(\(\))d Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(35,)27
b(40)-30 3186 y Fe(operator)g(!=)f(\(\))c Fd(.)13 b(.)f(.)g(.)g(.)h(.)f
b(40)-30 3278 y Fe(operator)g(!=)f(\(\))c Fd(.)13 b(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
47 b Fc(13,)27 b(34,)f(36,)h(41)-30 3278 y Fe(operator)g(&)f(\(\))9
47 b Fc(13,)27 b(34,)f(36,)h(41)-30 3370 y Fe(operator)g(&)f(\(\))9
b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)34 b Fc(21)-30 3370 y Fe(operator)27 b(&=)f(\(\))7
(.)h(.)34 b Fc(21)-30 3461 y Fe(operator)27 b(&=)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 3461 y Fe(operator)27 b(\(\))f(\(\))7
f(.)33 b Fc(27)-30 3553 y Fe(operator)27 b(\(\))f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(41)-30 3553 y Fe(operator)27 b(*)f(\(\))12
f(.)33 b Fc(41)-30 3645 y Fe(operator)27 b(*)f(\(\))12
b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b
Fc(11,)26 b(35,)h(41)-30 3645 y Fe(operator)g(*=)f(\(\))7
Fc(11,)26 b(35,)h(41)-30 3737 y Fe(operator)g(*=)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 3737 y Fe(operator)27 b(-)f(\(\))12
f(.)33 b Fc(27)-30 3829 y Fe(operator)27 b(-)f(\(\))12
b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b
Fc(11,)26 b(35,)h(41)-30 3829 y Fe(operator)g(--)f(\(\))7
Fc(11,)26 b(35,)h(41)-30 3921 y Fe(operator)g(--)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 3921 y Fe(operator)27 b(-=)f(\(\))7
f(.)33 b Fc(27)-30 4013 y Fe(operator)27 b(-=)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 4013 y Fe(operator)27 b(/)f(\(\))9
f(.)33 b Fc(27)-30 4105 y Fe(operator)27 b(/)f(\(\))9
b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)34 b Fc(11)-30 4105 y Fe(operator)27 b(/=)f(\(\))7
(.)h(.)34 b Fc(11)-30 4197 y Fe(operator)27 b(/=)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 4197 y Fe(operator)27 b(==)f(\(\))c
f(.)33 b Fc(27)-30 4289 y Fe(operator)27 b(==)f(\(\))c
Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fc(13,)27 b(34,)f(36,)h(41)-30
4289 y Fe(operator)g([])f(\(\))7 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)
4381 y Fe(operator)g([])f(\(\))7 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fc(37)-30
4381 y Fe(operator)27 b(|)f(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h
4473 y Fe(operator)27 b(|)f(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fc(21)-30
4473 y Fe(operator)27 b(|=)f(\(\))7 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g
4565 y Fe(operator)27 b(|=)f(\(\))7 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fc(27)-30
4565 y Fe(operator)27 b(~)f(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h
4657 y Fe(operator)27 b(~)f(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fc(20)-30
4657 y Fe(operator)27 b(+)f(\(\))12 b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
4749 y Fe(operator)27 b(+)f(\(\))12 b Fd(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)38 b Fc(11,)26 b(35,)h(41)-30 4749 y Fe(operator)g(+=)f
(.)f(.)g(.)h(.)38 b Fc(11,)26 b(35,)h(41)-30 4841 y Fe(operator)g(+=)f
(\(\))7 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)33 b Fc(27)-30 4841 y Fe(operator)27 b(++)f(\(\))7
g(.)h(.)f(.)33 b Fc(27)-30 4933 y Fe(operator)27 b(++)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(27)-30 4933 y Fe(operator)27 b(>)f(\(\))9
f(.)33 b Fc(27)-30 5024 y Fe(operator)27 b(>)f(\(\))9
b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)34 b Fc(13)-30 5024 y Fe(operator)27 b(>=)f(\(\))7
b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)33 b Fc(13)2032 299 y Fe(operator)28 b(>>)e(\(\))18
(.)h(.)34 b Fc(13)2032 299 y Fe(operator)28 b(>=)e(\(\))7
b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)33 b Fc(13)2032 396 y Fe(operator)28 b(>>)e(\(\))18
b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
b Fc(22,)27 b(36)2032 398 y Fe(operator)h(>>=)e(\(\))e
b Fc(22,)27 b(36)2032 493 y Fe(operator)h(>>=)e(\(\))e
Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)50
b Fc(27)2032 497 y Fe(operator)28 b(^)d(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
b Fc(27)2032 591 y Fe(operator)28 b(^)d(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
b Fc(21)2032 596 y Fe(operator)28 b(^=)e(\(\))7 b Fd(.)13
b Fc(21)2032 688 y Fe(operator)28 b(^=)e(\(\))7 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33
b Fc(27)2032 695 y Fe(operator)28 b(<)d(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
b Fc(27)2032 785 y Fe(operator)28 b(<)d(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
b Fc(13)2032 794 y Fe(operator)28 b(<=)e(\(\))7 b Fd(.)13
b Fc(13)2032 883 y Fe(operator)28 b(<=)e(\(\))7 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33
b Fc(13)2032 893 y Fe(operator)28 b(<<)e(\(\))21 b Fd(.)13
b Fc(13)2032 980 y Fe(operator)28 b(<<)e(\(\))21 b Fd(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)47 b Fc(22,)27 b(35,)f(36,)h(41)2032
992 y Fe(operator)h(<<=)e(\(\))e Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h
1077 y Fe(operator)h(<<=)e(\(\))e Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)g(.)50 b Fc(27)2032 1092 y Fe(ord2)27
h(.)f(.)g(.)h(.)f(.)g(.)g(.)50 b Fc(27)2032 1174 y Fe(ord2)27
b(\(\))10 b Fd(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fc(22)2032
1378 y Fs(P)2032 1516 y Fe(phase)27 b(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
1451 y Fs(P)2032 1585 y Fe(phase)27 b(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)35 b Fc(17)2032 1615 y(pi)18 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)35 b Fc(17)2032 1682 y(pi)18 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)44 b Fc(19)2032 1714 y Fe(plus1)27 b(\(\))9
(.)h(.)f(.)g(.)44 b Fc(19)2032 1780 y Fe(plus1)27 b(\(\))9
b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(11)2032 1813 y Fe(plusp)27
(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(11)2032 1877 y Fe(plusp)27
b(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(13)2032 1912
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fc(13)2032 1974
y(p)r(olynomial)10 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)36 b Fc(38)2032 2011
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)36 b Fc(38)2032 2072
y(p)r(ortabilit)n(y)17 b Fd(.)c(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fc(43)2032
2110 y Fe(power2p)27 b(\(\))6 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h
2169 y Fe(power2p)27 b(\(\))6 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32
b Fc(23)2032 2209 y(prin)n(ting)8 b Fd(.)k(.)g(.)h(.)f(.)g(.)g(.)h(.)f
b Fc(23)2032 2266 y(prin)n(ting)8 b Fd(.)k(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33
b Fc(28)2032 2509 y Fs(R)2032 2646 y Fe(random)27 b(\(\))8
b Fc(28)2032 2556 y Fs(R)2032 2690 y Fe(random)27 b(\(\))8
b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(35)2032 2746 y Fe(random_F)28
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(35)2032 2787 y Fe(random_F)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 2845 y Fe(random_I)28
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 2884 y Fe(random_I)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 2944 y Fe(random_R)28
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 2981 y Fe(random_R)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3043 y Fe(random32)28
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3079 y Fe(random32)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3142 y Fe(rational)28
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3176 y Fe(rational)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3241 y(rational)27
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(26)2032 3273 y(rational)27
b(n)n(um)n(b)r(er)17 b Fd(.)11 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)g(.)44 b Fc(6)2032 3340 y Fe(rationalize)28
(.)f(.)g(.)h(.)f(.)g(.)g(.)44 b Fc(6)2032 3371 y Fe(rationalize)28
b(\(\))18 b Fd(.)c(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)44 b Fc(26)2032 3439 y(reading)17 b Fd(.)c(.)g(.)f(.)g(.)h(.)f
h(.)f(.)44 b Fc(26)2032 3468 y(reading)17 b Fd(.)c(.)g(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)43 b Fc(28)2032 3538 y(real)27 b(n)n(um)n(b)r(er)13
(.)43 b Fc(28)2032 3565 y(real)27 b(n)n(um)n(b)r(er)13
b Fd(.)d(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)39 b Fc(6)2032 3637 y Fe(realpart)28
(.)f(.)g(.)h(.)f(.)39 b Fc(6)2032 3662 y Fe(realpart)28
b(\(\))23 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(12)2032 3736 y Fe(recip)27
f(.)g(.)h(.)f(.)g(.)h(.)48 b Fc(12)2032 3760 y Fe(recip)27
b(\(\))20 b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)45 b Fc(11,)27 b(35)2032 3835
g(.)h(.)f(.)g(.)g(.)h(.)45 b Fc(11,)27 b(35)2032 3857
y(reference)g(coun)n(ting)17 b Fd(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)43 b Fc(43)2032 3935 y Fe(rem)27
(.)h(.)f(.)g(.)h(.)f(.)43 b Fc(43)2032 3954 y Fe(rem)27
b(\(\))12 b Fd(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fc(16)2032
4034 y(represen)n(tation)12 b Fd(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
4052 y(represen)n(tation)12 b Fd(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fc(28)2032 4133
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fc(28)2032 4149
y Fe(retract)27 b(\(\))6 b Fd(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32 b Fc(35)2032
4232 y(Riemann's)25 b(zeta)11 b Fd(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
4246 y(Riemann's)25 b(zeta)11 b Fd(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)37 b Fc(20)2032 4331
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)37 b Fc(20)2032 4343
y(ring)21 b Fd(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
b Fc(34)2032 4430 y Fe(ring)27 b(\(\))21 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)
b Fc(34)2032 4441 y Fe(ring)27 b(\(\))21 b Fd(.)13 b(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47
b Fc(35,)27 b(41)2032 4529 y Fe(rootp)g(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
b Fc(35,)27 b(41)2032 4538 y Fe(rootp)g(\(\))9 b Fd(.)k(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)35 b Fc(16)2032 4628 y Fe(round1)27 b(\(\))8 b Fd(.)13
(.)35 b Fc(16)2032 4635 y Fe(round1)27 b(\(\))8 b Fd(.)13
b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)33 b Fc(14)2032 4727 y Fe(round2)27 b(\(\))8
h(.)f(.)g(.)h(.)33 b Fc(14)2032 4733 y Fe(round2)27 b(\(\))8
b Fd(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(15)2032 4826 y(rounding)10
g(.)g(.)h(.)f(.)g(.)h(.)33 b Fc(15)2032 4830 y(rounding)10
b Fd(.)i(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fc(13)2032 4925 y(rounding)26
(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fc(13)2032 4927 y(rounding)26
b(error)7 b Fd(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)34 b Fc(7)2032 5024 y(Rubik's)25

13
doc/cln.tex

@ -2684,6 +2684,7 @@ Type tests can be performed for any of @code{cl_C_ring}, @code{cl_R_ring},
@table @code
@item cl_boolean instanceof (const cl_number& x, const cl_number_ring& R)
@cindex @code{instanceof ()}
Tests whether the given number is an element of the number ring R.
@end table
@ -2791,21 +2792,21 @@ Returns the ring to which the modular integer @code{x} belongs.
@item cl_MI operator+ (const cl_MI&, const cl_MI&)
@cindex @code{operator + ()}
Returns the sum of two modular integers. One of the arguments may also be
a plain integer.
Returns the sum of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI operator- (const cl_MI&, const cl_MI&)
@cindex @code{operator - ()}
Returns the difference of two modular integers. One of the arguments may also be
a plain integer.
Returns the difference of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI operator- (const cl_MI&)
Returns the negative of a modular integer.
@item cl_MI operator* (const cl_MI&, const cl_MI&)
@cindex @code{operator * ()}
Returns the product of two modular integers. One of the arguments may also be
a plain integer.
Returns the product of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI square (const cl_MI&)
@cindex @code{square ()}

13
doc/cln.texi

@ -2932,6 +2932,7 @@ Type tests can be performed for any of @code{cl_C_ring}, @code{cl_R_ring},
@table @code
@item cl_boolean instanceof (const cl_number& x, const cl_number_ring& R)
@cindex @code{instanceof ()}
Tests whether the given number is an element of the number ring R.
@end table
@ -3047,21 +3048,21 @@ Returns the ring to which the modular integer @code{x} belongs.
@item cl_MI operator+ (const cl_MI&, const cl_MI&)
@cindex @code{operator + ()}
Returns the sum of two modular integers. One of the arguments may also be
a plain integer.
Returns the sum of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI operator- (const cl_MI&, const cl_MI&)
@cindex @code{operator - ()}
Returns the difference of two modular integers. One of the arguments may also be
a plain integer.
Returns the difference of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI operator- (const cl_MI&)
Returns the negative of a modular integer.
@item cl_MI operator* (const cl_MI&, const cl_MI&)
@cindex @code{operator * ()}
Returns the product of two modular integers. One of the arguments may also be
a plain integer.
Returns the product of two modular integers. One of the arguments may also
be a plain integer.
@item cl_MI square (const cl_MI&)
@cindex @code{square ()}

2
doc/cln_1.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 1. Introduction</TITLE>
</HEAD>

12
doc/cln_10.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 10. Internals</TITLE>
</HEAD>
@ -15,7 +15,7 @@ Go to the <A HREF="cln_1.html">first</A>, <A HREF="cln_9.html">previous</A>, <A
<H2><A NAME="SEC60" HREF="cln_toc.html#TOC60">10.1 Why C++ ?</A></H2>
<P>
<A NAME="IDX313"></A>
<A NAME="IDX314"></A>
<P>
@ -30,7 +30,7 @@ Efficiency: It compiles to machine code.
<LI>
<A NAME="IDX314"></A>
<A NAME="IDX315"></A>
Portability: It runs on all platforms supporting a C++ compiler. Because
of the availability of GNU C++, this includes all currently used 32-bit and
64-bit platforms, independently of the quality of the vendor's C++ compiler.
@ -76,8 +76,8 @@ Object sharing: An operation like <CODE>x+0</CODE> returns <CODE>x</CODE> withou
it.
<LI>
<A NAME="IDX315"></A>
<A NAME="IDX316"></A>
<A NAME="IDX317"></A>
Garbage collection: A reference counting mechanism makes sure that any
number object's storage is freed immediately when the last reference to the
object is gone.
@ -122,7 +122,7 @@ algorithm.
For very large numbers (more than 12000 decimal digits), CLN uses
Schönhage-Strassen
<A NAME="IDX317"></A>
<A NAME="IDX318"></A>
multiplication, which is an asymptotically optimal multiplication
algorithm.
<LI>
@ -135,7 +135,7 @@ of division and radix conversion.
<H2><A NAME="SEC63" HREF="cln_toc.html#TOC63">10.4 Garbage collection</A></H2>
<P>
<A NAME="IDX318"></A>
<A NAME="IDX319"></A>
<P>

14
doc/cln_11.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 11. Using the library</TITLE>
</HEAD>
@ -23,7 +23,7 @@ environment variables, or directly substitute the appropriate values.
<H2><A NAME="SEC65" HREF="cln_toc.html#TOC65">11.1 Compiler options</A></H2>
<P>
<A NAME="IDX319"></A>
<A NAME="IDX320"></A>
<P>
@ -62,8 +62,8 @@ linking a CLN application it is sufficient to give the flag <CODE>-lcln</CODE>.
<H2><A NAME="SEC66" HREF="cln_toc.html#TOC66">11.2 Include files</A></H2>
<P>
<A NAME="IDX320"></A>
<A NAME="IDX321"></A>
<A NAME="IDX322"></A>
<P>
@ -260,7 +260,7 @@ Includes all of the above.
<P>
A function which computes the nth Fibonacci number can be written as follows.
<A NAME="IDX322"></A>
<A NAME="IDX323"></A>
@ -346,7 +346,7 @@ contains this implementation together with an even faster algorithm.
<H2><A NAME="SEC68" HREF="cln_toc.html#TOC68">11.4 Debugging support</A></H2>
<P>
<A NAME="IDX323"></A>
<A NAME="IDX324"></A>
<P>
@ -380,7 +380,7 @@ CLN offers a function <CODE>cl_print</CODE>, callable from the debugger,
for printing number objects. In order to get this function, you have
to define the macro <SAMP>`CL_DEBUG'</SAMP> and then include all the header files
for which you want <CODE>cl_print</CODE> debugging support. For example:
<A NAME="IDX324"></A>
<A NAME="IDX325"></A>
<PRE>
#define CL_DEBUG
@ -407,7 +407,7 @@ only with number objects and similar. Therefore CLN offers a member function
<CODE>debug_print()</CODE> on all CLN types. The same macro <SAMP>`CL_DEBUG'</SAMP>
is needed for this member function to be implemented. Under <CODE>gdb</CODE>,
you call it like this:
<A NAME="IDX325"></A>
<A NAME="IDX326"></A>
<PRE>
(gdb) print s

12
doc/cln_12.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 12. Customizing</TITLE>
</HEAD>
@ -11,7 +11,7 @@ Go to the <A HREF="cln_1.html">first</A>, <A HREF="cln_11.html">previous</A>, <A
<H1><A NAME="SEC69" HREF="cln_toc.html#TOC69">12. Customizing</A></H1>
<P>
<A NAME="IDX326"></A>
<A NAME="IDX327"></A>
@ -31,7 +31,7 @@ void cl_abort (void);
</PRE>
<P>
<A NAME="IDX327"></A>
<A NAME="IDX328"></A>
This function must not return control to its caller.
@ -39,7 +39,7 @@ This function must not return control to its caller.
<H2><A NAME="SEC71" HREF="cln_toc.html#TOC71">12.2 Floating-point underflow</A></H2>
<P>
<A NAME="IDX328"></A>
<A NAME="IDX329"></A>
<P>
@ -65,7 +65,7 @@ will be generated instead. The default value of
<P>
The output of the function <CODE>fprint</CODE> may be customized by changing the
value of the global variable <CODE>cl_default_print_flags</CODE>.
<A NAME="IDX329"></A>
<A NAME="IDX330"></A>
@ -89,8 +89,8 @@ void (*cl_free_hook) (void* ptr) = ...;
</PRE>
<P>
<A NAME="IDX330"></A>
<A NAME="IDX331"></A>
<A NAME="IDX332"></A>
The <CODE>cl_malloc_hook</CODE> function must not return a <CODE>NULL</CODE> pointer.

2
doc/cln_13.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - Index</TITLE>
</HEAD>

2
doc/cln_2.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 2. Installation</TITLE>
</HEAD>

2
doc/cln_3.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 3. Ordinary number types</TITLE>
</HEAD>

2
doc/cln_4.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 4. Functions on numbers</TITLE>
</HEAD>

2
doc/cln_5.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 5. Input/Output</TITLE>
</HEAD>

3
doc/cln_6.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 6. Rings</TITLE>
</HEAD>
@ -103,6 +103,7 @@ Type tests can be performed for any of <CODE>cl_C_ring</CODE>, <CODE>cl_R_ring</
<DT><CODE>cl_boolean instanceof (const cl_number&#38; x, const cl_number_ring&#38; R)</CODE>
<DD>
<A NAME="IDX240"></A>
Tests whether the given number is an element of the number ring R.
</DL>

72
doc/cln_7.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 7. Modular integers</TITLE>
</HEAD>
@ -11,14 +11,14 @@ Go to the <A HREF="cln_1.html">first</A>, <A HREF="cln_6.html">previous</A>, <A
<H1><A NAME="SEC49" HREF="cln_toc.html#TOC49">7. Modular integers</A></H1>
<P>
<A NAME="IDX240"></A>
<A NAME="IDX241"></A>
<H2><A NAME="SEC50" HREF="cln_toc.html#TOC50">7.1 Modular integer rings</A></H2>
<P>
<A NAME="IDX241"></A>
<A NAME="IDX242"></A>
<P>
@ -47,7 +47,7 @@ The class of modular integer rings is
</PRE>
<P>
<A NAME="IDX242"></A>
<A NAME="IDX243"></A>
<P>
@ -69,11 +69,11 @@ Modular integer rings are constructed using the function
<DT><CODE>cl_modint_ring cl_find_modint_ring (const cl_I&#38; N)</CODE>
<DD>
<A NAME="IDX243"></A>
<A NAME="IDX244"></A>
This function returns the modular ring <SAMP>`Z/NZ'</SAMP>. It takes care
of finding out about special cases of <CODE>N</CODE>, like powers of two
and odd numbers for which Montgomery multiplication will be a win,
<A NAME="IDX244"></A>
<A NAME="IDX245"></A>
and precomputes any necessary auxiliary data for computing modulo <CODE>N</CODE>.
There is a cache table of rings, indexed by <CODE>N</CODE> (or, more precisely,
by <CODE>abs(N)</CODE>). This ensures that the precomputation costs are reduced
@ -88,10 +88,10 @@ Modular integer rings can be compared for equality:
<DT><CODE>bool operator== (const cl_modint_ring&#38;, const cl_modint_ring&#38;)</CODE>
<DD>
<A NAME="IDX245"></A>
<A NAME="IDX246"></A>
<DT><CODE>bool operator!= (const cl_modint_ring&#38;, const cl_modint_ring&#38;)</CODE>
<DD>
<A NAME="IDX246"></A>
<A NAME="IDX247"></A>
These compare two modular integer rings for equality. Two different calls
to <CODE>cl_find_modint_ring</CODE> with the same argument necessarily return the
same ring because it is memoized in the cache table.
@ -109,27 +109,27 @@ Given a modular integer ring <CODE>R</CODE>, the following members can be used.
<DT><CODE>cl_I R-&#62;modulus</CODE>
<DD>
<A NAME="IDX247"></A>
<A NAME="IDX248"></A>
This is the ring's modulus, normalized to be nonnegative: <CODE>abs(N)</CODE>.
<DT><CODE>cl_MI R-&#62;zero()</CODE>
<DD>
<A NAME="IDX248"></A>
<A NAME="IDX249"></A>
This returns <CODE>0 mod N</CODE>.
<DT><CODE>cl_MI R-&#62;one()</CODE>
<DD>
<A NAME="IDX249"></A>
<A NAME="IDX250"></A>
This returns <CODE>1 mod N</CODE>.
<DT><CODE>cl_MI R-&#62;canonhom (const cl_I&#38; x)</CODE>
<DD>
<A NAME="IDX250"></A>
<A NAME="IDX251"></A>
This returns <CODE>x mod N</CODE>.
<DT><CODE>cl_I R-&#62;retract (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX251"></A>
<A NAME="IDX252"></A>
This is a partial inverse function to <CODE>R-&#62;canonhom</CODE>. It returns the
standard representative (<CODE>&#62;=0</CODE>, <CODE>&#60;N</CODE>) of <CODE>x</CODE>.
@ -137,7 +137,7 @@ standard representative (<CODE>&#62;=0</CODE>, <CODE>&#60;N</CODE>) of <CODE>x</
<DD>
<DT><CODE>cl_MI R-&#62;random()</CODE>
<DD>
<A NAME="IDX252"></A>
<A NAME="IDX253"></A>
This returns a random integer modulo <CODE>N</CODE>.
</DL>
@ -149,20 +149,20 @@ The following operations are defined on modular integers.
<DT><CODE>cl_modint_ring x.ring ()</CODE>
<DD>
<A NAME="IDX253"></A>
<A NAME="IDX254"></A>
Returns the ring to which the modular integer <CODE>x</CODE> belongs.
<DT><CODE>cl_MI operator+ (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX254"></A>
Returns the sum of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX255"></A>
Returns the sum of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI operator- (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX255"></A>
Returns the difference of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX256"></A>
Returns the difference of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI operator- (const cl_MI&#38;)</CODE>
<DD>
@ -170,61 +170,61 @@ Returns the negative of a modular integer.
<DT><CODE>cl_MI operator* (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX256"></A>
Returns the product of two modular integers. One of the arguments may also be
a plain integer.
<A NAME="IDX257"></A>
Returns the product of two modular integers. One of the arguments may also
be a plain integer.
<DT><CODE>cl_MI square (const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX257"></A>
<A NAME="IDX258"></A>
Returns the square of a modular integer.
<DT><CODE>cl_MI recip (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX258"></A>
<A NAME="IDX259"></A>
Returns the reciprocal <CODE>x^-1</CODE> of a modular integer <CODE>x</CODE>. <CODE>x</CODE>
must be coprime to the modulus, otherwise an error message is issued.
<DT><CODE>cl_MI div (const cl_MI&#38; x, const cl_MI&#38; y)</CODE>
<DD>
<A NAME="IDX259"></A>
<A NAME="IDX260"></A>
Returns the quotient <CODE>x*y^-1</CODE> of two modular integers <CODE>x</CODE>, <CODE>y</CODE>.
<CODE>y</CODE> must be coprime to the modulus, otherwise an error message is issued.
<DT><CODE>cl_MI expt_pos (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX260"></A>
<A NAME="IDX261"></A>
<CODE>y</CODE> must be &#62; 0. Returns <CODE>x^y</CODE>.
<DT><CODE>cl_MI expt (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX261"></A>
<A NAME="IDX262"></A>
Returns <CODE>x^y</CODE>. If <CODE>y</CODE> is negative, <CODE>x</CODE> must be coprime to the
modulus, else an error message is issued.
<DT><CODE>cl_MI operator&#60;&#60; (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX262"></A>
<A NAME="IDX263"></A>
Returns <CODE>x*2^y</CODE>.
<DT><CODE>cl_MI operator&#62;&#62; (const cl_MI&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX263"></A>
<A NAME="IDX264"></A>
Returns <CODE>x*2^-y</CODE>. When <CODE>y</CODE> is positive, the modulus must be odd,
or an error message is issued.
<DT><CODE>bool operator== (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX264"></A>
<A NAME="IDX265"></A>
<DT><CODE>bool operator!= (const cl_MI&#38;, const cl_MI&#38;)</CODE>
<DD>
<A NAME="IDX265"></A>
<A NAME="IDX266"></A>
Compares two modular integers, belonging to the same modular integer ring,
for equality.
<DT><CODE>cl_boolean zerop (const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX266"></A>
<A NAME="IDX267"></A>
Returns true if <CODE>x</CODE> is <CODE>0 mod N</CODE>.
</DL>
@ -237,10 +237,10 @@ input/output).
<DT><CODE>void fprint (cl_ostream stream, const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX267"></A>
<A NAME="IDX268"></A>
<DT><CODE>cl_ostream operator&#60;&#60; (cl_ostream stream, const cl_MI&#38; x)</CODE>
<DD>
<A NAME="IDX268"></A>
<A NAME="IDX269"></A>
Prints the modular integer <CODE>x</CODE> on the <CODE>stream</CODE>. The output may depend
on the global printer settings in the variable <CODE>cl_default_print_flags</CODE>.
</DL>

22
doc/cln_8.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 8. Symbolic data types</TITLE>
</HEAD>
@ -11,7 +11,7 @@ Go to the <A HREF="cln_1.html">first</A>, <A HREF="cln_7.html">previous</A>, <A
<H1><A NAME="SEC52" HREF="cln_toc.html#TOC52">8. Symbolic data types</A></H1>
<P>
<A NAME="IDX269"></A>
<A NAME="IDX270"></A>
<P>
@ -22,7 +22,7 @@ CLN implements two symbolic (non-numeric) data types: strings and symbols.
<H2><A NAME="SEC53" HREF="cln_toc.html#TOC53">8.1 Strings</A></H2>
<P>
<A NAME="IDX270"></A>
<A NAME="IDX271"></A>
<P>
@ -48,7 +48,7 @@ Strings are constructed through the following constructors:
<DT><CODE>cl_string (const char * s)</CODE>
<DD>
<A NAME="IDX271"></A>
<A NAME="IDX272"></A>
Returns an immutable copy of the (zero-terminated) C string <CODE>s</CODE>.
<DT><CODE>cl_string (const char * ptr, unsigned long len)</CODE>
@ -69,21 +69,21 @@ Assignment from <CODE>cl_string</CODE> and <CODE>const char *</CODE>.
<DT><CODE>s.length()</CODE>
<DD>
<A NAME="IDX272"></A>
<A NAME="IDX273"></A>
<DT><CODE>strlen(s)</CODE>
<DD>
<A NAME="IDX273"></A>
<A NAME="IDX274"></A>
Returns the length of the string <CODE>s</CODE>.
<DT><CODE>s[i]</CODE>
<DD>
<A NAME="IDX274"></A>
<A NAME="IDX275"></A>
Returns the <CODE>i</CODE>th character of the string <CODE>s</CODE>.
<CODE>i</CODE> must be in the range <CODE>0 &#60;= i &#60; s.length()</CODE>.
<DT><CODE>bool equal (const cl_string&#38; s1, const cl_string&#38; s2)</CODE>
<DD>
<A NAME="IDX275"></A>
<A NAME="IDX276"></A>
Compares two strings for equality. One of the arguments may also be a
plain <CODE>const char *</CODE>.
</DL>
@ -92,7 +92,7 @@ plain <CODE>const char *</CODE>.
<H2><A NAME="SEC54" HREF="cln_toc.html#TOC54">8.2 Symbols</A></H2>
<P>
<A NAME="IDX276"></A>
<A NAME="IDX277"></A>
<P>
@ -112,7 +112,7 @@ Symbols are constructed through the following constructor:
<DT><CODE>cl_symbol (const cl_string&#38; s)</CODE>
<DD>
<A NAME="IDX277"></A>
<A NAME="IDX278"></A>
Looks up or creates a new symbol with a given name.
</DL>
@ -129,7 +129,7 @@ Conversion to <CODE>cl_string</CODE>: Returns the string which names the symbol
<DT><CODE>bool equal (const cl_symbol&#38; sym1, const cl_symbol&#38; sym2)</CODE>
<DD>
<A NAME="IDX278"></A>
<A NAME="IDX279"></A>
Compares two symbols for equality. This is very fast.
</DL>

60
doc/cln_9.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - 9. Univariate polynomials</TITLE>
</HEAD>
@ -11,8 +11,8 @@ Go to the <A HREF="cln_1.html">first</A>, <A HREF="cln_8.html">previous</A>, <A
<H1><A NAME="SEC55" HREF="cln_toc.html#TOC55">9. Univariate polynomials</A></H1>
<P>
<A NAME="IDX279"></A>
<A NAME="IDX280"></A>
<A NAME="IDX281"></A>
@ -125,7 +125,7 @@ return the same polynomial ring.
<DT><CODE>cl_univpoly_complex_ring cl_find_univpoly_ring (const cl_complex_ring&#38; R)</CODE>
<DD>
<A NAME="IDX281"></A>
<A NAME="IDX282"></A>
<DT><CODE>cl_univpoly_complex_ring cl_find_univpoly_ring (const cl_complex_ring&#38; R, const cl_symbol&#38; varname)</CODE>
<DD>
<DT><CODE>cl_univpoly_real_ring cl_find_univpoly_ring (const cl_real_ring&#38; R)</CODE>
@ -160,33 +160,33 @@ Given a univariate polynomial ring <CODE>R</CODE>, the following members can be
<DT><CODE>cl_ring R-&#62;basering()</CODE>
<DD>
<A NAME="IDX282"></A>
<A NAME="IDX283"></A>
This returns the base ring, as passed to <SAMP>`cl_find_univpoly_ring'</SAMP>.
<DT><CODE>cl_UP R-&#62;zero()</CODE>
<DD>
<A NAME="IDX283"></A>
<A NAME="IDX284"></A>
This returns <CODE>0 in R</CODE>, a polynomial of degree -1.
<DT><CODE>cl_UP R-&#62;one()</CODE>
<DD>
<A NAME="IDX284"></A>
<A NAME="IDX285"></A>
This returns <CODE>1 in R</CODE>, a polynomial of degree &#60;= 0.
<DT><CODE>cl_UP R-&#62;canonhom (const cl_I&#38; x)</CODE>
<DD>
<A NAME="IDX285"></A>
<A NAME="IDX286"></A>
This returns <CODE>x in R</CODE>, a polynomial of degree &#60;= 0.
<DT><CODE>cl_UP R-&#62;monomial (const cl_ring_element&#38; x, uintL e)</CODE>
<DD>
<A NAME="IDX286"></A>
<A NAME="IDX287"></A>
This returns a sparse polynomial: <CODE>x * X^e</CODE>, where <CODE>X</CODE> is the
indeterminate.
<DT><CODE>cl_UP R-&#62;create (sintL degree)</CODE>
<DD>
<A NAME="IDX287"></A>
<A NAME="IDX288"></A>
Creates a new polynomial with a given degree. The zero polynomial has degree
<CODE>-1</CODE>. After creating the polynomial, you should put in the coefficients,
using the <CODE>set_coeff</CODE> member function, and then call the <CODE>finalize</CODE>
@ -201,14 +201,14 @@ The following are the only destructive operations on univariate polynomials.
<DT><CODE>void set_coeff (cl_UP&#38; x, uintL index, const cl_ring_element&#38; y)</CODE>
<DD>
<A NAME="IDX288"></A>
<A NAME="IDX289"></A>
This changes the coefficient of <CODE>X^index</CODE> in <CODE>x</CODE> to be <CODE>y</CODE>.
After changing a polynomial and before applying any "normal" operation on it,
you should call its <CODE>finalize</CODE> member function.
<DT><CODE>void finalize (cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX289"></A>
<A NAME="IDX290"></A>
This function marks the endpoint of destructive modifications of a polynomial.
It normalizes the internal representation so that subsequent computations have
less overhead. Doing normal computations on unnormalized polynomials may
@ -223,17 +223,17 @@ The following operations are defined on univariate polynomials.
<DT><CODE>cl_univpoly_ring x.ring ()</CODE>
<DD>
<A NAME="IDX290"></A>
<A NAME="IDX291"></A>
Returns the ring to which the univariate polynomial <CODE>x</CODE> belongs.
<DT><CODE>cl_UP operator+ (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX291"></A>
<A NAME="IDX292"></A>
Returns the sum of two univariate polynomials.
<DT><CODE>cl_UP operator- (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX292"></A>
<A NAME="IDX293"></A>
Returns the difference of two univariate polynomials.
<DT><CODE>cl_UP operator- (const cl_UP&#38;)</CODE>
@ -242,54 +242,54 @@ Returns the negative of a univariate polynomial.
<DT><CODE>cl_UP operator* (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX293"></A>
<A NAME="IDX294"></A>
Returns the product of two univariate polynomials. One of the arguments may
also be a plain integer or an element of the base ring.
<DT><CODE>cl_UP square (const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX294"></A>
<A NAME="IDX295"></A>
Returns the square of a univariate polynomial.
<DT><CODE>cl_UP expt_pos (const cl_UP&#38; x, const cl_I&#38; y)</CODE>
<DD>
<A NAME="IDX295"></A>
<A NAME="IDX296"></A>
<CODE>y</CODE> must be &#62; 0. Returns <CODE>x^y</CODE>.
<DT><CODE>bool operator== (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX296"></A>
<A NAME="IDX297"></A>
<DT><CODE>bool operator!= (const cl_UP&#38;, const cl_UP&#38;)</CODE>
<DD>
<A NAME="IDX297"></A>
<A NAME="IDX298"></A>
Compares two univariate polynomials, belonging to the same univariate
polynomial ring, for equality.
<DT><CODE>cl_boolean zerop (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX298"></A>
<A NAME="IDX299"></A>
Returns true if <CODE>x</CODE> is <CODE>0 in R</CODE>.
<DT><CODE>sintL degree (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX299"></A>
<A NAME="IDX300"></A>
Returns the degree of the polynomial. The zero polynomial has degree <CODE>-1</CODE>.
<DT><CODE>cl_ring_element coeff (const cl_UP&#38; x, uintL index)</CODE>
<DD>
<A NAME="IDX300"></A>
<A NAME="IDX301"></A>
Returns the coefficient of <CODE>X^index</CODE> in the polynomial <CODE>x</CODE>.
<DT><CODE>cl_ring_element x (const cl_ring_element&#38; y)</CODE>
<DD>
<A NAME="IDX301"></A>
<A NAME="IDX302"></A>
Evaluation: If <CODE>x</CODE> is a polynomial and <CODE>y</CODE> belongs to the base ring,
then <SAMP>`x(y)'</SAMP> returns the value of the substitution of <CODE>y</CODE> into
<CODE>x</CODE>.
<DT><CODE>cl_UP deriv (const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX302"></A>
<A NAME="IDX303"></A>
Returns the derivative of the polynomial <CODE>x</CODE> with respect to the
indeterminate <CODE>X</CODE>.
</DL>
@ -303,10 +303,10 @@ input/output).
<DT><CODE>void fprint (cl_ostream stream, const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX303"></A>
<A NAME="IDX304"></A>
<DT><CODE>cl_ostream operator&#60;&#60; (cl_ostream stream, const cl_UP&#38; x)</CODE>
<DD>
<A NAME="IDX304"></A>
<A NAME="IDX305"></A>
Prints the univariate polynomial <CODE>x</CODE> on the <CODE>stream</CODE>. The output may
depend on the global printer settings in the variable
<CODE>cl_default_print_flags</CODE>.
@ -324,26 +324,26 @@ The following functions return special polynomials.
<DT><CODE>cl_UP_I cl_tschebychev (sintL n)</CODE>
<DD>
<A NAME="IDX305"></A>
<A NAME="IDX306"></A>
<A NAME="IDX307"></A>
Returns the n-th Tchebychev polynomial (n &#62;= 0).
<DT><CODE>cl_UP_I cl_hermite (sintL n)</CODE>
<DD>
<A NAME="IDX307"></A>
<A NAME="IDX308"></A>
<A NAME="IDX309"></A>
Returns the n-th Hermite polynomial (n &#62;= 0).
<DT><CODE>cl_UP_RA cl_legendre (sintL n)</CODE>
<DD>
<A NAME="IDX309"></A>
<A NAME="IDX310"></A>
<A NAME="IDX311"></A>
Returns the n-th Legendre polynomial (n &#62;= 0).
<DT><CODE>cl_UP_I cl_laguerre (sintL n)</CODE>
<DD>
<A NAME="IDX311"></A>
<A NAME="IDX312"></A>
<A NAME="IDX313"></A>
Returns the n-th Laguerre polynomial (n &#62;= 0).
</DL>

4
doc/cln_toc.html

@ -1,6 +1,6 @@
<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from cln.texi on 5 May 2000 -->
<!-- Created by texi2html 1.56k from cln.texi on 19 May 2000 -->
<TITLE>CLN, a Class Library for Numbers - Table of Contents</TITLE>
</HEAD>
@ -118,7 +118,7 @@
<LI><A NAME="TOC74" HREF="cln_13.html#SEC74">Index</A>
</UL>
<P><HR><P>
This document was generated on 5 May 2000 using
This document was generated on 19 May 2000 using
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>&nbsp;1.56k.
</BODY>
</HTML>
Loading…
Cancel
Save