|
|
@ -1,5 +1,4 @@ |
|
|
|
This is Info file cln.info, produced by Makeinfo version 1.68 from the |
|
|
|
input file cln.texi. |
|
|
|
This is cln.info, produced by makeinfo version 4.0 from cln.texi. |
|
|
|
|
|
|
|
This file documents CLN, a Class Library for Numbers. |
|
|
|
|
|
|
@ -41,7 +40,8 @@ File: cln.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) |
|
|
|
* Customizing:: |
|
|
|
* Index:: |
|
|
|
|
|
|
|
-- The Detailed Node Listing -- |
|
|
|
|
|
|
|
--- The Detailed Node Listing --- |
|
|
|
|
|
|
|
Installation |
|
|
|
|
|
|
@ -56,6 +56,10 @@ Prerequisites |
|
|
|
* Make utility:: |
|
|
|
* Sed utility:: |
|
|
|
|
|
|
|
Building the library |
|
|
|
|
|
|
|
* Using the GNU MP Library:: |
|
|
|
|
|
|
|
Ordinary number types |
|
|
|
|
|
|
|
* Exact numbers:: |
|
|
@ -384,6 +388,30 @@ If you use `g++' version egcs-2.91.x (egcs-1.1) on Sparc, you cannot |
|
|
|
use `--enable-shared' because `g++' would miscompile parts of the |
|
|
|
library. |
|
|
|
|
|
|
|
* Menu: |
|
|
|
|
|
|
|
* Using the GNU MP Library:: |
|
|
|
|
|
|
|
|
|
|
|
File: cln.info, Node: Using the GNU MP Library, Prev: Building the library, Up: Building the library |
|
|
|
|
|
|
|
Using the GNU MP Library |
|
|
|
------------------------ |
|
|
|
|
|
|
|
Starting with version 1.0.4, CLN may be configured to make use of a |
|
|
|
preinstalled `gmp' library. Please make sure that you have at least |
|
|
|
`gmp' version 3.0 installed since earlier versions are unsupported and |
|
|
|
likely not to work. Enabling this feature by calling `configure' with |
|
|
|
the option `--with-gmp' is known to be quite a boost for CLN's |
|
|
|
performance. |
|
|
|
|
|
|
|
If you have installed the `gmp' library and its header file in some |
|
|
|
place where your compiler cannot find it by default, you must help |
|
|
|
`configure' by setting `CPPFLAGS' and `LDFLAGS'. Here is an example: |
|
|
|
|
|
|
|
$ CC="gcc" CFLAGS="-O2" CXX="g++" CXXFLAGS="-O2 -fno-exceptions" \ |
|
|
|
CPPFLAGS="-I/opt/gmp/include" LDFLAGS="-L/opt/gmp/lib" ./configure --with-gmp |
|
|
|
|
|
|
|
|
|
|
|
File: cln.info, Node: Installing the library, Next: Cleaning up, Prev: Building the library, Up: Installation |
|
|
|
|
|
|
@ -812,7 +840,7 @@ Each of the classes `cl_N', `cl_R', `cl_RA', `cl_F', `cl_SF', `cl_FF', |
|
|
|
The class `cl_I' doesn't define a `/' operation because in the C/C++ |
|
|
|
language this operator, applied to integral types, denotes the `floor' |
|
|
|
or `truncate' operation (which one of these, is implementation |
|
|
|
dependent). (*Note Rounding functions::) Instead, `cl_I' defines an |
|
|
|
dependent). (*Note Rounding functions::.) Instead, `cl_I' defines an |
|
|
|
"exact quotient" function: |
|
|
|
|
|
|
|
`cl_I exquo (const cl_I& x, const cl_I& y)' |
|
|
@ -2002,7 +2030,8 @@ with the macro CL_IO_STDIO being defined, `cl_istream' is the same as |
|
|
|
`istream&'. |
|
|
|
|
|
|
|
The variable |
|
|
|
`cl_istream cl_stdin' contains the standard input stream. |
|
|
|
`cl_istream cl_stdin' |
|
|
|
contains the standard input stream. |
|
|
|
|
|
|
|
These are the simple input functions: |
|
|
|
|
|
|
@ -2102,10 +2131,12 @@ CLN with the macro CL_IO_STDIO being defined, `cl_ostream' is the same |
|
|
|
as `ostream&'. |
|
|
|
|
|
|
|
The variable |
|
|
|
`cl_ostream cl_stdout' contains the standard output stream. |
|
|
|
`cl_ostream cl_stdout' |
|
|
|
contains the standard output stream. |
|
|
|
|
|
|
|
The variable |
|
|
|
`cl_ostream cl_stderr' contains the standard error output stream. |
|
|
|
`cl_ostream cl_stderr' |
|
|
|
contains the standard error output stream. |
|
|
|
|
|
|
|
These are the simple output functions: |
|
|
|
|
|
|
@ -3332,17 +3363,21 @@ Index |
|
|
|
* cl_default_print_flags: Customizing I/O. |
|
|
|
* cl_default_random_state: Random number generators. |
|
|
|
* cl_DF: Floating-point numbers. |
|
|
|
* cl_DF_fdiv_t: Rounding functions. |
|
|
|
* cl_double_approx (): Conversions. |
|
|
|
* cl_equal_hashcode (): Comparisons. |
|
|
|
* cl_eulerconst (): Euler gamma. |
|
|
|
* cl_F <1>: Floating-point numbers. |
|
|
|
* cl_F: Ordinary number types. |
|
|
|
* cl_F_fdiv_t: Rounding functions. |
|
|
|
* cl_FF: Floating-point numbers. |
|
|
|
* cl_FF_fdiv_t: Rounding functions. |
|
|
|
* cl_find_modint_ring (): Modular integer rings. |
|
|
|
* cl_find_univpoly_ring (): Univariate polynomial rings. |
|
|
|
* cl_float: Conversion to floating-point numbers. |
|
|
|
* cl_float (): Conversion to floating-point numbers. |
|
|
|
* cl_float_approx (): Conversions. |
|
|
|
* cl_float_format (): Conversion to floating-point numbers. |
|
|
|
* cl_float_format_t: Conversion to floating-point numbers. |
|
|
|
* cl_free_hook (): Customizing the memory allocator. |
|
|
|
* cl_hermite (): Special polynomials. |
|
|
|
* cl_I_to_int (): Conversions. |
|
|
@ -3353,13 +3388,18 @@ Index |
|
|
|
* cl_laguerre (): Special polynomials. |
|
|
|
* cl_legendre (): Special polynomials. |
|
|
|
* cl_LF: Floating-point numbers. |
|
|
|
* cl_LF_fdiv_t: Rounding functions. |
|
|
|
* cl_malloc_hook (): Customizing the memory allocator. |
|
|
|
* cl_modint_ring: Modular integer rings. |
|
|
|
* cl_N: Ordinary number types. |
|
|
|
* cl_number: Ordinary number types. |
|
|
|
* cl_pi: Trigonometric functions. |
|
|
|
* cl_pi (): Trigonometric functions. |
|
|
|
* cl_R: Ordinary number types. |
|
|
|
* cl_R_fdiv_t: Rounding functions. |
|
|
|
* cl_RA: Ordinary number types. |
|
|
|
* cl_random_state: Random number generators. |
|
|
|
* cl_SF: Floating-point numbers. |
|
|
|
* cl_SF_fdiv_t: Rounding functions. |
|
|
|
* cl_string (): Strings. |
|
|
|
* cl_symbol (): Symbols. |
|
|
|
* cl_tschebychev (): Special polynomials. |
|
|
@ -3389,7 +3429,6 @@ Index |
|
|
|
* dpb (): Logical functions. |
|
|
|
* equal () <1>: Symbols. |
|
|
|
* equal (): Strings. |
|
|
|
* etract (): Functions on modular integers. |
|
|
|
* Euler's constant: Euler gamma. |
|
|
|
* evenp (): Logical functions. |
|
|
|
* exact number: Exact numbers. |
|
|
@ -3428,6 +3467,7 @@ Index |
|
|
|
* garbage collection <1>: Garbage collection. |
|
|
|
* garbage collection: Memory efficiency. |
|
|
|
* gcd (): Number theoretic functions. |
|
|
|
* GMP <1>: Using the GNU MP Library. |
|
|
|
* GMP: Introduction. |
|
|
|
* header files: Include files. |
|
|
|
* Hermite polynomial: Special polynomials. |
|
|
@ -3464,7 +3504,7 @@ Index |
|
|
|
* logp (): Number theoretic functions. |
|
|
|
* logtest (): Logical functions. |
|
|
|
* logxor (): Logical functions. |
|
|
|
* make: C++ compiler. |
|
|
|
* make: Make utility. |
|
|
|
* mask_field (): Logical functions. |
|
|
|
* max (): Comparisons. |
|
|
|
* min (): Comparisons. |
|
|
@ -3551,9 +3591,10 @@ Index |
|
|
|
* reference counting: Memory efficiency. |
|
|
|
* rem (): Rounding functions. |
|
|
|
* representation: Internal and printed representation. |
|
|
|
* retract (): Functions on modular integers. |
|
|
|
* Riemann's zeta: Riemann zeta. |
|
|
|
* ring: Modular integer rings. |
|
|
|
* ring (): Functions on univariate polynomials. |
|
|
|
* ring () <1>: Functions on univariate polynomials. |
|
|
|
* ring (): Functions on modular integers. |
|
|
|
* rootp (): Roots. |
|
|
|
* round1 (): Rounding functions. |
|
|
@ -3562,9 +3603,9 @@ Index |
|
|
|
* rounding error: Floating-point numbers. |
|
|
|
* Rubik's cube: Conversions. |
|
|
|
* scale_float (): Functions on floating-point numbers. |
|
|
|
* Schönhage-Strassen: Speed efficiency. |
|
|
|
* Schönhage-Strassen multiplication <1>: Speed efficiency. |
|
|
|
* Schönhage-Strassen multiplication: Introduction. |
|
|
|
* sed: Make utility. |
|
|
|
* sed: Sed utility. |
|
|
|
* set_coeff (): Functions on univariate polynomials. |
|
|
|
* signum (): Elementary functions. |
|
|
|
* sin (): Trigonometric functions. |
|
|
@ -3598,79 +3639,80 @@ Index |
|
|
|
|
|
|
|
|
|
|
|
Tag Table: |
|
|
|
Node: Top957 |
|
|
|
Node: Introduction3124 |
|
|
|
Node: Installation5646 |
|
|
|
Node: Prerequisites5940 |
|
|
|
Node: C++ compiler6138 |
|
|
|
Node: Make utility6853 |
|
|
|
Node: Sed utility7039 |
|
|
|
Node: Building the library7359 |
|
|
|
Node: Installing the library10541 |
|
|
|
Node: Cleaning up11264 |
|
|
|
Node: Ordinary number types11589 |
|
|
|
Node: Exact numbers13936 |
|
|
|
Node: Floating-point numbers15101 |
|
|
|
Node: Complex numbers18680 |
|
|
|
Node: Conversions19177 |
|
|
|
Node: Functions on numbers22643 |
|
|
|
Node: Constructing numbers23346 |
|
|
|
Node: Constructing integers23718 |
|
|
|
Node: Constructing rational numbers24008 |
|
|
|
Node: Constructing floating-point numbers24483 |
|
|
|
Node: Constructing complex numbers25603 |
|
|
|
Node: Elementary functions25967 |
|
|
|
Node: Elementary rational functions28434 |
|
|
|
Node: Elementary complex functions29006 |
|
|
|
Node: Comparisons29834 |
|
|
|
Node: Rounding functions31733 |
|
|
|
Node: Roots37510 |
|
|
|
Node: Transcendental functions39391 |
|
|
|
Node: Exponential and logarithmic functions39947 |
|
|
|
Node: Trigonometric functions41964 |
|
|
|
Node: Hyperbolic functions45315 |
|
|
|
Node: Euler gamma47388 |
|
|
|
Node: Riemann zeta48304 |
|
|
|
Node: Functions on integers48860 |
|
|
|
Node: Logical functions49148 |
|
|
|
Node: Number theoretic functions55101 |
|
|
|
Node: Combinatorial functions56468 |
|
|
|
Node: Functions on floating-point numbers57146 |
|
|
|
Node: Conversion functions60377 |
|
|
|
Node: Conversion to floating-point numbers60657 |
|
|
|
Node: Conversion to rational numbers62880 |
|
|
|
Node: Random number generators63934 |
|
|
|
Node: Obfuscating operators65608 |
|
|
|
Node: Input/Output67338 |
|
|
|
Node: Internal and printed representation67548 |
|
|
|
Node: Input functions70090 |
|
|
|
Node: Output functions74641 |
|
|
|
Node: Rings78377 |
|
|
|
Node: Modular integers80301 |
|
|
|
Node: Modular integer rings80501 |
|
|
|
Node: Functions on modular integers82591 |
|
|
|
Node: Symbolic data types85601 |
|
|
|
Node: Strings85864 |
|
|
|
Node: Symbols86929 |
|
|
|
Node: Univariate polynomials87831 |
|
|
|
Node: Univariate polynomial rings88089 |
|
|
|
Node: Functions on univariate polynomials93043 |
|
|
|
Node: Special polynomials96824 |
|
|
|
Node: Internals97544 |
|
|
|
Node: Why C++ ?97758 |
|
|
|
Node: Memory efficiency99258 |
|
|
|
Node: Speed efficiency99956 |
|
|
|
Node: Garbage collection101040 |
|
|
|
Node: Using the library101867 |
|
|
|
Node: Compiler options102401 |
|
|
|
Node: Include files103319 |
|
|
|
Node: An Example106960 |
|
|
|
Node: Debugging support110110 |
|
|
|
Node: Customizing112460 |
|
|
|
Node: Error handling112688 |
|
|
|
Node: Floating-point underflow113262 |
|
|
|
Node: Customizing I/O113901 |
|
|
|
Node: Customizing the memory allocator114194 |
|
|
|
Node: Index115151 |
|
|
|
Node: Top931 |
|
|
|
Node: Introduction3153 |
|
|
|
Node: Installation5675 |
|
|
|
Node: Prerequisites5969 |
|
|
|
Node: C++ compiler6167 |
|
|
|
Node: Make utility6882 |
|
|
|
Node: Sed utility7068 |
|
|
|
Node: Building the library7388 |
|
|
|
Node: Using the GNU MP Library10609 |
|
|
|
Node: Installing the library11487 |
|
|
|
Node: Cleaning up12210 |
|
|
|
Node: Ordinary number types12535 |
|
|
|
Node: Exact numbers14882 |
|
|
|
Node: Floating-point numbers16047 |
|
|
|
Node: Complex numbers19626 |
|
|
|
Node: Conversions20123 |
|
|
|
Node: Functions on numbers23589 |
|
|
|
Node: Constructing numbers24292 |
|
|
|
Node: Constructing integers24664 |
|
|
|
Node: Constructing rational numbers24954 |
|
|
|
Node: Constructing floating-point numbers25429 |
|
|
|
Node: Constructing complex numbers26549 |
|
|
|
Node: Elementary functions26913 |
|
|
|
Node: Elementary rational functions29382 |
|
|
|
Node: Elementary complex functions29954 |
|
|
|
Node: Comparisons30782 |
|
|
|
Node: Rounding functions32681 |
|
|
|
Node: Roots38458 |
|
|
|
Node: Transcendental functions40339 |
|
|
|
Node: Exponential and logarithmic functions40895 |
|
|
|
Node: Trigonometric functions42912 |
|
|
|
Node: Hyperbolic functions46263 |
|
|
|
Node: Euler gamma48336 |
|
|
|
Node: Riemann zeta49252 |
|
|
|
Node: Functions on integers49808 |
|
|
|
Node: Logical functions50096 |
|
|
|
Node: Number theoretic functions56049 |
|
|
|
Node: Combinatorial functions57416 |
|
|
|
Node: Functions on floating-point numbers58094 |
|
|
|
Node: Conversion functions61325 |
|
|
|
Node: Conversion to floating-point numbers61605 |
|
|
|
Node: Conversion to rational numbers63828 |
|
|
|
Node: Random number generators64882 |
|
|
|
Node: Obfuscating operators66556 |
|
|
|
Node: Input/Output68286 |
|
|
|
Node: Internal and printed representation68496 |
|
|
|
Node: Input functions71038 |
|
|
|
Node: Output functions75589 |
|
|
|
Node: Rings79325 |
|
|
|
Node: Modular integers81249 |
|
|
|
Node: Modular integer rings81449 |
|
|
|
Node: Functions on modular integers83539 |
|
|
|
Node: Symbolic data types86549 |
|
|
|
Node: Strings86812 |
|
|
|
Node: Symbols87877 |
|
|
|
Node: Univariate polynomials88779 |
|
|
|
Node: Univariate polynomial rings89037 |
|
|
|
Node: Functions on univariate polynomials93991 |
|
|
|
Node: Special polynomials97772 |
|
|
|
Node: Internals98492 |
|
|
|
Node: Why C++ ?98706 |
|
|
|
Node: Memory efficiency100206 |
|
|
|
Node: Speed efficiency100904 |
|
|
|
Node: Garbage collection101988 |
|
|
|
Node: Using the library102815 |
|
|
|
Node: Compiler options103349 |
|
|
|
Node: Include files104267 |
|
|
|
Node: An Example107908 |
|
|
|
Node: Debugging support111058 |
|
|
|
Node: Customizing113408 |
|
|
|
Node: Error handling113636 |
|
|
|
Node: Floating-point underflow114210 |
|
|
|
Node: Customizing I/O114849 |
|
|
|
Node: Customizing the memory allocator115142 |
|
|
|
Node: Index116099 |
|
|
|
|
|
|
|
End Tag Table |