[BACK]Return to INSTALL CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp

Diff for /OpenXM_contrib/gmp/Attic/INSTALL between version 1.1 and 1.1.1.3

version 1.1, 2000/01/10 15:35:21 version 1.1.1.3, 2003/08/25 16:05:54
Line 1 
Line 1 
 INSTALLING GMP  Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 ==============  
   
   This file is part of the GNU MP Library.
   
   The GNU MP Library is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation; either version 2.1 of the License, or (at your
   option) any later version.
   
   The GNU MP Library is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
   License for more details.
   
   You should have received a copy of the GNU Lesser General Public License
   along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
   
   
   
   
   
                             INSTALLING GNU MP
                             =================
   
   
 These instructions are only for the impatient.  Others should read the install  These instructions are only for the impatient.  Others should read the install
 instructions in the manual, gmp.info.  Use "info -f gmp.info", or, if you  instructions in gmp.info.  Use
 don't have info, use type "C-h i g (gmp.info)Top" in emacs.  
   
 Here are short instructions how to install MP, and some examples that help you          info -f ./gmp.info
 get started using MP.  
   
 First, you need to compile, and optionally install, MP.  Since you're  or in emacs
 impatient, try this:  
   
         ./configure; make          C-u C-h i gmp.info
   
 If that fails, or you care about the performance of MP, you need to read the  
 full instructions in the chapter "Installing MP", in the manual.  
   
 Next, you need to try some small test programs, for example the ones below.  Here are some brief instructions on how to install GMP, and some examples to
   help you get started using it.  First you need to compile.  Since you're
   impatient, try this
   
 In MP programs, all variables need to be initialized before they are assigned,          ./configure
 and cleared out before program flow leaves the scope in which it was declared.          make
 Here is an example of a program that reads two numbers from the command line,  
 multiplies them, and prints the result to stdout.  
   
   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.
   
   Optionally, you can install with the following.  This will be to /usr/local by
   default, and you'll probably need to be "root" to be able to write there.
   
           make install
   
   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 <stdio.h>
     #include <gmp.h>         /* All MP programs need to include gmp.h */      #include <gmp.h>         /* All GMP programs need to include gmp.h */
   
     main (int argc, char **argv)      main (int argc, char **argv)
     {      {
       mpz_t a, b, p;        mpz_t a, b, p;
   
         if (argc != 3)
           {
             printf ("Usage: %s <number> <number>\n", argv[0]);
             return 1;
           }
   
       /* Initialize variables */        /* Initialize variables */
       mpz_init (a);        mpz_init (a);
       mpz_init (b);        mpz_init (b);
Line 42  multiplies them, and prints the result to stdout.
Line 83  multiplies them, and prints the result to stdout.
       /* Multiply a and b and put the result in p */        /* Multiply a and b and put the result in p */
       mpz_mul (p, a, b);        mpz_mul (p, a, b);
   
       /* Print p in base 10 */        /* Print p in decimal */
       mpz_out_str (stdout, 10, p);        gmp_printf ("%Zd\n", p);
       fputc ('\n', stdout);  
   
       /* Clear out variables */        /* Clear out variables */
       mpz_clear (a);        mpz_clear (a);
       mpz_clear (b);        mpz_clear (b);
       mpz_clear (p);        mpz_clear (p);
       exit (0);        return 0;
     }      }
   
   
 In practice, that example would be written like this instead:  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 <stdio.h>
     #include <gmp.h>      #include <gmp.h>
   
Line 63  In practice, that example would be written like this i
Line 106  In practice, that example would be written like this i
     {      {
       mpz_t a, b, p;        mpz_t a, b, p;
   
         if (argc != 3)
           {
             printf ("Usage: %s <number> <number>\n", argv[0]);
             return 1;
           }
   
       /* Initialize and assign a and b from base 10 strings in argv */        /* Initialize and assign a and b from base 10 strings in argv */
       mpz_init_set_str (a, argv[1], 10);        mpz_init_set_str (a, argv[1], 10);
       mpz_init_set_str (b, argv[2], 10);        mpz_init_set_str (b, argv[2], 10);
Line 72  In practice, that example would be written like this i
Line 121  In practice, that example would be written like this i
       /* Multiply a and b and put the result in p */        /* Multiply a and b and put the result in p */
       mpz_mul (p, a, b);        mpz_mul (p, a, b);
   
       /* Print p in base 10 */        /* Print p in decimal */
       mpz_out_str (stdout, 10, p);        gmp_printf ("%Zd\n", p);
       fputc ('\n', stdout);  
   
       /* Since we're about to exit, no need to clear out variables */        /* Since we're about to exit, no need to clear out variables */
       exit (0);        return 0;
     }      }
   
 Finally, you have to compile your test program, and link it with the MP  
 library.  Assuming your working directory is still the gmp source directory,  
 type:  
   
         gcc -g -I. example.c libgmp.a  Now you have to compile your test program, and link it with the GMP library.
   Assuming your working directory is still the gmp build 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:  Now try to run the example:
   
         a.out 98365871231256752134 319378318340103345227          ./a.out 98365871231256752134 319378318340103345227
         31415926535897932384618573336104570964418          31415926535897932384618573336104570964418
   
 The functions used here all operate on the domain of signed integers.  The functions used here all operate on signed integers, and have names
 Functions operating on that domain have names starting with "mpz_".  There are  starting with "mpz_".  There are many more such functions than used in these
 many more such functions than used in these examples.  See the chapter  examples.  See the chapter "Integer Functions" in the manual for a complete
 "Integer Functions" in the manual, for a complete list.  list.
   
 There are two other main classes of functions in MP.  They operate on rational  There are two other main classes of functions in GMP.  They operate on
 numbers and floating-point numbers, respectively.  The chapters "Rational  rational numbers and floating-point numbers, respectively.  The chapters
 Number Functions", and "Floating-point Functions" documents these classes.  "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 run a set of tests, do "make check".  This will take a while.
   
 To create the printable documentation from the texinfo source, type "make  To create the printable documentation from the texinfo source, type "make
 dvi".  This requires the "tex" command to be available in your search path.  gmp.dvi" or "make gmp.ps".  This requires various "tex" commands.
   
 To install the library, do "make install".  If you decide to use GMP, it is a good idea you at least read the chapter "GMP
   
 If you decide to use MP, It is a good idea you read at least the chapter "MP  
 Basics" in the manual.  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.
   
 Known Build Problems  
 --------------------  
   
 Note that GCC 2.7.2 (as well as 2.6.3) for the RS/6000 and PowerPC can not  
 be used to compile GMP, due to a bug in GCC.  If you want to use GCC, you  
 need to apply the patch at the end of this file, or use a later version of  
 the compiler.  
   
 If you are on a Sequent Symmetry, use GAS instead of the system's assembler  ----------------
 due to the latter's serious bugs.  Local variables:
   mode: text
 The system compiler on NeXT is a massacred and old gcc, even if the  fill-column: 78
 compiler calls itself cc.  This compiler cannot be used to build GMP.  You  End:
 need to get a real gcc, and install that before you compile GMP.  (NeXT  
 might have fixed this in newer releases of their system.)  
   
 Please report other problems to bug-gmp@prep.ai.mit.edu.  
   
   
 Patch to apply to GCC 2.6.3 and 2.7.2:  
   
 *** config/rs6000/rs6000.md     Sun Feb 11 08:22:11 1996  
 --- config/rs6000/rs6000.md.new Sun Feb 18 03:33:37 1996  
 ***************  
 *** 920,926 ****  
      (set (match_operand:SI 0 "gpc_reg_operand" "=r")  
         (not:SI (match_dup 1)))]  
     ""  
 !   "nor. %0,%2,%1"  
     [(set_attr "type" "compare")])  
   
   (define_insn ""  
 --- 920,926 ----  
      (set (match_operand:SI 0 "gpc_reg_operand" "=r")  
         (not:SI (match_dup 1)))]  
     ""  
 !   "nor. %0,%1,%1"  
     [(set_attr "type" "compare")])  
   
   (define_insn ""  

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

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