+++ /dev/null
-
- INSTALLING GNU MP
- =================
-
-
-These instructions are only for the impatient. Others should read the install
-instructions in the manual, gmp.info. Use
-
- info -f ./gmp.info
-
-or in emacs
-
- C-u C-h i gmp.info
-
-
-Here are some brief instructions on how to install GMP, and some examples to
-help you get started using GMP.
-
-First, you need to compile, and optionally install, GMP. Since you're
-impatient, try this:
-
- ./configure; make
-
-If that fails, or you care about the performance of GMP, you need to read the
-full instructions in the chapter "Installing GMP", in the manual.
-
-Next, try some small test programs, for example the ones below.
-
-In GMP programs, all variables need to be initialized before they are
-assigned, and cleared out before program flow leaves the scope in which they
-were declared. Here is an example program that reads two numbers from the
-command line, multiplies them, and prints the result to stdout.
-
-
- #include <stdio.h>
- #include <gmp.h> /* All GMP programs need to include gmp.h */
-
- main (int argc, char **argv)
- {
- mpz_t a, b, p;
-
- if (argc != 3)
- { printf ("Usage: %s <number> <number>\n", argv[0]); exit (1); }
-
- /* Initialize variables */
- mpz_init (a);
- mpz_init (b);
- mpz_init (p);
-
- /* Assign a and b from base 10 strings in argv */
- mpz_set_str (a, argv[1], 10);
- mpz_set_str (b, argv[2], 10);
-
- /* Multiply a and b and put the result in p */
- mpz_mul (p, a, b);
-
- /* Print p in base 10 */
- mpz_out_str (stdout, 10, p);
- fputc ('\n', stdout);
-
- /* Clear out variables */
- mpz_clear (a);
- mpz_clear (b);
- mpz_clear (p);
- exit (0);
- }
-
-
-This might look tedious, with all the initializing and clearing. Fortunately
-some of these operations can be combined, and other operations can often be
-avoided. An experienced GMP user might write:
-
-
- #include <stdio.h>
- #include <gmp.h>
-
- main (int argc, char **argv)
- {
- mpz_t a, b, p;
-
- if (argc != 3)
- { printf ("Usage: %s <number> <number>\n", argv[0]); exit (1); }
-
- /* Initialize and assign a and b from base 10 strings in argv */
- mpz_init_set_str (a, argv[1], 10);
- mpz_init_set_str (b, argv[2], 10);
- /* Initialize p */
- mpz_init (p);
-
- /* Multiply a and b and put the result in p */
- mpz_mul (p, a, b);
-
- /* Print p in base 10 */
- mpz_out_str (stdout, 10, p);
- fputc ('\n', stdout);
-
- /* Since we're about to exit, no need to clear out variables */
- exit (0);
- }
-
-
-Now you have to compile your test program, and link it with the GMP library.
-Assuming your working directory is still the gmp source directory, and your
-source file is called example.c, enter:
-
- gcc -g -I. example.c .libs/libgmp.a
-
-After installing, the command becomes: "gcc -g example.c -lgmp". Also, GMP is
-libtool based so you can use that to link if you want.
-
-Now try to run the example:
-
- ./a.out 98365871231256752134 319378318340103345227
- 31415926535897932384618573336104570964418
-
-The functions used here all operate on signed integers, and have names
-starting with "mpz_". There are many more such functions than used in these
-examples. See the chapter "Integer Functions" in the manual, for a complete
-list.
-
-There are two other main classes of functions in GMP. They operate on
-rational numbers and floating-point numbers, respectively. The chapters
-"Rational Number Functions", and "Floating-point Functions" document these
-classes.
-
-To run a set of tests, do "make check". This will take a while.
-
-To create the printable documentation from the texinfo source, type "make
-gmp.dvi" or "make gmp.ps". This requires various "tex" commands.
-
-To install the library, do "make install" (then you can use -lgmp instead of
-.libs/libgmp.a).
-
-If you decide to use GMP, it is a good idea you at least read the chapter "GMP
-Basics" in the manual.
-
-Some known build problems are noted in the "Installing GMP" chapter of
-the manual. Please report other problems to bug-gmp@gnu.org.
-
-
-
-----------------
-Local variables:
-mode: text
-fill-column: 78
-End: