Hex Artifact Content
Not logged in

Artifact ec1ba90d9392822a03f789d25e2f0fa191932379:


0000: 2f 2a 20 44 65 66 69 6e 69 74 69 6f 6e 73 20 66  /* Definitions f
0010: 6f 72 20 47 4e 55 20 6d 75 6c 74 69 70 6c 65 20  or GNU multiple 
0020: 70 72 65 63 69 73 69 6f 6e 20 66 75 6e 63 74 69  precision functi
0030: 6f 6e 73 2e 20 20 20 2d 2a 2d 20 6d 6f 64 65 3a  ons.   -*- mode:
0040: 20 63 20 2d 2a 2d 0a 0a 43 6f 70 79 72 69 67 68   c -*-..Copyrigh
0050: 74 20 31 39 39 31 2c 20 31 39 39 33 2c 20 31 39  t 1991, 1993, 19
0060: 39 34 2c 20 31 39 39 35 2c 20 31 39 39 36 2c 20  94, 1995, 1996, 
0070: 31 39 39 37 2c 20 31 39 39 39 2c 20 32 30 30 30  1997, 1999, 2000
0080: 2c 20 32 30 30 31 2c 20 32 30 30 32 0a 46 72 65  , 2001, 2002.Fre
0090: 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  e Software Found
00a0: 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 54 68 69  ation, Inc...Thi
00b0: 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f  s file is part o
00c0: 66 20 74 68 65 20 47 4e 55 20 4d 50 20 4c 69 62  f the GNU MP Lib
00d0: 72 61 72 79 2e 0a 0a 54 68 65 20 47 4e 55 20 4d  rary...The GNU M
00e0: 50 20 4c 69 62 72 61 72 79 20 69 73 20 66 72 65  P Library is fre
00f0: 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20  e software; you 
0100: 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65  can redistribute
0110: 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66   it and/or modif
0120: 79 0a 69 74 20 75 6e 64 65 72 20 74 68 65 20 74  y.it under the t
0130: 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20  erms of the GNU 
0140: 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50  Lesser General P
0150: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73  ublic License as
0160: 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 74 68   published by.th
0170: 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20  e Free Software 
0180: 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68  Foundation; eith
0190: 65 72 20 76 65 72 73 69 6f 6e 20 32 2e 31 20 6f  er version 2.1 o
01a0: 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f  f the License, o
01b0: 72 20 28 61 74 20 79 6f 75 72 0a 6f 70 74 69 6f  r (at your.optio
01c0: 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72  n) any later ver
01d0: 73 69 6f 6e 2e 0a 0a 54 68 65 20 47 4e 55 20 4d  sion...The GNU M
01e0: 50 20 4c 69 62 72 61 72 79 20 69 73 20 64 69 73  P Library is dis
01f0: 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20  tributed in the 
0200: 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c  hope that it wil
0210: 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74  l be useful, but
0220: 0a 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52  .WITHOUT ANY WAR
0230: 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65  RANTY; without e
0240: 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20  ven the implied 
0250: 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43  warranty of MERC
0260: 48 41 4e 54 41 42 49 4c 49 54 59 0a 6f 72 20 46  HANTABILITY.or F
0270: 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52  ITNESS FOR A PAR
0280: 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e  TICULAR PURPOSE.
0290: 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 4c 65    See the GNU Le
02a0: 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62  sser General Pub
02b0: 6c 69 63 0a 4c 69 63 65 6e 73 65 20 66 6f 72 20  lic.License for 
02c0: 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 59  more details...Y
02d0: 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72  ou should have r
02e0: 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f  eceived a copy o
02f0: 66 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72  f the GNU Lesser
0300: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20   General Public 
0310: 4c 69 63 65 6e 73 65 0a 61 6c 6f 6e 67 20 77 69  License.along wi
0320: 74 68 20 74 68 65 20 47 4e 55 20 4d 50 20 4c 69  th the GNU MP Li
0330: 62 72 61 72 79 3b 20 73 65 65 20 74 68 65 20 66  brary; see the f
0340: 69 6c 65 20 43 4f 50 59 49 4e 47 2e 4c 49 42 2e  ile COPYING.LIB.
0350: 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20    If not, write 
0360: 74 6f 0a 74 68 65 20 46 72 65 65 20 53 6f 66 74  to.the Free Soft
0370: 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c  ware Foundation,
0380: 20 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 6c 65   Inc., 59 Temple
0390: 20 50 6c 61 63 65 20 2d 20 53 75 69 74 65 20 33   Place - Suite 3
03a0: 33 30 2c 20 42 6f 73 74 6f 6e 2c 0a 4d 41 20 30  30, Boston,.MA 0
03b0: 32 31 31 31 2d 31 33 30 37 2c 20 55 53 41 2e 20  2111-1307, USA. 
03c0: 2a 2f 0a 0a 23 69 66 6e 64 65 66 20 5f 5f 47 4d  */..#ifndef __GM
03d0: 50 5f 48 5f 5f 0a 0a 23 69 66 20 64 65 66 69 6e  P_H__..#if defin
03e0: 65 64 20 28 5f 5f 63 70 6c 75 73 70 6c 75 73 29  ed (__cplusplus)
03f0: 0a 23 69 6e 63 6c 75 64 65 20 3c 69 6f 73 66 77  .#include <iosfw
0400: 64 3e 20 20 20 2f 2a 20 66 6f 72 20 69 73 74 72  d>   /* for istr
0410: 65 61 6d 2c 20 6f 73 74 72 65 61 6d 20 2a 2f 0a  eam, ostream */.
0420: 23 65 6e 64 69 66 0a 0a 0a 2f 2a 20 49 6e 73 74  #endif.../* Inst
0430: 61 6e 74 69 61 74 65 64 20 62 79 20 63 6f 6e 66  antiated by conf
0440: 69 67 75 72 65 2e 20 2a 2f 0a 23 69 66 20 21 20  igure. */.#if ! 
0450: 5f 5f 47 4d 50 5f 57 49 54 48 49 4e 5f 43 4f 4e  __GMP_WITHIN_CON
0460: 46 49 47 55 52 45 0a 23 64 65 66 69 6e 65 20 5f  FIGURE.#define _
0470: 5f 47 4d 50 5f 42 49 54 53 5f 50 45 52 5f 4d 50  _GMP_BITS_PER_MP
0480: 5f 4c 49 4d 42 20 20 20 20 20 20 20 20 20 20 20  _LIMB           
0490: 20 20 40 42 49 54 53 5f 50 45 52 5f 4d 50 5f 4c    @BITS_PER_MP_L
04a0: 49 4d 42 40 0a 23 64 65 66 69 6e 65 20 5f 5f 47  IMB@.#define __G
04b0: 4d 50 5f 48 41 56 45 5f 48 4f 53 54 5f 43 50 55  MP_HAVE_HOST_CPU
04c0: 5f 46 41 4d 49 4c 59 5f 70 6f 77 65 72 20 20 20  _FAMILY_power   
04d0: 40 48 41 56 45 5f 48 4f 53 54 5f 43 50 55 5f 46  @HAVE_HOST_CPU_F
04e0: 41 4d 49 4c 59 5f 70 6f 77 65 72 40 0a 23 64 65  AMILY_power@.#de
04f0: 66 69 6e 65 20 5f 5f 47 4d 50 5f 48 41 56 45 5f  fine __GMP_HAVE_
0500: 48 4f 53 54 5f 43 50 55 5f 46 41 4d 49 4c 59 5f  HOST_CPU_FAMILY_
0510: 70 6f 77 65 72 70 63 20 40 48 41 56 45 5f 48 4f  powerpc @HAVE_HO
0520: 53 54 5f 43 50 55 5f 46 41 4d 49 4c 59 5f 70 6f  ST_CPU_FAMILY_po
0530: 77 65 72 70 63 40 0a 23 64 65 66 69 6e 65 20 47  werpc@.#define G
0540: 4d 50 5f 4c 49 4d 42 5f 42 49 54 53 20 20 20 20  MP_LIMB_BITS    
0550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0560: 20 20 40 42 49 54 53 5f 50 45 52 5f 4d 50 5f 4c    @BITS_PER_MP_L
0570: 49 4d 42 40 0a 23 64 65 66 69 6e 65 20 47 4d 50  IMB@.#define GMP
0580: 5f 4e 41 49 4c 5f 42 49 54 53 20 20 20 20 20 20  _NAIL_BITS      
0590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05a0: 40 47 4d 50 5f 4e 41 49 4c 5f 42 49 54 53 40 0a  @GMP_NAIL_BITS@.
05b0: 23 65 6e 64 69 66 0a 23 64 65 66 69 6e 65 20 47  #endif.#define G
05c0: 4d 50 5f 4e 55 4d 42 5f 42 49 54 53 20 20 20 20  MP_NUMB_BITS    
05d0: 20 28 47 4d 50 5f 4c 49 4d 42 5f 42 49 54 53 20   (GMP_LIMB_BITS 
05e0: 2d 20 47 4d 50 5f 4e 41 49 4c 5f 42 49 54 53 29  - GMP_NAIL_BITS)
05f0: 0a 23 64 65 66 69 6e 65 20 47 4d 50 5f 4e 55 4d  .#define GMP_NUM
0600: 42 5f 4d 41 53 4b 20 20 20 20 20 28 28 7e 28 6d  B_MASK     ((~(m
0610: 70 5f 6c 69 6d 62 5f 74 29 20 30 29 20 3e 3e 20  p_limb_t) 0) >> 
0620: 47 4d 50 5f 4e 41 49 4c 5f 42 49 54 53 29 0a 23  GMP_NAIL_BITS).#
0630: 64 65 66 69 6e 65 20 47 4d 50 5f 4e 55 4d 42 5f  define GMP_NUMB_
0640: 4d 41 58 20 20 20 20 20 20 47 4d 50 5f 4e 55 4d  MAX      GMP_NUM
0650: 42 5f 4d 41 53 4b 0a 23 64 65 66 69 6e 65 20 47  B_MASK.#define G
0660: 4d 50 5f 4e 41 49 4c 5f 4d 41 53 4b 20 20 20 20  MP_NAIL_MASK    
0670: 20 28 7e 20 47 4d 50 5f 4e 55 4d 42 5f 4d 41 53   (~ GMP_NUMB_MAS
0680: 4b 29 0a 0a 0a 2f 2a 20 54 68 65 20 66 6f 6c 6c  K).../* The foll
0690: 6f 77 69 6e 67 20 28 65 76 65 72 79 74 68 69 6e  owing (everythin
06a0: 67 20 75 6e 64 65 72 20 69 66 6e 64 65 66 20 5f  g under ifndef _
06b0: 5f 47 4e 55 5f 4d 50 5f 5f 29 20 6d 75 73 74 20  _GNU_MP__) must 
06c0: 62 65 20 69 64 65 6e 74 69 63 61 6c 20 69 6e 0a  be identical in.
06d0: 20 20 20 67 6d 70 2e 68 20 61 6e 64 20 6d 70 2e     gmp.h and mp.
06e0: 68 20 74 6f 20 61 6c 6c 6f 77 20 62 6f 74 68 20  h to allow both 
06f0: 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69  to be included i
0700: 6e 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e  n an application
0710: 20 6f 72 20 64 75 72 69 6e 67 0a 20 20 20 74 68   or during.   th
0720: 65 20 6c 69 62 72 61 72 79 20 62 75 69 6c 64 2e  e library build.
0730: 20 20 2a 2f 0a 23 69 66 6e 64 65 66 20 5f 5f 47    */.#ifndef __G
0740: 4e 55 5f 4d 50 5f 5f 0a 23 64 65 66 69 6e 65 20  NU_MP__.#define 
0750: 5f 5f 47 4e 55 5f 4d 50 5f 5f 20 34 0a 0a 23 64  __GNU_MP__ 4..#d
0760: 65 66 69 6e 65 20 5f 5f 6e 65 65 64 5f 73 69 7a  efine __need_siz
0770: 65 5f 74 20 20 2f 2a 20 74 65 6c 6c 20 67 63 63  e_t  /* tell gcc
0780: 20 73 74 64 64 65 66 2e 68 20 77 65 20 6f 6e 6c   stddef.h we onl
0790: 79 20 77 61 6e 74 20 73 69 7a 65 5f 74 20 2a 2f  y want size_t */
07a0: 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 5f  .#if defined (__
07b0: 63 70 6c 75 73 70 6c 75 73 29 0a 23 69 6e 63 6c  cplusplus).#incl
07c0: 75 64 65 20 3c 63 73 74 64 64 65 66 3e 20 20 20  ude <cstddef>   
07d0: 20 20 2f 2a 20 66 6f 72 20 73 69 7a 65 5f 74 20    /* for size_t 
07e0: 2a 2f 0a 23 65 6c 73 65 0a 23 69 6e 63 6c 75 64  */.#else.#includ
07f0: 65 20 3c 73 74 64 64 65 66 2e 68 3e 20 20 20 20  e <stddef.h>    
0800: 2f 2a 20 66 6f 72 20 73 69 7a 65 5f 74 20 2a 2f  /* for size_t */
0810: 0a 23 65 6e 64 69 66 0a 23 75 6e 64 65 66 20 5f  .#endif.#undef _
0820: 5f 6e 65 65 64 5f 73 69 7a 65 5f 74 0a 0a 2f 2a  _need_size_t../*
0830: 20 49 6e 73 74 61 6e 74 69 61 74 65 64 20 62 79   Instantiated by
0840: 20 63 6f 6e 66 69 67 75 72 65 2e 20 2a 2f 0a 23   configure. */.#
0850: 69 66 20 21 20 5f 5f 47 4d 50 5f 57 49 54 48 49  if ! __GMP_WITHI
0860: 4e 5f 43 4f 4e 46 49 47 55 52 45 0a 40 44 45 46  N_CONFIGURE.@DEF
0870: 4e 5f 4c 4f 4e 47 5f 4c 4f 4e 47 5f 4c 49 4d 42  N_LONG_LONG_LIMB
0880: 40 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f  @.#define __GMP_
0890: 4c 49 42 47 4d 50 5f 44 4c 4c 20 20 40 4c 49 42  LIBGMP_DLL  @LIB
08a0: 47 4d 50 5f 44 4c 4c 40 0a 23 65 6e 64 69 66 0a  GMP_DLL@.#endif.
08b0: 0a 0a 2f 2a 20 5f 5f 53 54 44 43 5f 5f 20 2d 20  ../* __STDC__ - 
08c0: 73 6f 6d 65 20 41 4e 53 49 20 63 6f 6d 70 69 6c  some ANSI compil
08d0: 65 72 73 20 64 65 66 69 6e 65 20 74 68 69 73 20  ers define this 
08e0: 6f 6e 6c 79 20 74 6f 20 30 2c 20 68 65 6e 63 65  only to 0, hence
08f0: 20 74 68 65 20 75 73 65 20 6f 66 0a 20 20 20 20   the use of.    
0900: 20 20 20 22 64 65 66 69 6e 65 64 22 20 61 6e 64     "defined" and
0910: 20 6e 6f 74 20 22 5f 5f 53 54 44 43 5f 5f 2d 30   not "__STDC__-0
0920: 22 2e 20 20 49 6e 20 70 61 72 74 69 63 75 6c 61  ".  In particula
0930: 72 20 53 75 6e 20 77 6f 72 6b 73 68 6f 70 20 43  r Sun workshop C
0940: 20 35 2e 30 0a 20 20 20 20 20 20 20 73 65 74 73   5.0.       sets
0950: 20 5f 5f 53 54 44 43 5f 5f 20 74 6f 20 30 2c 20   __STDC__ to 0, 
0960: 62 75 74 20 72 65 71 75 69 72 65 73 20 22 23 23  but requires "##
0970: 22 20 66 6f 72 20 74 6f 6b 65 6e 20 70 61 73 74  " for token past
0980: 69 6e 67 2e 0a 0a 20 20 20 5f 41 49 58 20 2d 20  ing...   _AIX - 
0990: 67 6e 75 20 61 6e 73 69 64 65 63 6c 2e 68 20 61  gnu ansidecl.h a
09a0: 73 73 65 72 74 73 20 74 68 61 74 20 61 6c 6c 20  sserts that all 
09b0: 6b 6e 6f 77 6e 20 41 49 58 20 63 6f 6d 70 69 6c  known AIX compil
09c0: 65 72 73 20 61 72 65 20 41 4e 53 49 20 62 75 74  ers are ANSI but
09d0: 0a 20 20 20 20 20 20 20 64 6f 6e 27 74 20 61 6c  .       don't al
09e0: 77 61 79 73 20 64 65 66 69 6e 65 20 5f 5f 53 54  ways define __ST
09f0: 44 43 5f 5f 2e 0a 0a 20 20 20 5f 6d 69 70 73 20  DC__...   _mips 
0a00: 2d 20 67 6e 75 20 61 6e 73 69 64 65 63 6c 2e 68  - gnu ansidecl.h
0a10: 20 73 61 79 73 20 74 68 65 20 52 49 53 43 2f 4f   says the RISC/O
0a20: 53 20 4d 49 50 53 20 63 6f 6d 70 69 6c 65 72 20  S MIPS compiler 
0a30: 69 73 20 41 4e 53 49 20 69 6e 20 53 56 52 34 0a  is ANSI in SVR4.
0a40: 20 20 20 20 20 20 20 6d 6f 64 65 2c 20 62 75 74         mode, but
0a50: 20 64 6f 65 73 6e 27 74 20 64 65 66 69 6e 65 20   doesn't define 
0a60: 5f 5f 53 54 44 43 5f 5f 2e 0a 0a 20 20 20 5f 4d  __STDC__...   _M
0a70: 53 43 5f 56 45 52 20 2d 20 4d 69 63 72 6f 73 6f  SC_VER - Microso
0a80: 66 74 20 43 20 69 73 20 41 4e 53 49 2c 20 62 75  ft C is ANSI, bu
0a90: 74 20 5f 5f 53 54 44 43 5f 5f 20 69 73 20 75 6e  t __STDC__ is un
0aa0: 64 65 66 69 6e 65 64 20 75 6e 6c 65 73 73 20 74  defined unless t
0ab0: 68 65 20 2f 5a 61 0a 20 20 20 20 20 20 20 6f 70  he /Za.       op
0ac0: 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 28 69  tion is given (i
0ad0: 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 27  n which case it'
0ae0: 73 20 31 29 2e 0a 0a 20 20 20 5f 57 49 4e 33 32  s 1)...   _WIN32
0af0: 20 2d 20 74 65 73 74 65 64 20 66 6f 72 20 62 79   - tested for by
0b00: 20 67 6e 75 20 61 6e 73 69 64 65 63 6c 2e 68 2c   gnu ansidecl.h,
0b10: 20 6e 6f 20 64 6f 75 62 74 20 6f 6e 20 74 68 65   no doubt on the
0b20: 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74   assumption that
0b30: 0a 20 20 20 20 20 20 61 6c 6c 20 77 33 32 20 63  .      all w32 c
0b40: 6f 6d 70 69 6c 65 72 73 20 61 72 65 20 61 6e 73  ompilers are ans
0b50: 69 2e 20 20 2a 2f 0a 0a 23 69 66 20 20 64 65 66  i.  */..#if  def
0b60: 69 6e 65 64 20 28 5f 5f 53 54 44 43 5f 5f 29 20  ined (__STDC__) 
0b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b90: 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64 20 28  \.  || defined (
0ba0: 5f 5f 63 70 6c 75 73 70 6c 75 73 29 20 20 20 20  __cplusplus)    
0bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0bc0: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 7c 7c            \.  ||
0bd0: 20 64 65 66 69 6e 65 64 20 28 5f 41 49 58 29 20   defined (_AIX) 
0be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c00: 20 20 20 20 5c 0a 20 20 7c 7c 20 64 65 66 69 6e      \.  || defin
0c10: 65 64 20 28 5f 5f 44 45 43 43 29 20 20 20 20 20  ed (__DECC)     
0c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
0c40: 20 20 7c 7c 20 28 64 65 66 69 6e 65 64 20 28 5f    || (defined (_
0c50: 5f 6d 69 70 73 29 20 26 26 20 64 65 66 69 6e 65  _mips) && define
0c60: 64 20 28 5f 53 59 53 54 59 50 45 5f 53 56 52 34  d (_SYSTYPE_SVR4
0c70: 29 29 20 20 20 20 20 20 5c 0a 20 20 7c 7c 20 64  ))      \.  || d
0c80: 65 66 69 6e 65 64 20 28 5f 4d 53 43 5f 56 45 52  efined (_MSC_VER
0c90: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  )               
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cb0: 20 20 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64    \.  || defined
0cc0: 20 28 5f 57 49 4e 33 32 29 0a 23 64 65 66 69 6e   (_WIN32).#defin
0cd0: 65 20 5f 5f 47 4d 50 5f 48 41 56 45 5f 43 4f 4e  e __GMP_HAVE_CON
0ce0: 53 54 20 20 20 20 20 20 20 20 31 0a 23 64 65 66  ST        1.#def
0cf0: 69 6e 65 20 5f 5f 47 4d 50 5f 48 41 56 45 5f 50  ine __GMP_HAVE_P
0d00: 52 4f 54 4f 54 59 50 45 53 20 20 20 31 0a 23 64  ROTOTYPES   1.#d
0d10: 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 48 41 56 45  efine __GMP_HAVE
0d20: 5f 54 4f 4b 45 4e 5f 50 41 53 54 45 20 20 31 0a  _TOKEN_PASTE  1.
0d30: 23 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 5f 5f  #else.#define __
0d40: 47 4d 50 5f 48 41 56 45 5f 43 4f 4e 53 54 20 20  GMP_HAVE_CONST  
0d50: 20 20 20 20 20 20 30 0a 23 64 65 66 69 6e 65 20        0.#define 
0d60: 5f 5f 47 4d 50 5f 48 41 56 45 5f 50 52 4f 54 4f  __GMP_HAVE_PROTO
0d70: 54 59 50 45 53 20 20 20 30 0a 23 64 65 66 69 6e  TYPES   0.#defin
0d80: 65 20 5f 5f 47 4d 50 5f 48 41 56 45 5f 54 4f 4b  e __GMP_HAVE_TOK
0d90: 45 4e 5f 50 41 53 54 45 20 20 30 0a 23 65 6e 64  EN_PASTE  0.#end
0da0: 69 66 0a 0a 0a 23 69 66 20 5f 5f 47 4d 50 5f 48  if...#if __GMP_H
0db0: 41 56 45 5f 43 4f 4e 53 54 0a 23 64 65 66 69 6e  AVE_CONST.#defin
0dc0: 65 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74 20 20 20  e __gmp_const   
0dd0: 63 6f 6e 73 74 0a 23 64 65 66 69 6e 65 20 5f 5f  const.#define __
0de0: 67 6d 70 5f 73 69 67 6e 65 64 20 20 73 69 67 6e  gmp_signed  sign
0df0: 65 64 0a 23 65 6c 73 65 0a 23 64 65 66 69 6e 65  ed.#else.#define
0e00: 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74 0a 23 64 65   __gmp_const.#de
0e10: 66 69 6e 65 20 5f 5f 67 6d 70 5f 73 69 67 6e 65  fine __gmp_signe
0e20: 64 0a 23 65 6e 64 69 66 0a 0a 0a 2f 2a 20 5f 5f  d.#endif.../* __
0e30: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 73 75 70  GMP_DECLSPEC sup
0e40: 70 6f 72 74 73 20 57 69 6e 64 6f 77 73 20 44 4c  ports Windows DL
0e50: 4c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 6c 69  L versions of li
0e60: 62 67 6d 70 2c 20 61 6e 64 20 69 73 20 65 6d 70  bgmp, and is emp
0e70: 74 79 20 69 6e 0a 20 20 20 61 6c 6c 20 6f 74 68  ty in.   all oth
0e80: 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73  er circumstances
0e90: 2e 0a 0a 20 20 20 57 68 65 6e 20 63 6f 6d 70 69  ...   When compi
0ea0: 6c 69 6e 67 20 6f 62 6a 65 63 74 73 20 66 6f 72  ling objects for
0eb0: 20 6c 69 62 67 6d 70 2c 20 5f 5f 47 4d 50 5f 44   libgmp, __GMP_D
0ec0: 45 43 4c 53 50 45 43 20 69 73 20 61 6e 20 65 78  ECLSPEC is an ex
0ed0: 70 6f 72 74 20 64 69 72 65 63 74 69 76 65 2c 0a  port directive,.
0ee0: 20 20 20 6f 72 20 77 68 65 6e 20 63 6f 6d 70 69     or when compi
0ef0: 6c 69 6e 67 20 66 6f 72 20 61 6e 20 61 70 70 6c  ling for an appl
0f00: 69 63 61 74 69 6f 6e 20 69 74 27 73 20 61 6e 20  ication it's an 
0f10: 69 6d 70 6f 72 74 20 64 69 72 65 63 74 69 76 65  import directive
0f20: 2e 20 20 54 68 65 20 74 77 6f 0a 20 20 20 63 61  .  The two.   ca
0f30: 73 65 73 20 61 72 65 20 64 69 66 66 65 72 65 6e  ses are differen
0f40: 74 69 61 74 65 64 20 62 79 20 5f 5f 47 4d 50 5f  tiated by __GMP_
0f50: 57 49 54 48 49 4e 5f 47 4d 50 20 64 65 66 69 6e  WITHIN_GMP defin
0f60: 65 64 20 62 79 20 74 68 65 20 47 4d 50 20 4d 61  ed by the GMP Ma
0f70: 6b 65 66 69 6c 65 73 0a 20 20 20 28 61 6e 64 20  kefiles.   (and 
0f80: 6e 6f 74 20 64 65 66 69 6e 65 64 20 66 72 6f 6d  not defined from
0f90: 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 29   an application)
0fa0: 2e 0a 0a 20 20 20 5f 5f 47 4d 50 5f 44 45 43 4c  ...   __GMP_DECL
0fb0: 53 50 45 43 5f 58 58 20 69 73 20 73 69 6d 69 6c  SPEC_XX is simil
0fc0: 61 72 6c 79 20 75 73 65 64 20 66 6f 72 20 6c 69  arly used for li
0fd0: 62 67 6d 70 78 78 2e 20 20 5f 5f 47 4d 50 5f 57  bgmpxx.  __GMP_W
0fe0: 49 54 48 49 4e 5f 47 4d 50 58 58 0a 20 20 20 69  ITHIN_GMPXX.   i
0ff0: 6e 64 69 63 61 74 65 73 20 77 68 65 6e 20 62 75  ndicates when bu
1000: 69 6c 64 69 6e 67 20 6c 69 62 67 6d 70 78 78 2c  ilding libgmpxx,
1010: 20 61 6e 64 20 69 6e 20 74 68 61 74 20 63 61 73   and in that cas
1020: 65 20 6c 69 62 67 6d 70 78 78 20 66 75 6e 63 74  e libgmpxx funct
1030: 69 6f 6e 73 20 61 72 65 0a 20 20 20 65 78 70 6f  ions are.   expo
1040: 72 74 73 2c 20 62 75 74 20 6c 69 62 67 6d 70 20  rts, but libgmp 
1050: 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20  functions which 
1060: 6d 69 67 68 74 20 67 65 74 20 63 61 6c 6c 65 64  might get called
1070: 20 61 72 65 20 69 6d 70 6f 72 74 73 2e 0a 0a 20   are imports... 
1080: 20 20 6c 69 62 6d 70 2e 6c 61 20 75 73 65 73 20    libmp.la uses 
1090: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 2c 20  __GMP_DECLSPEC, 
10a0: 6a 75 73 74 20 61 73 20 69 66 20 69 74 20 77 65  just as if it we
10b0: 72 65 20 6c 69 62 67 6d 70 2e 6c 61 2e 20 20 6c  re libgmp.la.  l
10c0: 69 62 67 6d 70 20 61 6e 64 0a 20 20 20 6c 69 62  ibgmp and.   lib
10d0: 6d 70 20 64 6f 6e 27 74 20 63 61 6c 6c 20 65 61  mp don't call ea
10e0: 63 68 20 6f 74 68 65 72 2c 20 73 6f 20 74 68 65  ch other, so the
10f0: 72 65 27 73 20 6e 6f 20 63 6f 6e 66 6c 69 63 74  re's no conflict
1100: 20 6f 72 20 63 6f 6e 66 75 73 69 6f 6e 2e 0a 0a   or confusion...
1110: 20 20 20 4c 69 62 74 6f 6f 6c 20 44 4c 4c 5f 45     Libtool DLL_E
1120: 58 50 4f 52 54 20 64 65 66 69 6e 65 20 69 73 20  XPORT define is 
1130: 6e 6f 74 20 75 73 65 64 2e 0a 0a 20 20 20 54 68  not used...   Th
1140: 65 72 65 27 73 20 6e 6f 20 61 74 74 65 6d 70 74  ere's no attempt
1150: 20 74 6f 20 73 75 70 70 6f 72 74 20 47 4d 50 20   to support GMP 
1160: 62 75 69 6c 74 20 62 6f 74 68 20 73 74 61 74 69  built both stati
1170: 63 20 61 6e 64 20 44 4c 4c 2e 20 20 44 6f 69 6e  c and DLL.  Doin
1180: 67 20 73 6f 0a 20 20 20 77 6f 75 6c 64 20 6d 65  g so.   would me
1190: 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20  an applications 
11a0: 77 6f 75 6c 64 20 68 61 76 65 20 74 6f 20 74 65  would have to te
11b0: 6c 6c 20 75 73 20 77 68 69 63 68 20 6f 66 20 74  ll us which of t
11c0: 68 65 20 74 77 6f 20 69 73 20 67 6f 69 6e 67 0a  he two is going.
11d0: 20 20 20 74 6f 20 62 65 20 75 73 65 64 20 77 68     to be used wh
11e0: 65 6e 20 6c 69 6e 6b 69 6e 67 2c 20 61 6e 64 20  en linking, and 
11f0: 74 68 61 74 20 73 65 65 6d 73 20 76 65 72 79 20  that seems very 
1200: 74 65 64 69 6f 75 73 20 61 6e 64 20 65 72 72 6f  tedious and erro
1210: 72 20 70 72 6f 6e 65 20 69 66 0a 20 20 20 75 73  r prone if.   us
1220: 69 6e 67 20 47 4d 50 20 62 79 20 68 61 6e 64 2c  ing GMP by hand,
1230: 20 61 6e 64 20 65 71 75 61 6c 6c 79 20 74 65 64   and equally ted
1240: 69 6f 75 73 20 66 72 6f 6d 20 61 20 70 61 63 6b  ious from a pack
1250: 61 67 65 20 73 69 6e 63 65 20 61 75 74 6f 63 6f  age since autoco
1260: 6e 66 20 61 6e 64 0a 20 20 20 61 75 74 6f 6d 61  nf and.   automa
1270: 6b 65 20 64 6f 6e 27 74 20 67 69 76 65 20 6d 75  ke don't give mu
1280: 63 68 20 68 65 6c 70 2e 0a 0a 20 20 20 5f 5f 47  ch help...   __G
1290: 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 73 20 72  MP_DECLSPEC is r
12a0: 65 71 75 69 72 65 64 20 6f 6e 20 61 6c 6c 20 64  equired on all d
12b0: 6f 63 75 6d 65 6e 74 65 64 20 67 6c 6f 62 61 6c  ocumented global
12c0: 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 0a 20   functions and. 
12d0: 20 20 76 61 72 69 61 62 6c 65 73 2c 20 74 68 65    variables, the
12e0: 20 76 61 72 69 6f 75 73 20 69 6e 74 65 72 6e 61   various interna
12f0: 6c 73 20 69 6e 20 67 6d 70 2d 69 6d 70 6c 2e 68  ls in gmp-impl.h
1300: 20 65 74 63 20 63 61 6e 20 62 65 20 6c 65 66 74   etc can be left
1310: 20 75 6e 61 64 6f 72 6e 65 64 2e 0a 20 20 20 42   unadorned..   B
1320: 75 74 20 69 6e 74 65 72 6e 61 6c 73 20 75 73 65  ut internals use
1330: 64 20 62 79 20 74 68 65 20 74 65 73 74 20 70 72  d by the test pr
1340: 6f 67 72 61 6d 73 20 6f 72 20 73 70 65 65 64 20  ograms or speed 
1350: 6d 65 61 73 75 72 69 6e 67 20 70 72 6f 67 72 61  measuring progra
1360: 6d 73 0a 20 20 20 73 68 6f 75 6c 64 20 68 61 76  ms.   should hav
1370: 65 20 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  e __GMP_DECLSPEC
1380: 2c 20 61 6e 64 20 63 65 72 74 61 69 6e 6c 79 20  , and certainly 
1390: 63 6f 6e 73 74 61 6e 74 73 20 6f 72 20 76 61 72  constants or var
13a0: 69 61 62 6c 65 73 20 6d 75 73 74 0a 20 20 20 68  iables must.   h
13b0: 61 76 65 20 69 74 20 6f 72 20 74 68 65 20 77 72  ave it or the wr
13c0: 6f 6e 67 20 61 64 64 72 65 73 73 20 77 69 6c 6c  ong address will
13d0: 20 62 65 20 72 65 73 6f 6c 76 65 64 2e 20 20 2a   be resolved.  *
13e0: 2f 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28  /..#if defined (
13f0: 5f 5f 47 4e 55 43 5f 5f 29 0a 23 64 65 66 69 6e  __GNUC__).#defin
1400: 65 20 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  e __GMP_DECLSPEC
1410: 5f 45 58 50 4f 52 54 20 20 5f 5f 64 65 63 6c 73  _EXPORT  __decls
1420: 70 65 63 28 5f 5f 64 6c 6c 65 78 70 6f 72 74 5f  pec(__dllexport_
1430: 5f 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50  _).#define __GMP
1440: 5f 44 45 43 4c 53 50 45 43 5f 49 4d 50 4f 52 54  _DECLSPEC_IMPORT
1450: 20 20 5f 5f 64 65 63 6c 73 70 65 63 28 5f 5f 64    __declspec(__d
1460: 6c 6c 69 6d 70 6f 72 74 5f 5f 29 0a 23 65 6e 64  llimport__).#end
1470: 69 66 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28  if.#if defined (
1480: 5f 4d 53 43 5f 56 45 52 29 20 7c 7c 20 64 65 66  _MSC_VER) || def
1490: 69 6e 65 64 20 28 5f 5f 42 4f 52 4c 41 4e 44 43  ined (__BORLANDC
14a0: 5f 5f 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d  __).#define __GM
14b0: 50 5f 44 45 43 4c 53 50 45 43 5f 45 58 50 4f 52  P_DECLSPEC_EXPOR
14c0: 54 20 20 5f 5f 64 65 63 6c 73 70 65 63 28 64 6c  T  __declspec(dl
14d0: 6c 65 78 70 6f 72 74 29 0a 23 64 65 66 69 6e 65  lexport).#define
14e0: 20 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f   __GMP_DECLSPEC_
14f0: 49 4d 50 4f 52 54 20 20 5f 5f 64 65 63 6c 73 70  IMPORT  __declsp
1500: 65 63 28 64 6c 6c 69 6d 70 6f 72 74 29 0a 23 65  ec(dllimport).#e
1510: 6e 64 69 66 0a 23 69 66 64 65 66 20 5f 5f 57 41  ndif.#ifdef __WA
1520: 54 43 4f 4d 43 5f 5f 0a 23 64 65 66 69 6e 65 20  TCOMC__.#define 
1530: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f 45  __GMP_DECLSPEC_E
1540: 58 50 4f 52 54 20 20 5f 5f 65 78 70 6f 72 74 0a  XPORT  __export.
1550: 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 44 45  #define __GMP_DE
1560: 43 4c 53 50 45 43 5f 49 4d 50 4f 52 54 20 20 5f  CLSPEC_IMPORT  _
1570: 5f 69 6d 70 6f 72 74 0a 23 65 6e 64 69 66 0a 23  _import.#endif.#
1580: 69 66 64 65 66 20 5f 5f 49 42 4d 43 5f 5f 0a 23  ifdef __IBMC__.#
1590: 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 44 45 43  define __GMP_DEC
15a0: 4c 53 50 45 43 5f 45 58 50 4f 52 54 20 20 5f 45  LSPEC_EXPORT  _E
15b0: 78 70 6f 72 74 0a 23 64 65 66 69 6e 65 20 5f 5f  xport.#define __
15c0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f 49 4d 50  GMP_DECLSPEC_IMP
15d0: 4f 52 54 20 20 5f 49 6d 70 6f 72 74 0a 23 65 6e  ORT  _Import.#en
15e0: 64 69 66 0a 0a 23 69 66 20 5f 5f 47 4d 50 5f 4c  dif..#if __GMP_L
15f0: 49 42 47 4d 50 5f 44 4c 4c 0a 23 69 66 20 5f 5f  IBGMP_DLL.#if __
1600: 47 4d 50 5f 57 49 54 48 49 4e 5f 47 4d 50 0a 2f  GMP_WITHIN_GMP./
1610: 2a 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f 20 67  * compiling to g
1620: 6f 20 69 6e 74 6f 20 61 20 44 4c 4c 20 6c 69 62  o into a DLL lib
1630: 67 6d 70 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f  gmp */.#define _
1640: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 20 5f  _GMP_DECLSPEC  _
1650: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f 45 58  _GMP_DECLSPEC_EX
1660: 50 4f 52 54 0a 23 65 6c 73 65 0a 2f 2a 20 63 6f  PORT.#else./* co
1670: 6d 70 69 6c 69 6e 67 20 74 6f 20 67 6f 20 69 6e  mpiling to go in
1680: 74 6f 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f  to an applicatio
1690: 6e 20 77 68 69 63 68 20 77 69 6c 6c 20 6c 69 6e  n which will lin
16a0: 6b 20 74 6f 20 61 20 44 4c 4c 20 6c 69 62 67 6d  k to a DLL libgm
16b0: 70 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f 5f 47  p */.#define __G
16c0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 20 5f 5f 47  MP_DECLSPEC  __G
16d0: 4d 50 5f 44 45 43 4c 53 50 45 43 5f 49 4d 50 4f  MP_DECLSPEC_IMPO
16e0: 52 54 0a 23 65 6e 64 69 66 0a 23 65 6c 73 65 0a  RT.#endif.#else.
16f0: 2f 2a 20 61 6c 6c 20 6f 74 68 65 72 20 63 61 73  /* all other cas
1700: 65 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f 5f  es */.#define __
1710: 47 4d 50 5f 44 45 43 4c 53 50 45 43 0a 23 65 6e  GMP_DECLSPEC.#en
1720: 64 69 66 0a 0a 0a 23 69 66 64 65 66 20 5f 53 48  dif...#ifdef _SH
1730: 4f 52 54 5f 4c 49 4d 42 0a 74 79 70 65 64 65 66  ORT_LIMB.typedef
1740: 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 09 09 6d   unsigned int..m
1750: 70 5f 6c 69 6d 62 5f 74 3b 0a 74 79 70 65 64 65  p_limb_t;.typede
1760: 66 20 69 6e 74 09 09 09 6d 70 5f 6c 69 6d 62 5f  f int...mp_limb_
1770: 73 69 67 6e 65 64 5f 74 3b 0a 23 65 6c 73 65 0a  signed_t;.#else.
1780: 23 69 66 64 65 66 20 5f 4c 4f 4e 47 5f 4c 4f 4e  #ifdef _LONG_LON
1790: 47 5f 4c 49 4d 42 0a 74 79 70 65 64 65 66 20 75  G_LIMB.typedef u
17a0: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e  nsigned long lon
17b0: 67 20 69 6e 74 09 6d 70 5f 6c 69 6d 62 5f 74 3b  g int.mp_limb_t;
17c0: 0a 74 79 70 65 64 65 66 20 6c 6f 6e 67 20 6c 6f  .typedef long lo
17d0: 6e 67 20 69 6e 74 09 09 6d 70 5f 6c 69 6d 62 5f  ng int..mp_limb_
17e0: 73 69 67 6e 65 64 5f 74 3b 0a 23 65 6c 73 65 0a  signed_t;.#else.
17f0: 74 79 70 65 64 65 66 20 75 6e 73 69 67 6e 65 64  typedef unsigned
1800: 20 6c 6f 6e 67 20 69 6e 74 09 6d 70 5f 6c 69 6d   long int.mp_lim
1810: 62 5f 74 3b 0a 74 79 70 65 64 65 66 20 6c 6f 6e  b_t;.typedef lon
1820: 67 20 69 6e 74 09 09 6d 70 5f 6c 69 6d 62 5f 73  g int..mp_limb_s
1830: 69 67 6e 65 64 5f 74 3b 0a 23 65 6e 64 69 66 0a  igned_t;.#endif.
1840: 23 65 6e 64 69 66 0a 0a 74 79 70 65 64 65 66 20  #endif..typedef 
1850: 6d 70 5f 6c 69 6d 62 5f 74 20 2a 09 09 6d 70 5f  mp_limb_t *..mp_
1860: 70 74 72 3b 0a 74 79 70 65 64 65 66 20 5f 5f 67  ptr;.typedef __g
1870: 6d 70 5f 63 6f 6e 73 74 20 6d 70 5f 6c 69 6d 62  mp_const mp_limb
1880: 5f 74 20 2a 09 6d 70 5f 73 72 63 70 74 72 3b 0a  _t *.mp_srcptr;.
1890: 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 43 52  #if defined (_CR
18a0: 41 59 29 20 26 26 20 21 20 64 65 66 69 6e 65 64  AY) && ! defined
18b0: 20 28 5f 43 52 41 59 4d 50 50 29 0a 2f 2a 20 70   (_CRAYMPP)./* p
18c0: 6c 61 69 6e 20 60 69 6e 74 27 20 69 73 20 6d 75  lain `int' is mu
18d0: 63 68 20 66 61 73 74 65 72 20 28 34 38 20 62 69  ch faster (48 bi
18e0: 74 73 29 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f  ts) */.#define _
18f0: 5f 47 4d 50 5f 4d 50 5f 53 49 5a 45 5f 54 5f 49  _GMP_MP_SIZE_T_I
1900: 4e 54 20 20 20 20 20 31 0a 74 79 70 65 64 65 66  NT     1.typedef
1910: 20 69 6e 74 09 09 09 6d 70 5f 73 69 7a 65 5f 74   int...mp_size_t
1920: 3b 0a 74 79 70 65 64 65 66 20 69 6e 74 09 09 09  ;.typedef int...
1930: 6d 70 5f 65 78 70 5f 74 3b 0a 23 65 6c 73 65 0a  mp_exp_t;.#else.
1940: 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 4d 50  #define __GMP_MP
1950: 5f 53 49 5a 45 5f 54 5f 49 4e 54 20 20 20 20 20  _SIZE_T_INT     
1960: 30 0a 74 79 70 65 64 65 66 20 6c 6f 6e 67 20 69  0.typedef long i
1970: 6e 74 09 09 6d 70 5f 73 69 7a 65 5f 74 3b 0a 74  nt..mp_size_t;.t
1980: 79 70 65 64 65 66 20 6c 6f 6e 67 20 69 6e 74 09  ypedef long int.
1990: 09 6d 70 5f 65 78 70 5f 74 3b 0a 23 65 6e 64 69  .mp_exp_t;.#endi
19a0: 66 0a 0a 74 79 70 65 64 65 66 20 73 74 72 75 63  f..typedef struc
19b0: 74 0a 7b 0a 20 20 69 6e 74 20 5f 6d 70 5f 61 6c  t.{.  int _mp_al
19c0: 6c 6f 63 3b 09 09 2f 2a 20 4e 75 6d 62 65 72 20  loc;../* Number 
19d0: 6f 66 20 2a 6c 69 6d 62 73 2a 20 61 6c 6c 6f 63  of *limbs* alloc
19e0: 61 74 65 64 20 61 6e 64 20 70 6f 69 6e 74 65 64  ated and pointed
19f0: 0a 09 09 09 09 20 20 20 74 6f 20 62 79 20 74 68  .....   to by th
1a00: 65 20 5f 6d 70 5f 64 20 66 69 65 6c 64 2e 20 20  e _mp_d field.  
1a10: 2a 2f 0a 20 20 69 6e 74 20 5f 6d 70 5f 73 69 7a  */.  int _mp_siz
1a20: 65 3b 09 09 09 2f 2a 20 61 62 73 28 5f 6d 70 5f  e;.../* abs(_mp_
1a30: 73 69 7a 65 29 20 69 73 20 74 68 65 20 6e 75 6d  size) is the num
1a40: 62 65 72 20 6f 66 20 6c 69 6d 62 73 20 74 68 65  ber of limbs the
1a50: 0a 09 09 09 09 20 20 20 6c 61 73 74 20 66 69 65  .....   last fie
1a60: 6c 64 20 70 6f 69 6e 74 73 20 74 6f 2e 20 20 49  ld points to.  I
1a70: 66 20 5f 6d 70 5f 73 69 7a 65 20 69 73 0a 09 09  f _mp_size is...
1a80: 09 09 20 20 20 6e 65 67 61 74 69 76 65 20 74 68  ..   negative th
1a90: 69 73 20 69 73 20 61 20 6e 65 67 61 74 69 76 65  is is a negative
1aa0: 20 6e 75 6d 62 65 72 2e 20 20 2a 2f 0a 20 20 6d   number.  */.  m
1ab0: 70 5f 6c 69 6d 62 5f 74 20 2a 5f 6d 70 5f 64 3b  p_limb_t *_mp_d;
1ac0: 09 09 2f 2a 20 50 6f 69 6e 74 65 72 20 74 6f 20  ../* Pointer to 
1ad0: 74 68 65 20 6c 69 6d 62 73 2e 20 20 2a 2f 0a 7d  the limbs.  */.}
1ae0: 20 5f 5f 6d 70 7a 5f 73 74 72 75 63 74 3b 0a 23   __mpz_struct;.#
1af0: 65 6e 64 69 66 20 2f 2a 20 5f 5f 47 4e 55 5f 4d  endif /* __GNU_M
1b00: 50 5f 5f 20 2a 2f 0a 0a 74 79 70 65 64 65 66 20  P__ */..typedef 
1b10: 5f 5f 6d 70 7a 5f 73 74 72 75 63 74 20 4d 50 5f  __mpz_struct MP_
1b20: 49 4e 54 3b 0a 74 79 70 65 64 65 66 20 5f 5f 6d  INT;.typedef __m
1b30: 70 7a 5f 73 74 72 75 63 74 20 6d 70 7a 5f 74 5b  pz_struct mpz_t[
1b40: 31 5d 3b 0a 0a 74 79 70 65 64 65 66 20 73 74 72  1];..typedef str
1b50: 75 63 74 0a 7b 0a 20 20 5f 5f 6d 70 7a 5f 73 74  uct.{.  __mpz_st
1b60: 72 75 63 74 20 5f 6d 70 5f 6e 75 6d 3b 0a 20 20  ruct _mp_num;.  
1b70: 5f 5f 6d 70 7a 5f 73 74 72 75 63 74 20 5f 6d 70  __mpz_struct _mp
1b80: 5f 64 65 6e 3b 0a 7d 20 5f 5f 6d 70 71 5f 73 74  _den;.} __mpq_st
1b90: 72 75 63 74 3b 0a 0a 74 79 70 65 64 65 66 20 5f  ruct;..typedef _
1ba0: 5f 6d 70 71 5f 73 74 72 75 63 74 20 4d 50 5f 52  _mpq_struct MP_R
1bb0: 41 54 3b 0a 74 79 70 65 64 65 66 20 5f 5f 6d 70  AT;.typedef __mp
1bc0: 71 5f 73 74 72 75 63 74 20 6d 70 71 5f 74 5b 31  q_struct mpq_t[1
1bd0: 5d 3b 0a 0a 74 79 70 65 64 65 66 20 73 74 72 75  ];..typedef stru
1be0: 63 74 0a 7b 0a 20 20 69 6e 74 20 5f 6d 70 5f 70  ct.{.  int _mp_p
1bf0: 72 65 63 3b 09 09 09 2f 2a 20 4d 61 78 20 70 72  rec;.../* Max pr
1c00: 65 63 69 73 69 6f 6e 2c 20 69 6e 20 6e 75 6d 62  ecision, in numb
1c10: 65 72 20 6f 66 20 60 6d 70 5f 6c 69 6d 62 5f 74  er of `mp_limb_t
1c20: 27 73 2e 0a 09 09 09 09 20 20 20 53 65 74 20 62  's......   Set b
1c30: 79 20 6d 70 66 5f 69 6e 69 74 20 61 6e 64 20 6d  y mpf_init and m
1c40: 6f 64 69 66 69 65 64 20 62 79 0a 09 09 09 09 20  odified by..... 
1c50: 20 20 6d 70 66 5f 73 65 74 5f 70 72 65 63 2e 20    mpf_set_prec. 
1c60: 20 54 68 65 20 61 72 65 61 20 70 6f 69 6e 74 65   The area pointe
1c70: 64 20 74 6f 20 62 79 20 74 68 65 0a 09 09 09 09  d to by the.....
1c80: 20 20 20 5f 6d 70 5f 64 20 66 69 65 6c 64 20 63     _mp_d field c
1c90: 6f 6e 74 61 69 6e 73 20 60 70 72 65 63 27 20 2b  ontains `prec' +
1ca0: 20 31 20 6c 69 6d 62 73 2e 20 20 2a 2f 0a 20 20   1 limbs.  */.  
1cb0: 69 6e 74 20 5f 6d 70 5f 73 69 7a 65 3b 09 09 09  int _mp_size;...
1cc0: 2f 2a 20 61 62 73 28 5f 6d 70 5f 73 69 7a 65 29  /* abs(_mp_size)
1cd0: 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f   is the number o
1ce0: 66 20 6c 69 6d 62 73 20 74 68 65 0a 09 09 09 09  f limbs the.....
1cf0: 20 20 20 6c 61 73 74 20 66 69 65 6c 64 20 70 6f     last field po
1d00: 69 6e 74 73 20 74 6f 2e 20 20 49 66 20 5f 6d 70  ints to.  If _mp
1d10: 5f 73 69 7a 65 20 69 73 0a 09 09 09 09 20 20 20  _size is.....   
1d20: 6e 65 67 61 74 69 76 65 20 74 68 69 73 20 69 73  negative this is
1d30: 20 61 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62   a negative numb
1d40: 65 72 2e 20 20 2a 2f 0a 20 20 6d 70 5f 65 78 70  er.  */.  mp_exp
1d50: 5f 74 20 5f 6d 70 5f 65 78 70 3b 09 09 2f 2a 20  _t _mp_exp;../* 
1d60: 45 78 70 6f 6e 65 6e 74 2c 20 69 6e 20 74 68 65  Exponent, in the
1d70: 20 62 61 73 65 20 6f 66 20 60 6d 70 5f 6c 69 6d   base of `mp_lim
1d80: 62 5f 74 27 2e 20 20 2a 2f 0a 20 20 6d 70 5f 6c  b_t'.  */.  mp_l
1d90: 69 6d 62 5f 74 20 2a 5f 6d 70 5f 64 3b 09 09 2f  imb_t *_mp_d;../
1da0: 2a 20 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 65  * Pointer to the
1db0: 20 6c 69 6d 62 73 2e 20 20 2a 2f 0a 7d 20 5f 5f   limbs.  */.} __
1dc0: 6d 70 66 5f 73 74 72 75 63 74 3b 0a 0a 2f 2a 20  mpf_struct;../* 
1dd0: 74 79 70 65 64 65 66 20 5f 5f 6d 70 66 5f 73 74  typedef __mpf_st
1de0: 72 75 63 74 20 4d 50 5f 46 4c 4f 41 54 3b 20 2a  ruct MP_FLOAT; *
1df0: 2f 0a 74 79 70 65 64 65 66 20 5f 5f 6d 70 66 5f  /.typedef __mpf_
1e00: 73 74 72 75 63 74 20 6d 70 66 5f 74 5b 31 5d 3b  struct mpf_t[1];
1e10: 0a 0a 2f 2a 20 41 76 61 69 6c 61 62 6c 65 20 72  ../* Available r
1e20: 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 67 65 6e  andom number gen
1e30: 65 72 61 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68  eration algorith
1e40: 6d 73 2e 20 20 2a 2f 0a 74 79 70 65 64 65 66 20  ms.  */.typedef 
1e50: 65 6e 75 6d 0a 7b 0a 20 20 47 4d 50 5f 52 41 4e  enum.{.  GMP_RAN
1e60: 44 5f 41 4c 47 5f 44 45 46 41 55 4c 54 20 3d 20  D_ALG_DEFAULT = 
1e70: 30 2c 0a 20 20 47 4d 50 5f 52 41 4e 44 5f 41 4c  0,.  GMP_RAND_AL
1e80: 47 5f 4c 43 20 3d 20 47 4d 50 5f 52 41 4e 44 5f  G_LC = GMP_RAND_
1e90: 41 4c 47 5f 44 45 46 41 55 4c 54 20 2f 2a 20 4c  ALG_DEFAULT /* L
1ea0: 69 6e 65 61 72 20 63 6f 6e 67 72 75 65 6e 74 69  inear congruenti
1eb0: 61 6c 2e 20 20 2a 2f 0a 7d 20 67 6d 70 5f 72 61  al.  */.} gmp_ra
1ec0: 6e 64 61 6c 67 5f 74 3b 0a 0a 2f 2a 20 4c 69 6e  ndalg_t;../* Lin
1ed0: 65 61 72 20 63 6f 6e 67 72 75 65 6e 74 69 61 6c  ear congruential
1ee0: 20 64 61 74 61 20 73 74 72 75 63 74 2e 20 20 2a   data struct.  *
1ef0: 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74  /.typedef struct
1f00: 20 7b 0a 20 20 6d 70 7a 5f 74 20 5f 6d 70 5f 61   {.  mpz_t _mp_a
1f10: 3b 09 09 09 2f 2a 20 4d 75 6c 74 69 70 6c 69 65  ;.../* Multiplie
1f20: 72 2e 20 2a 2f 0a 20 20 75 6e 73 69 67 6e 65 64  r. */.  unsigned
1f30: 20 6c 6f 6e 67 20 69 6e 74 20 5f 6d 70 5f 63 3b   long int _mp_c;
1f40: 09 2f 2a 20 41 64 64 65 72 2e 20 2a 2f 0a 20 20  ./* Adder. */.  
1f50: 6d 70 7a 5f 74 20 5f 6d 70 5f 6d 3b 09 09 09 2f  mpz_t _mp_m;.../
1f60: 2a 20 4d 6f 64 75 6c 75 73 20 28 76 61 6c 69 64  * Modulus (valid
1f70: 20 6f 6e 6c 79 20 69 66 20 6d 32 65 78 70 20 3d   only if m2exp =
1f80: 3d 20 30 29 2e 20 20 2a 2f 0a 20 20 75 6e 73 69  = 0).  */.  unsi
1f90: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 20 5f 6d  gned long int _m
1fa0: 70 5f 6d 32 65 78 70 3b 09 2f 2a 20 49 66 20 21  p_m2exp;./* If !
1fb0: 3d 20 30 2c 20 6d 6f 64 75 6c 75 73 20 69 73 20  = 0, modulus is 
1fc0: 32 20 5e 20 6d 32 65 78 70 2e 20 20 2a 2f 0a 7d  2 ^ m2exp.  */.}
1fd0: 20 5f 5f 67 6d 70 5f 72 61 6e 64 61 74 61 5f 6c   __gmp_randata_l
1fe0: 63 3b 0a 0a 2f 2a 20 52 61 6e 64 6f 6d 20 73 74  c;../* Random st
1ff0: 61 74 65 20 73 74 72 75 63 74 2e 20 20 2a 2f 0a  ate struct.  */.
2000: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 0a 7b  typedef struct.{
2010: 0a 20 20 6d 70 7a 5f 74 20 5f 6d 70 5f 73 65 65  .  mpz_t _mp_see
2020: 64 3b 09 09 2f 2a 20 43 75 72 72 65 6e 74 20 73  d;../* Current s
2030: 65 65 64 2e 20 20 2a 2f 0a 20 20 67 6d 70 5f 72  eed.  */.  gmp_r
2040: 61 6e 64 61 6c 67 5f 74 20 5f 6d 70 5f 61 6c 67  andalg_t _mp_alg
2050: 3b 09 2f 2a 20 41 6c 67 6f 72 69 74 68 6d 20 75  ;./* Algorithm u
2060: 73 65 64 2e 20 20 2a 2f 0a 20 20 75 6e 69 6f 6e  sed.  */.  union
2070: 20 7b 09 09 09 2f 2a 20 41 6c 67 6f 72 69 74 68   {.../* Algorith
2080: 6d 20 73 70 65 63 69 66 69 63 20 64 61 74 61 2e  m specific data.
2090: 20 20 2a 2f 0a 20 20 20 20 5f 5f 67 6d 70 5f 72    */.    __gmp_r
20a0: 61 6e 64 61 74 61 5f 6c 63 20 2a 5f 6d 70 5f 6c  andata_lc *_mp_l
20b0: 63 3b 09 2f 2a 20 4c 69 6e 65 61 72 20 63 6f 6e  c;./* Linear con
20c0: 67 72 75 65 6e 74 69 61 6c 2e 20 20 2a 2f 0a 20  gruential.  */. 
20d0: 20 7d 20 5f 6d 70 5f 61 6c 67 64 61 74 61 3b 0a   } _mp_algdata;.
20e0: 7d 20 5f 5f 67 6d 70 5f 72 61 6e 64 73 74 61 74  } __gmp_randstat
20f0: 65 5f 73 74 72 75 63 74 3b 0a 74 79 70 65 64 65  e_struct;.typede
2100: 66 20 5f 5f 67 6d 70 5f 72 61 6e 64 73 74 61 74  f __gmp_randstat
2110: 65 5f 73 74 72 75 63 74 20 67 6d 70 5f 72 61 6e  e_struct gmp_ran
2120: 64 73 74 61 74 65 5f 74 5b 31 5d 3b 0a 0a 2f 2a  dstate_t[1];../*
2130: 20 54 79 70 65 73 20 66 6f 72 20 66 75 6e 63 74   Types for funct
2140: 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73  ion declarations
2150: 20 69 6e 20 67 6d 70 20 66 69 6c 65 73 2e 20 20   in gmp files.  
2160: 2a 2f 0a 2f 2a 20 3f 3f 3f 20 53 68 6f 75 6c 64  */./* ??? Should
2170: 20 6e 6f 74 20 70 6f 6c 6c 75 74 65 20 75 73 65   not pollute use
2180: 72 20 6e 61 6d 65 20 73 70 61 63 65 20 77 69 74  r name space wit
2190: 68 20 74 68 65 73 65 20 3f 3f 3f 20 2a 2f 0a 74  h these ??? */.t
21a0: 79 70 65 64 65 66 20 5f 5f 67 6d 70 5f 63 6f 6e  ypedef __gmp_con
21b0: 73 74 20 5f 5f 6d 70 7a 5f 73 74 72 75 63 74 20  st __mpz_struct 
21c0: 2a 6d 70 7a 5f 73 72 63 70 74 72 3b 0a 74 79 70  *mpz_srcptr;.typ
21d0: 65 64 65 66 20 5f 5f 6d 70 7a 5f 73 74 72 75 63  edef __mpz_struc
21e0: 74 20 2a 6d 70 7a 5f 70 74 72 3b 0a 74 79 70 65  t *mpz_ptr;.type
21f0: 64 65 66 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74 20  def __gmp_const 
2200: 5f 5f 6d 70 66 5f 73 74 72 75 63 74 20 2a 6d 70  __mpf_struct *mp
2210: 66 5f 73 72 63 70 74 72 3b 0a 74 79 70 65 64 65  f_srcptr;.typede
2220: 66 20 5f 5f 6d 70 66 5f 73 74 72 75 63 74 20 2a  f __mpf_struct *
2230: 6d 70 66 5f 70 74 72 3b 0a 74 79 70 65 64 65 66  mpf_ptr;.typedef
2240: 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74 20 5f 5f 6d   __gmp_const __m
2250: 70 71 5f 73 74 72 75 63 74 20 2a 6d 70 71 5f 73  pq_struct *mpq_s
2260: 72 63 70 74 72 3b 0a 74 79 70 65 64 65 66 20 5f  rcptr;.typedef _
2270: 5f 6d 70 71 5f 73 74 72 75 63 74 20 2a 6d 70 71  _mpq_struct *mpq
2280: 5f 70 74 72 3b 0a 0a 0a 2f 2a 20 54 68 69 73 20  _ptr;.../* This 
2290: 69 73 20 6e 6f 74 20 77 61 6e 74 65 64 20 69 6e  is not wanted in
22a0: 20 6d 70 2e 68 2c 20 73 6f 20 70 75 74 20 69 74   mp.h, so put it
22b0: 20 6f 75 74 73 69 64 65 20 74 68 65 20 5f 5f 47   outside the __G
22c0: 4e 55 5f 4d 50 5f 5f 20 63 6f 6d 6d 6f 6e 0a 20  NU_MP__ common. 
22d0: 20 20 73 65 63 74 69 6f 6e 2e 20 2a 2f 0a 23 69    section. */.#i
22e0: 66 20 5f 5f 47 4d 50 5f 4c 49 42 47 4d 50 5f 44  f __GMP_LIBGMP_D
22f0: 4c 4c 0a 23 69 66 20 5f 5f 47 4d 50 5f 57 49 54  LL.#if __GMP_WIT
2300: 48 49 4e 5f 47 4d 50 58 58 0a 2f 2a 20 63 6f 6d  HIN_GMPXX./* com
2310: 70 69 6c 69 6e 67 20 74 6f 20 67 6f 20 69 6e 74  piling to go int
2320: 6f 20 61 20 44 4c 4c 20 6c 69 62 67 6d 70 78 78  o a DLL libgmpxx
2330: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d   */.#define __GM
2340: 50 5f 44 45 43 4c 53 50 45 43 5f 58 58 20 20 5f  P_DECLSPEC_XX  _
2350: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f 45 58  _GMP_DECLSPEC_EX
2360: 50 4f 52 54 0a 23 65 6c 73 65 0a 2f 2a 20 63 6f  PORT.#else./* co
2370: 6d 70 69 6c 69 6e 67 20 74 6f 20 67 6f 20 69 6e  mpiling to go in
2380: 74 6f 20 61 20 61 70 70 6c 69 63 61 74 69 6f 6e  to a application
2390: 20 77 68 69 63 68 20 77 69 6c 6c 20 6c 69 6e 6b   which will link
23a0: 20 74 6f 20 61 20 44 4c 4c 20 6c 69 62 67 6d 70   to a DLL libgmp
23b0: 78 78 20 2a 2f 0a 23 64 65 66 69 6e 65 20 5f 5f  xx */.#define __
23c0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f 58 58 20  GMP_DECLSPEC_XX 
23d0: 20 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 5f   __GMP_DECLSPEC_
23e0: 49 4d 50 4f 52 54 0a 23 65 6e 64 69 66 0a 23 65  IMPORT.#endif.#e
23f0: 6c 73 65 0a 2f 2a 20 61 6c 6c 20 6f 74 68 65 72  lse./* all other
2400: 20 63 61 73 65 73 20 2a 2f 0a 23 64 65 66 69 6e   cases */.#defin
2410: 65 20 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  e __GMP_DECLSPEC
2420: 5f 58 58 0a 23 65 6e 64 69 66 0a 0a 0a 23 69 66  _XX.#endif...#if
2430: 20 5f 5f 47 4d 50 5f 48 41 56 45 5f 50 52 4f 54   __GMP_HAVE_PROT
2440: 4f 54 59 50 45 53 0a 23 64 65 66 69 6e 65 20 5f  OTYPES.#define _
2450: 5f 47 4d 50 5f 50 52 4f 54 4f 28 78 29 20 78 0a  _GMP_PROTO(x) x.
2460: 23 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 5f 5f  #else.#define __
2470: 47 4d 50 5f 50 52 4f 54 4f 28 78 29 20 28 29 0a  GMP_PROTO(x) ().
2480: 23 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66 20  #endif..#ifndef 
2490: 5f 5f 4d 50 4e 0a 23 69 66 20 5f 5f 47 4d 50 5f  __MPN.#if __GMP_
24a0: 48 41 56 45 5f 54 4f 4b 45 4e 5f 50 41 53 54 45  HAVE_TOKEN_PASTE
24b0: 0a 23 64 65 66 69 6e 65 20 5f 5f 4d 50 4e 28 78  .#define __MPN(x
24c0: 29 20 5f 5f 67 6d 70 6e 5f 23 23 78 0a 23 65 6c  ) __gmpn_##x.#el
24d0: 73 65 0a 23 64 65 66 69 6e 65 20 5f 5f 4d 50 4e  se.#define __MPN
24e0: 28 78 29 20 5f 5f 67 6d 70 6e 5f 2f 2a 2a 2f 78  (x) __gmpn_/**/x
24f0: 0a 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 0a  .#endif.#endif..
2500: 23 69 66 20 64 65 66 69 6e 65 64 20 28 46 49 4c  #if defined (FIL
2510: 45 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E)              
2520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2540: 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64 20 28  \.  || defined (
2550: 48 5f 53 54 44 49 4f 29 20 20 20 20 20 20 20 20  H_STDIO)        
2560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2580: 20 20 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64    \.  || defined
2590: 20 28 5f 48 5f 53 54 44 49 4f 29 20 20 20 20 20   (_H_STDIO)     
25a0: 20 20 20 20 20 20 20 20 20 20 2f 2a 20 41 49 58            /* AIX
25b0: 20 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   */             
25c0: 20 20 20 20 5c 0a 20 20 7c 7c 20 64 65 66 69 6e      \.  || defin
25d0: 65 64 20 28 5f 53 54 44 49 4f 5f 48 29 20 20 20  ed (_STDIO_H)   
25e0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 67              /* g
25f0: 6c 69 62 63 2c 20 53 75 6e 2c 20 53 43 4f 20 2a  libc, Sun, SCO *
2600: 2f 20 20 20 20 20 5c 0a 20 20 7c 7c 20 64 65 66  /     \.  || def
2610: 69 6e 65 64 20 28 5f 53 54 44 49 4f 5f 48 5f 29  ined (_STDIO_H_)
2620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a                /*
2630: 20 42 53 44 2c 20 4f 53 46 20 2a 2f 20 20 20 20   BSD, OSF */    
2640: 20 20 20 20 20 20 20 20 5c 0a 20 20 7c 7c 20 64          \.  || d
2650: 65 66 69 6e 65 64 20 28 5f 5f 53 54 44 49 4f 5f  efined (__STDIO_
2660: 48 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20  H)              
2670: 2f 2a 20 42 6f 72 6c 61 6e 64 20 2a 2f 20 20 20  /* Borland */   
2680: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 7c 7c            \.  ||
2690: 20 64 65 66 69 6e 65 64 20 28 5f 5f 53 54 44 49   defined (__STDI
26a0: 4f 5f 48 5f 5f 29 20 20 20 20 20 20 20 20 20 20  O_H__)          
26b0: 20 20 2f 2a 20 49 52 49 58 20 2a 2f 20 20 20 20    /* IRIX */    
26c0: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
26d0: 7c 7c 20 64 65 66 69 6e 65 64 20 28 5f 53 54 44  || defined (_STD
26e0: 49 4f 5f 49 4e 43 4c 55 44 45 44 29 20 20 20 20  IO_INCLUDED)    
26f0: 20 20 20 20 2f 2a 20 48 50 55 58 20 2a 2f 20 20      /* HPUX */  
2700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
2710: 20 20 7c 7c 20 64 65 66 69 6e 65 64 20 28 5f 5f    || defined (__
2720: 64 6a 5f 69 6e 63 6c 75 64 65 5f 73 74 64 69 6f  dj_include_stdio
2730: 5f 68 5f 29 20 20 2f 2a 20 44 4a 47 50 50 20 2a  _h_)  /* DJGPP *
2740: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
2750: 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64 20 28  \.  || defined (
2760: 5f 46 49 4c 45 5f 44 45 46 49 4e 45 44 29 20 20  _FILE_DEFINED)  
2770: 20 20 20 20 20 20 20 20 2f 2a 20 4d 69 63 72 6f          /* Micro
2780: 73 6f 66 74 20 2a 2f 20 20 20 20 20 20 20 20 20  soft */         
2790: 20 5c 0a 20 20 7c 7c 20 64 65 66 69 6e 65 64 20   \.  || defined 
27a0: 28 5f 5f 53 54 44 49 4f 5f 5f 29 20 20 20 20 20  (__STDIO__)     
27b0: 20 20 20 20 20 20 20 20 20 2f 2a 20 41 70 70 6c           /* Appl
27c0: 65 20 4d 50 57 20 4d 72 43 20 2a 2f 0a 23 64 65  e MPW MrC */.#de
27d0: 66 69 6e 65 20 5f 47 4d 50 5f 48 5f 48 41 56 45  fine _GMP_H_HAVE
27e0: 5f 46 49 4c 45 20 31 0a 23 65 6e 64 69 66 0a 0a  _FILE 1.#endif..
27f0: 2f 2a 20 49 6e 20 49 53 4f 20 43 2c 20 69 66 20  /* In ISO C, if 
2800: 61 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 76 6f  a prototype invo
2810: 6c 76 69 6e 67 20 22 73 74 72 75 63 74 20 6f 62  lving "struct ob
2820: 73 74 61 63 6b 20 2a 22 20 69 73 20 67 69 76 65  stack *" is give
2830: 6e 20 77 69 74 68 6f 75 74 0a 20 20 20 74 68 61  n without.   tha
2840: 74 20 73 74 72 75 63 74 75 72 65 20 64 65 66 69  t structure defi
2850: 6e 65 64 2c 20 74 68 65 6e 20 74 68 65 20 73 74  ned, then the st
2860: 72 75 63 74 20 69 73 20 73 63 6f 70 65 64 20 64  ruct is scoped d
2870: 6f 77 6e 20 74 6f 20 6a 75 73 74 20 74 68 65 0a  own to just the.
2880: 20 20 20 70 72 6f 74 6f 74 79 70 65 2c 20 63 61     prototype, ca
2890: 75 73 69 6e 67 20 61 20 63 6f 6e 66 6c 69 63 74  using a conflict
28a0: 20 69 66 20 69 74 27 73 20 73 75 62 73 65 71 75   if it's subsequ
28b0: 65 6e 74 6c 79 20 64 65 66 69 6e 65 64 20 66 6f  ently defined fo
28c0: 72 20 72 65 61 6c 2e 20 20 53 6f 0a 20 20 20 6f  r real.  So.   o
28d0: 6e 6c 79 20 67 69 76 65 20 70 72 6f 74 6f 74 79  nly give prototy
28e0: 70 65 73 20 69 66 20 77 65 27 76 65 20 67 6f 74  pes if we've got
28f0: 20 6f 62 73 74 61 63 6b 2e 68 2e 20 20 2a 2f 0a   obstack.h.  */.
2900: 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 4f 42  #if defined (_OB
2910: 53 54 41 43 4b 5f 48 29 20 20 20 2f 2a 20 67 6c  STACK_H)   /* gl
2920: 69 62 63 20 3c 6f 62 73 74 61 63 6b 2e 68 3e 20  ibc <obstack.h> 
2930: 2a 2f 0a 23 64 65 66 69 6e 65 20 5f 47 4d 50 5f  */.#define _GMP_
2940: 48 5f 48 41 56 45 5f 4f 42 53 54 41 43 4b 20 31  H_HAVE_OBSTACK 1
2950: 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 54 68 65 20  .#endif../* The 
2960: 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72 20 67  prototypes for g
2970: 6d 70 5f 76 70 72 69 6e 74 66 20 65 74 63 20 61  mp_vprintf etc a
2980: 72 65 20 70 72 6f 76 69 64 65 64 20 6f 6e 6c 79  re provided only
2990: 20 69 66 20 76 61 5f 6c 69 73 74 20 69 73 0a 20   if va_list is. 
29a0: 20 20 61 76 61 69 6c 61 62 6c 65 2c 20 76 69 61    available, via
29b0: 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20   an application 
29c0: 68 61 76 69 6e 67 20 69 6e 63 6c 75 64 65 64 20  having included 
29d0: 3c 73 74 64 61 72 67 2e 68 3e 20 6f 72 20 3c 76  <stdarg.h> or <v
29e0: 61 72 61 72 67 73 2e 68 3e 2e 0a 20 20 20 55 73  arargs.h>..   Us
29f0: 75 61 6c 6c 79 20 76 61 5f 6c 69 73 74 20 69 73  ually va_list is
2a00: 20 61 20 74 79 70 65 64 65 66 20 73 6f 20 63 61   a typedef so ca
2a10: 6e 27 74 20 62 65 20 74 65 73 74 65 64 20 64 69  n't be tested di
2a20: 72 65 63 74 6c 79 2c 20 62 75 74 20 76 61 5f 73  rectly, but va_s
2a30: 74 61 72 74 20 69 73 0a 20 20 20 61 6c 6d 6f 73  tart is.   almos
2a40: 74 20 63 65 72 74 61 69 6e 6c 79 20 61 20 6d 61  t certainly a ma
2a50: 63 72 6f 2c 20 73 6f 20 6c 6f 6f 6b 20 66 6f 72  cro, so look for
2a60: 20 74 68 61 74 2e 0a 0a 20 20 20 3c 73 74 64 69   that...   <stdi
2a70: 6f 2e 68 3e 20 77 69 6c 6c 20 64 65 66 69 6e 65  o.h> will define
2a80: 20 73 6f 6d 65 20 73 6f 72 74 20 6f 66 20 76 61   some sort of va
2a90: 5f 6c 69 73 74 20 66 6f 72 20 76 70 72 69 6e 74  _list for vprint
2aa0: 66 20 61 6e 64 20 76 66 70 72 69 6e 74 66 2c 20  f and vfprintf, 
2ab0: 62 75 74 0a 20 20 20 6c 65 74 27 73 20 6e 6f 74  but.   let's not
2ac0: 20 62 6f 74 68 65 72 20 74 72 79 69 6e 67 20 74   bother trying t
2ad0: 6f 20 75 73 65 20 74 68 61 74 20 73 69 6e 63 65  o use that since
2ae0: 20 69 74 27 73 20 6e 6f 74 20 73 74 61 6e 64 61   it's not standa
2af0: 72 64 20 61 6e 64 20 73 69 6e 63 65 0a 20 20 20  rd and since.   
2b00: 61 70 70 6c 69 63 61 74 69 6f 6e 20 75 73 65 73  application uses
2b10: 20 66 6f 72 20 67 6d 70 5f 76 70 72 69 6e 74 66   for gmp_vprintf
2b20: 20 65 74 63 20 77 69 6c 6c 20 61 6c 6d 6f 73 74   etc will almost
2b30: 20 63 65 72 74 61 69 6e 6c 79 20 72 65 71 75 69   certainly requi
2b40: 72 65 20 74 68 65 0a 20 20 20 77 68 6f 6c 65 20  re the.   whole 
2b50: 3c 73 74 64 61 72 67 2e 68 3e 20 6f 72 20 3c 76  <stdarg.h> or <v
2b60: 61 72 61 72 67 73 2e 68 3e 20 61 6e 79 77 61 79  arargs.h> anyway
2b70: 2e 20 20 2a 2f 0a 0a 23 69 66 64 65 66 20 76 61  .  */..#ifdef va
2b80: 5f 73 74 61 72 74 0a 23 64 65 66 69 6e 65 20 5f  _start.#define _
2b90: 47 4d 50 5f 48 5f 48 41 56 45 5f 56 41 5f 4c 49  GMP_H_HAVE_VA_LI
2ba0: 53 54 20 31 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20  ST 1.#endif../* 
2bb0: 54 65 73 74 20 66 6f 72 20 67 63 63 20 3e 3d 20  Test for gcc >= 
2bc0: 6d 61 6a 2e 6d 69 6e 2c 20 61 73 20 70 65 72 20  maj.min, as per 
2bd0: 5f 5f 47 4e 55 43 5f 50 52 45 52 45 51 20 69 6e  __GNUC_PREREQ in
2be0: 20 67 6c 69 62 63 20 2a 2f 0a 23 69 66 20 64 65   glibc */.#if de
2bf0: 66 69 6e 65 64 20 28 5f 5f 47 4e 55 43 5f 5f 29  fined (__GNUC__)
2c00: 20 26 26 20 64 65 66 69 6e 65 64 20 28 5f 5f 47   && defined (__G
2c10: 4e 55 43 5f 4d 49 4e 4f 52 5f 5f 29 0a 23 64 65  NUC_MINOR__).#de
2c20: 66 69 6e 65 20 5f 5f 47 4d 50 5f 47 4e 55 43 5f  fine __GMP_GNUC_
2c30: 50 52 45 52 45 51 28 6d 61 6a 2c 20 6d 69 6e 29  PREREQ(maj, min)
2c40: 20 5c 0a 20 20 28 28 5f 5f 47 4e 55 43 5f 5f 20   \.  ((__GNUC__ 
2c50: 3c 3c 20 31 36 29 20 2b 20 5f 5f 47 4e 55 43 5f  << 16) + __GNUC_
2c60: 4d 49 4e 4f 52 5f 5f 20 3e 3d 20 28 28 6d 61 6a  MINOR__ >= ((maj
2c70: 29 20 3c 3c 20 31 36 29 20 2b 20 28 6d 69 6e 29  ) << 16) + (min)
2c80: 29 0a 23 65 6c 73 65 0a 23 64 65 66 69 6e 65 20  ).#else.#define 
2c90: 5f 5f 47 4d 50 5f 47 4e 55 43 5f 50 52 45 52 45  __GMP_GNUC_PRERE
2ca0: 51 28 6d 61 6a 2c 20 6d 69 6e 29 20 20 30 0a 23  Q(maj, min)  0.#
2cb0: 65 6e 64 69 66 0a 0a 2f 2a 20 22 70 75 72 65 22  endif../* "pure"
2cc0: 20 69 73 20 69 6e 20 67 63 63 20 32 2e 39 36 20   is in gcc 2.96 
2cd0: 61 6e 64 20 75 70 2c 20 73 65 65 20 22 28 67 63  and up, see "(gc
2ce0: 63 29 46 75 6e 63 74 69 6f 6e 20 41 74 74 72 69  c)Function Attri
2cf0: 62 75 74 65 73 22 2e 20 20 42 61 73 69 63 61 6c  butes".  Basical
2d00: 6c 79 0a 20 20 20 69 74 20 6d 65 61 6e 73 20 61  ly.   it means a
2d10: 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e   function does n
2d20: 6f 74 68 69 6e 67 20 62 75 74 20 65 78 61 6d 69  othing but exami
2d30: 6e 65 20 69 74 73 20 61 72 67 75 6d 65 6e 74 73  ne its arguments
2d40: 20 61 6e 64 20 6d 65 6d 6f 72 79 0a 20 20 20 28   and memory.   (
2d50: 67 6c 6f 62 61 6c 20 6f 72 20 76 69 61 20 61 72  global or via ar
2d60: 67 75 6d 65 6e 74 73 29 20 74 6f 20 67 65 6e 65  guments) to gene
2d70: 72 61 74 65 20 61 20 72 65 74 75 72 6e 20 76 61  rate a return va
2d80: 6c 75 65 2c 20 62 75 74 20 63 68 61 6e 67 65 73  lue, but changes
2d90: 20 6e 6f 74 68 69 6e 67 0a 20 20 20 61 6e 64 20   nothing.   and 
2da0: 68 61 73 20 6e 6f 20 73 69 64 65 2d 65 66 66 65  has no side-effe
2db0: 63 74 73 2e 20 2a 2f 0a 23 69 66 20 5f 5f 47 4d  cts. */.#if __GM
2dc0: 50 5f 47 4e 55 43 5f 50 52 45 52 45 51 20 28 32  P_GNUC_PREREQ (2
2dd0: 2c 39 36 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47  ,96).#define __G
2de0: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
2df0: 45 20 20 20 5f 5f 61 74 74 72 69 62 75 74 65 5f  E   __attribute_
2e00: 5f 20 28 28 5f 5f 70 75 72 65 5f 5f 29 29 0a 23  _ ((__pure__)).#
2e10: 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 5f 5f 47  else.#define __G
2e20: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
2e30: 45 0a 23 65 6e 64 69 66 0a 0a 0a 2f 2a 20 41 6e  E.#endif.../* An
2e40: 20 65 6d 70 74 79 20 22 74 68 72 6f 77 20 28 29   empty "throw ()
2e50: 22 20 6d 65 61 6e 73 20 74 68 65 20 66 75 6e 63  " means the func
2e60: 74 69 6f 6e 20 64 6f 65 73 6e 27 74 20 74 68 72  tion doesn't thr
2e70: 6f 77 20 61 6e 79 20 43 2b 2b 20 65 78 63 65 70  ow any C++ excep
2e80: 74 69 6f 6e 73 2c 0a 20 20 20 74 68 69 73 20 63  tions,.   this c
2e90: 61 6e 20 73 61 76 65 20 73 6f 6d 65 20 73 74 61  an save some sta
2ea0: 63 6b 20 66 72 61 6d 65 20 69 6e 66 6f 20 69 6e  ck frame info in
2eb0: 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 0a 0a   applications...
2ec0: 20 20 20 43 75 72 72 65 6e 74 6c 79 20 69 74 27     Currently it'
2ed0: 73 20 67 69 76 65 6e 20 6f 6e 6c 79 20 6f 6e 20  s given only on 
2ee0: 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20  functions which 
2ef0: 6e 65 76 65 72 20 64 69 76 69 64 65 2d 62 79 2d  never divide-by-
2f00: 7a 65 72 6f 20 65 74 63 2c 0a 20 20 20 64 6f 6e  zero etc,.   don
2f10: 27 74 20 61 6c 6c 6f 63 61 74 65 20 6d 65 6d 6f  't allocate memo
2f20: 72 79 2c 20 61 6e 64 20 61 72 65 20 65 78 70 65  ry, and are expe
2f30: 63 74 65 64 20 74 6f 20 6e 65 76 65 72 20 6e 65  cted to never ne
2f40: 65 64 20 74 6f 20 61 6c 6c 6f 63 61 74 65 20 6d  ed to allocate m
2f50: 65 6d 6f 72 79 2e 0a 20 20 20 54 68 69 73 20 6c  emory..   This l
2f60: 65 61 76 65 73 20 6f 70 65 6e 20 74 68 65 20 70  eaves open the p
2f70: 6f 73 73 69 62 69 6c 69 74 79 20 6f 66 20 61 20  ossibility of a 
2f80: 43 2b 2b 20 74 68 72 6f 77 20 66 72 6f 6d 20 61  C++ throw from a
2f90: 20 66 75 74 75 72 65 20 47 4d 50 0a 20 20 20 65   future GMP.   e
2fa0: 78 63 65 70 74 69 6f 6e 73 20 73 63 68 65 6d 65  xceptions scheme
2fb0: 2e 0a 0a 20 20 20 6d 70 7a 5f 73 65 74 5f 75 69  ...   mpz_set_ui
2fc0: 20 65 74 63 20 61 72 65 20 6f 6d 69 74 74 65 64   etc are omitted
2fd0: 20 74 6f 20 6c 65 61 76 65 20 6f 70 65 6e 20 74   to leave open t
2fe0: 68 65 20 6c 61 7a 79 20 61 6c 6c 6f 63 61 74 69  he lazy allocati
2ff0: 6f 6e 20 73 63 68 65 6d 65 0a 20 20 20 64 65 73  on scheme.   des
3000: 63 72 69 62 65 64 20 69 6e 20 64 6f 63 2f 74 61  cribed in doc/ta
3010: 73 6b 73 2e 68 74 6d 6c 2e 20 20 6d 70 7a 5f 67  sks.html.  mpz_g
3020: 65 74 5f 64 20 65 74 63 20 61 72 65 20 6f 6d 69  et_d etc are omi
3030: 74 74 65 64 20 74 6f 20 6c 65 61 76 65 20 6f 70  tted to leave op
3040: 65 6e 0a 20 20 20 65 78 63 65 70 74 69 6f 6e 73  en.   exceptions
3050: 20 66 6f 72 20 66 6c 6f 61 74 20 6f 76 65 72 66   for float overf
3060: 6c 6f 77 73 2e 0a 0a 20 20 20 4e 6f 74 65 20 74  lows...   Note t
3070: 68 61 74 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f  hat __GMP_NOTHRO
3080: 57 20 6d 75 73 74 20 62 65 20 67 69 76 65 6e 20  W must be given 
3090: 6f 6e 20 61 6e 79 20 69 6e 6c 69 6e 65 73 20 74  on any inlines t
30a0: 68 65 20 73 61 6d 65 20 61 73 20 6f 6e 20 74 68  he same as on th
30b0: 65 69 72 0a 20 20 20 70 72 6f 74 6f 74 79 70 65  eir.   prototype
30c0: 73 20 28 66 6f 72 20 67 2b 2b 20 61 74 20 6c 65  s (for g++ at le
30d0: 61 73 74 2c 20 77 68 65 72 65 20 74 68 65 79 27  ast, where they'
30e0: 72 65 20 75 73 65 64 20 74 6f 67 65 74 68 65 72  re used together
30f0: 29 2e 20 20 4e 6f 74 65 20 61 6c 73 6f 0a 20 20  ).  Note also.  
3100: 20 74 68 61 74 20 67 2b 2b 20 33 2e 30 20 64 65   that g++ 3.0 de
3110: 6d 61 6e 64 73 20 74 68 61 74 20 5f 5f 47 4d 50  mands that __GMP
3120: 5f 4e 4f 54 48 52 4f 57 20 69 73 20 62 65 66 6f  _NOTHROW is befo
3130: 72 65 20 6f 74 68 65 72 20 61 74 74 72 69 62 75  re other attribu
3140: 74 65 73 20 6c 69 6b 65 0a 20 20 20 5f 5f 47 4d  tes like.   __GM
3150: 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45  P_ATTRIBUTE_PURE
3160: 2e 20 20 2a 2f 0a 0a 23 69 66 20 64 65 66 69 6e  .  */..#if defin
3170: 65 64 20 28 5f 5f 63 70 6c 75 73 70 6c 75 73 29  ed (__cplusplus)
3180: 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 4e  .#define __GMP_N
3190: 4f 54 48 52 4f 57 20 20 74 68 72 6f 77 20 28 29  OTHROW  throw ()
31a0: 0a 23 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 5f  .#else.#define _
31b0: 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 0a 23 65 6e  _GMP_NOTHROW.#en
31c0: 64 69 66 0a 0a 0a 2f 2a 20 50 4f 52 54 4d 45 3a  dif.../* PORTME:
31d0: 20 57 68 61 74 20 6f 74 68 65 72 20 63 6f 6d 70   What other comp
31e0: 69 6c 65 72 73 20 68 61 76 65 20 61 20 75 73 65  ilers have a use
31f0: 66 75 6c 20 22 65 78 74 65 72 6e 20 69 6e 6c 69  ful "extern inli
3200: 6e 65 22 3f 20 20 22 73 74 61 74 69 63 0a 20 20  ne"?  "static.  
3210: 20 69 6e 6c 69 6e 65 22 20 77 6f 75 6c 64 20 62   inline" would b
3220: 65 20 61 6e 20 61 63 63 65 70 74 61 62 6c 65 20  e an acceptable 
3230: 73 75 62 73 74 69 74 75 74 65 20 69 66 20 74 68  substitute if th
3240: 65 20 63 6f 6d 70 69 6c 65 72 20 28 6f 72 20 6c  e compiler (or l
3250: 69 6e 6b 65 72 29 0a 20 20 20 64 69 73 63 61 72  inker).   discar
3260: 64 73 20 75 6e 75 73 65 64 20 73 74 61 74 69 63  ds unused static
3270: 73 2e 20 20 2a 2f 0a 0a 2f 2a 20 67 63 63 20 68  s.  */../* gcc h
3280: 61 73 20 5f 5f 69 6e 6c 69 6e 65 5f 5f 20 69 6e  as __inline__ in
3290: 20 61 6c 6c 20 6d 6f 64 65 73 2c 20 69 6e 63 6c   all modes, incl
32a0: 75 64 69 6e 67 20 73 74 72 69 63 74 20 61 6e 73  uding strict ans
32b0: 69 2e 20 20 47 69 76 65 20 61 20 70 72 6f 74 6f  i.  Give a proto
32c0: 74 79 70 65 0a 20 20 20 66 6f 72 20 61 6e 20 69  type.   for an i
32d0: 6e 6c 69 6e 65 20 74 6f 6f 2c 20 73 6f 20 61 73  nline too, so as
32e0: 20 74 6f 20 63 6f 72 72 65 63 74 6c 79 20 73 70   to correctly sp
32f0: 65 63 69 66 79 20 22 64 6c 6c 69 6d 70 6f 72 74  ecify "dllimport
3300: 22 20 6f 6e 20 77 69 6e 64 6f 77 73 2c 20 69 6e  " on windows, in
3310: 0a 20 20 20 63 61 73 65 20 74 68 65 20 66 75 6e  .   case the fun
3320: 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20  ction is called 
3330: 72 61 74 68 65 72 20 74 68 61 6e 20 69 6e 6c 69  rather than inli
3340: 6e 65 64 2e 20 20 2a 2f 0a 23 69 66 64 65 66 20  ned.  */.#ifdef 
3350: 5f 5f 47 4e 55 43 5f 5f 0a 23 64 65 66 69 6e 65  __GNUC__.#define
3360: 20 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e   __GMP_EXTERN_IN
3370: 4c 49 4e 45 20 20 20 20 20 20 65 78 74 65 72 6e  LINE      extern
3380: 20 5f 5f 69 6e 6c 69 6e 65 5f 5f 0a 23 64 65 66   __inline__.#def
3390: 69 6e 65 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45  ine __GMP_INLINE
33a0: 5f 50 52 4f 54 4f 54 59 50 45 53 20 20 31 0a 23  _PROTOTYPES  1.#
33b0: 65 6e 64 69 66 0a 0a 2f 2a 20 53 43 4f 20 4f 70  endif../* SCO Op
33c0: 65 6e 55 4e 49 58 20 38 20 63 63 20 73 75 70 70  enUNIX 8 cc supp
33d0: 6f 72 74 73 20 22 73 74 61 74 69 63 20 69 6e 6c  orts "static inl
33e0: 69 6e 65 20 66 6f 6f 28 29 22 20 62 75 74 20 6e  ine foo()" but n
33f0: 6f 74 20 69 6e 20 2d 58 63 20 73 74 72 69 63 74  ot in -Xc strict
3400: 0a 20 20 20 41 4e 53 49 20 6d 6f 64 65 20 28 5f  .   ANSI mode (_
3410: 5f 53 54 44 43 5f 5f 20 69 73 20 31 20 69 6e 20  _STDC__ is 1 in 
3420: 74 68 61 74 20 6d 6f 64 65 29 2e 20 20 49 6e 6c  that mode).  Inl
3430: 69 6e 69 6e 67 20 6f 6e 6c 79 20 61 63 74 75 61  ining only actua
3440: 6c 6c 79 20 74 61 6b 65 73 0a 20 20 20 70 6c 61  lly takes.   pla
3450: 63 65 20 75 6e 64 65 72 20 2d 4f 2e 20 20 57 69  ce under -O.  Wi
3460: 74 68 6f 75 74 20 2d 4f 20 22 66 6f 6f 22 20 73  thout -O "foo" s
3470: 65 65 6d 73 20 74 6f 20 62 65 20 65 6d 69 74 74  eems to be emitt
3480: 65 64 20 77 68 65 74 68 65 72 20 69 74 27 73 20  ed whether it's 
3490: 75 73 65 64 0a 20 20 20 6f 72 20 6e 6f 74 2c 20  used.   or not, 
34a0: 77 68 69 63 68 20 69 73 20 77 61 73 74 65 66 75  which is wastefu
34b0: 6c 2e 20 20 22 65 78 74 65 72 6e 20 69 6e 6c 69  l.  "extern inli
34c0: 6e 65 20 66 6f 6f 28 29 22 20 69 73 6e 27 74 20  ne foo()" isn't 
34d0: 75 73 65 66 75 6c 2c 20 74 68 65 0a 20 20 20 22  useful, the.   "
34e0: 65 78 74 65 72 6e 22 20 69 73 20 61 70 70 61 72  extern" is appar
34f0: 65 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2c 20 73  ently ignored, s
3500: 6f 20 66 6f 6f 20 69 73 20 69 6e 6c 69 6e 65 64  o foo is inlined
3510: 20 69 66 20 70 6f 73 73 69 62 6c 65 20 62 75 74   if possible but
3520: 20 61 6c 73 6f 0a 20 20 20 65 6d 69 74 74 65 64   also.   emitted
3530: 20 61 73 20 61 20 67 6c 6f 62 61 6c 2c 20 77 68   as a global, wh
3540: 69 63 68 20 63 61 75 73 65 73 20 6d 75 6c 74 69  ich causes multi
3550: 70 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 65  ple definition e
3560: 72 72 6f 72 73 20 77 68 65 6e 0a 20 20 20 62 75  rrors when.   bu
3570: 69 6c 64 69 6e 67 20 61 20 73 68 61 72 65 64 20  ilding a shared 
3580: 6c 69 62 67 6d 70 2e 20 20 2a 2f 0a 23 69 66 20  libgmp.  */.#if 
3590: 5f 5f 53 43 4f 5f 56 45 52 53 49 4f 4e 5f 5f 20  __SCO_VERSION__ 
35a0: 3e 20 34 30 30 30 30 30 30 30 30 20 26 26 20 5f  > 400000000 && _
35b0: 5f 53 54 44 43 5f 5f 20 21 3d 20 31 20 5c 0a 20  _STDC__ != 1 \. 
35c0: 20 26 26 20 21 20 64 65 66 69 6e 65 64 20 28 5f   && ! defined (_
35d0: 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49  _GMP_EXTERN_INLI
35e0: 4e 45 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d  NE).#define __GM
35f0: 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 20  P_EXTERN_INLINE 
3600: 20 73 74 61 74 69 63 20 69 6e 6c 69 6e 65 0a 23   static inline.#
3610: 65 6e 64 69 66 0a 0a 2f 2a 20 43 2b 2b 20 61 6c  endif../* C++ al
3620: 77 61 79 73 20 68 61 73 20 22 69 6e 6c 69 6e 65  ways has "inline
3630: 22 20 61 6e 64 20 73 69 6e 63 65 20 69 74 27 73  " and since it's
3640: 20 61 20 6e 6f 72 6d 61 6c 20 66 65 61 74 75 72   a normal featur
3650: 65 20 74 68 65 20 6c 69 6e 6b 65 72 20 73 68 6f  e the linker sho
3660: 75 6c 64 0a 20 20 20 64 69 73 63 61 72 64 20 64  uld.   discard d
3670: 75 70 6c 69 63 61 74 65 20 6e 6f 6e 2d 69 6e 6c  uplicate non-inl
3680: 69 6e 65 64 20 63 6f 70 69 65 73 2c 20 6f 72 20  ined copies, or 
3690: 69 66 20 69 74 20 64 6f 65 73 6e 27 74 20 74 68  if it doesn't th
36a0: 65 6e 20 74 68 61 74 27 73 20 61 0a 20 20 20 70  en that's a.   p
36b0: 72 6f 62 6c 65 6d 20 66 6f 72 20 65 76 65 72 79  roblem for every
36c0: 6f 6e 65 2c 20 6e 6f 74 20 6a 75 73 74 20 47 4d  one, not just GM
36d0: 50 2e 20 20 2a 2f 0a 23 69 66 20 64 65 66 69 6e  P.  */.#if defin
36e0: 65 64 20 28 5f 5f 63 70 6c 75 73 70 6c 75 73 29  ed (__cplusplus)
36f0: 20 26 26 20 21 20 64 65 66 69 6e 65 64 20 28 5f   && ! defined (_
3700: 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49  _GMP_EXTERN_INLI
3710: 4e 45 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d  NE).#define __GM
3720: 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 20  P_EXTERN_INLINE 
3730: 20 69 6e 6c 69 6e 65 0a 23 65 6e 64 69 66 0a 0a   inline.#endif..
3740: 2f 2a 20 44 6f 6e 27 74 20 64 6f 20 61 6e 79 20  /* Don't do any 
3750: 69 6e 6c 69 6e 69 6e 67 20 77 69 74 68 69 6e 20  inlining within 
3760: 61 20 63 6f 6e 66 69 67 75 72 65 20 72 75 6e 2c  a configure run,
3770: 20 73 69 6e 63 65 20 69 66 20 74 68 65 20 63 6f   since if the co
3780: 6d 70 69 6c 65 72 20 65 6e 64 73 0a 20 20 20 75  mpiler ends.   u
3790: 70 20 65 6d 69 74 74 69 6e 67 20 63 6f 70 69 65  p emitting copie
37a0: 73 20 6f 66 20 74 68 65 20 63 6f 64 65 20 69 6e  s of the code in
37b0: 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 66 69  to the object fi
37c0: 6c 65 20 69 74 20 63 61 6e 20 65 6e 64 20 75 70  le it can end up
37d0: 0a 20 20 20 64 65 6d 61 6e 64 69 6e 67 20 74 68  .   demanding th
37e0: 65 20 76 61 72 69 6f 75 73 20 73 75 70 70 6f 72  e various suppor
37f0: 74 20 72 6f 75 74 69 6e 65 73 20 28 6c 69 6b 65  t routines (like
3800: 20 6d 70 6e 5f 70 6f 70 63 6f 75 6e 74 29 20 66   mpn_popcount) f
3810: 6f 72 20 6c 69 6e 6b 69 6e 67 2c 0a 20 20 20 6d  or linking,.   m
3820: 61 6b 69 6e 67 20 74 68 65 20 22 61 6c 6c 6f 63  aking the "alloc
3830: 61 22 20 74 65 73 74 20 61 6e 64 20 70 65 72 68  a" test and perh
3840: 61 70 73 20 6f 74 68 65 72 73 20 66 61 69 6c 2e  aps others fail.
3850: 20 20 41 6e 64 20 6f 6e 20 68 70 70 61 20 69 61    And on hppa ia
3860: 36 34 20 61 0a 20 20 20 70 72 65 2d 72 65 6c 65  64 a.   pre-rele
3870: 61 73 65 20 67 63 63 20 33 2e 32 20 77 61 73 20  ase gcc 3.2 was 
3880: 73 65 65 6e 20 6e 6f 74 20 72 65 73 70 65 63 74  seen not respect
3890: 69 6e 67 20 74 68 65 20 22 65 78 74 65 72 6e 22  ing the "extern"
38a0: 20 69 6e 20 22 65 78 74 65 72 6e 0a 20 20 20 5f   in "extern.   _
38b0: 5f 69 6e 6c 69 6e 65 5f 5f 22 2c 20 74 72 69 67  _inline__", trig
38c0: 67 65 72 69 6e 67 20 74 68 69 73 20 70 72 6f 62  gering this prob
38d0: 6c 65 6d 20 74 6f 6f 2e 20 20 2a 2f 0a 23 69 66  lem too.  */.#if
38e0: 20 64 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f   defined (__GMP_
38f0: 57 49 54 48 49 4e 5f 43 4f 4e 46 49 47 55 52 45  WITHIN_CONFIGURE
3900: 29 20 26 26 20 21 20 5f 5f 47 4d 50 5f 57 49 54  ) && ! __GMP_WIT
3910: 48 49 4e 5f 43 4f 4e 46 49 47 55 52 45 5f 49 4e  HIN_CONFIGURE_IN
3920: 4c 49 4e 45 0a 23 75 6e 64 65 66 20 5f 5f 47 4d  LINE.#undef __GM
3930: 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a  P_EXTERN_INLINE.
3940: 23 65 6e 64 69 66 0a 0a 2f 2a 20 42 79 20 64 65  #endif../* By de
3950: 66 61 75 6c 74 2c 20 64 6f 6e 27 74 20 67 69 76  fault, don't giv
3960: 65 20 61 20 70 72 6f 74 6f 74 79 70 65 20 77 68  e a prototype wh
3970: 65 6e 20 74 68 65 72 65 27 73 20 67 6f 69 6e 67  en there's going
3980: 20 74 6f 20 62 65 20 61 6e 20 69 6e 6c 69 6e 65   to be an inline
3990: 0a 20 20 20 76 65 72 73 69 6f 6e 2e 20 20 4e 6f  .   version.  No
39a0: 74 65 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72  te in particular
39b0: 20 74 68 61 74 20 43 72 61 79 20 43 2b 2b 20 6f   that Cray C++ o
39c0: 62 6a 65 63 74 73 20 74 6f 20 74 68 65 20 63 6f  bjects to the co
39d0: 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 0a 20 20 20  mbination of.   
39e0: 70 72 6f 74 6f 74 79 70 65 20 61 6e 64 20 69 6e  prototype and in
39f0: 6c 69 6e 65 2e 20 20 2a 2f 0a 23 69 66 64 65 66  line.  */.#ifdef
3a00: 20 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e   __GMP_EXTERN_IN
3a10: 4c 49 4e 45 0a 23 69 66 6e 64 65 66 20 5f 5f 47  LINE.#ifndef __G
3a20: 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54  MP_INLINE_PROTOT
3a30: 59 50 45 53 0a 23 64 65 66 69 6e 65 20 5f 5f 47  YPES.#define __G
3a40: 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54  MP_INLINE_PROTOT
3a50: 59 50 45 53 20 20 30 0a 23 65 6e 64 69 66 0a 23  YPES  0.#endif.#
3a60: 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 5f 5f 47  else.#define __G
3a70: 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54  MP_INLINE_PROTOT
3a80: 59 50 45 53 20 20 31 0a 23 65 6e 64 69 66 0a 0a  YPES  1.#endif..
3a90: 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 41  .#define __GMP_A
3aa0: 42 53 28 78 29 20 20 20 28 28 78 29 20 3e 3d 20  BS(x)   ((x) >= 
3ab0: 30 20 3f 20 28 78 29 20 3a 20 2d 28 78 29 29 0a  0 ? (x) : -(x)).
3ac0: 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 4d 41  #define __GMP_MA
3ad0: 58 28 68 2c 69 29 20 28 28 68 29 20 3e 20 28 69  X(h,i) ((h) > (i
3ae0: 29 20 3f 20 28 68 29 20 3a 20 28 69 29 29 0a 0a  ) ? (h) : (i))..
3af0: 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 5f 55 49  #define __GMP_UI
3b00: 4e 54 5f 4d 41 58 20 20 20 28 7e 20 28 75 6e 73  NT_MAX   (~ (uns
3b10: 69 67 6e 65 64 29 20 30 29 0a 23 64 65 66 69 6e  igned) 0).#defin
3b20: 65 20 5f 5f 47 4d 50 5f 55 4c 4f 4e 47 5f 4d 41  e __GMP_ULONG_MA
3b30: 58 20 20 28 7e 20 28 75 6e 73 69 67 6e 65 64 20  X  (~ (unsigned 
3b40: 6c 6f 6e 67 29 20 30 29 0a 23 64 65 66 69 6e 65  long) 0).#define
3b50: 20 5f 5f 47 4d 50 5f 55 53 48 52 54 5f 4d 41 58   __GMP_USHRT_MAX
3b60: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 73 68 6f    ((unsigned sho
3b70: 72 74 29 20 7e 30 29 0a 0a 0a 2f 2a 20 41 6c 6c  rt) ~0).../* All
3b80: 6f 77 20 64 69 72 65 63 74 20 75 73 65 72 20 61  ow direct user a
3b90: 63 63 65 73 73 20 74 6f 20 6e 75 6d 65 72 61 74  ccess to numerat
3ba0: 6f 72 20 61 6e 64 20 64 65 6e 6f 6d 69 6e 61 74  or and denominat
3bb0: 6f 72 20 6f 66 20 61 20 6d 70 71 5f 74 20 6f 62  or of a mpq_t ob
3bc0: 6a 65 63 74 2e 20 20 2a 2f 0a 23 64 65 66 69 6e  ject.  */.#defin
3bd0: 65 20 6d 70 71 5f 6e 75 6d 72 65 66 28 51 29 20  e mpq_numref(Q) 
3be0: 28 26 28 28 51 29 2d 3e 5f 6d 70 5f 6e 75 6d 29  (&((Q)->_mp_num)
3bf0: 29 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 64 65  ).#define mpq_de
3c00: 6e 72 65 66 28 51 29 20 28 26 28 28 51 29 2d 3e  nref(Q) (&((Q)->
3c10: 5f 6d 70 5f 64 65 6e 29 29 0a 0a 0a 23 69 66 20  _mp_den))...#if 
3c20: 64 65 66 69 6e 65 64 20 28 5f 5f 63 70 6c 75 73  defined (__cplus
3c30: 70 6c 75 73 29 0a 65 78 74 65 72 6e 20 22 43 22  plus).extern "C"
3c40: 20 7b 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66 69   {.#endif..#defi
3c50: 6e 65 20 6d 70 5f 73 65 74 5f 6d 65 6d 6f 72 79  ne mp_set_memory
3c60: 5f 66 75 6e 63 74 69 6f 6e 73 20 5f 5f 67 6d 70  _functions __gmp
3c70: 5f 73 65 74 5f 6d 65 6d 6f 72 79 5f 66 75 6e 63  _set_memory_func
3c80: 74 69 6f 6e 73 0a 5f 5f 47 4d 50 5f 44 45 43 4c  tions.__GMP_DECL
3c90: 53 50 45 43 20 76 6f 69 64 20 6d 70 5f 73 65 74  SPEC void mp_set
3ca0: 5f 6d 65 6d 6f 72 79 5f 66 75 6e 63 74 69 6f 6e  _memory_function
3cb0: 73 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  s __GMP_PROTO ((
3cc0: 76 6f 69 64 20 2a 28 2a 29 20 28 73 69 7a 65 5f  void *(*) (size_
3cd0: 74 29 2c 0a 09 09 09 09 20 20 20 20 20 20 76 6f  t),.....      vo
3ce0: 69 64 20 2a 28 2a 29 20 28 76 6f 69 64 20 2a 2c  id *(*) (void *,
3cf0: 20 73 69 7a 65 5f 74 2c 20 73 69 7a 65 5f 74 29   size_t, size_t)
3d00: 2c 0a 09 09 09 09 20 20 20 20 20 20 76 6f 69 64  ,.....      void
3d10: 20 28 2a 29 20 28 76 6f 69 64 20 2a 2c 20 73 69   (*) (void *, si
3d20: 7a 65 5f 74 29 29 29 20 5f 5f 47 4d 50 5f 4e 4f  ze_t))) __GMP_NO
3d30: 54 48 52 4f 57 3b 0a 0a 23 64 65 66 69 6e 65 20  THROW;..#define 
3d40: 6d 70 5f 62 69 74 73 5f 70 65 72 5f 6c 69 6d 62  mp_bits_per_limb
3d50: 20 5f 5f 67 6d 70 5f 62 69 74 73 5f 70 65 72 5f   __gmp_bits_per_
3d60: 6c 69 6d 62 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  limb.__GMP_DECLS
3d70: 50 45 43 20 65 78 74 65 72 6e 20 5f 5f 67 6d 70  PEC extern __gmp
3d80: 5f 63 6f 6e 73 74 20 69 6e 74 20 6d 70 5f 62 69  _const int mp_bi
3d90: 74 73 5f 70 65 72 5f 6c 69 6d 62 3b 0a 0a 23 64  ts_per_limb;..#d
3da0: 65 66 69 6e 65 20 67 6d 70 5f 65 72 72 6e 6f 20  efine gmp_errno 
3db0: 5f 5f 67 6d 70 5f 65 72 72 6e 6f 0a 5f 5f 47 4d  __gmp_errno.__GM
3dc0: 50 5f 44 45 43 4c 53 50 45 43 20 65 78 74 65 72  P_DECLSPEC exter
3dd0: 6e 20 69 6e 74 20 67 6d 70 5f 65 72 72 6e 6f 3b  n int gmp_errno;
3de0: 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70 5f 76 65  ..#define gmp_ve
3df0: 72 73 69 6f 6e 20 5f 5f 67 6d 70 5f 76 65 72 73  rsion __gmp_vers
3e00: 69 6f 6e 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  ion.__GMP_DECLSP
3e10: 45 43 20 65 78 74 65 72 6e 20 5f 5f 67 6d 70 5f  EC extern __gmp_
3e20: 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 5f 5f 67  const char * __g
3e30: 6d 70 5f 63 6f 6e 73 74 20 67 6d 70 5f 76 65 72  mp_const gmp_ver
3e40: 73 69 6f 6e 3b 0a 0a 2f 2a 20 54 68 65 20 66 6f  sion;../* The fo
3e50: 6c 6c 6f 77 69 6e 67 20 66 6f 72 20 69 6e 74 65  llowing for inte
3e60: 72 6e 61 6c 20 75 73 65 20 6f 6e 6c 79 2e 0a 20  rnal use only.. 
3e70: 20 20 45 6e 68 61 6e 63 65 6d 65 6e 74 3a 20 5f    Enhancement: _
3e80: 5f 67 6d 70 5f 61 6c 6c 6f 63 61 74 65 5f 66 75  _gmp_allocate_fu
3e90: 6e 63 20 63 6f 75 6c 64 20 68 61 76 65 20 22 5f  nc could have "_
3ea0: 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 6d  _attribute__ ((m
3eb0: 61 6c 6c 6f 63 29 29 22 2c 0a 20 20 20 62 75 74  alloc))",.   but
3ec0: 20 63 75 72 72 65 6e 74 20 67 63 63 20 28 33 2e   current gcc (3.
3ed0: 30 29 20 64 6f 65 73 6e 27 74 20 73 65 65 6d 20  0) doesn't seem 
3ee0: 74 6f 20 73 75 70 70 6f 72 74 20 74 68 61 74 2e  to support that.
3ef0: 20 20 2a 2f 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53    */.__GMP_DECLS
3f00: 50 45 43 20 65 78 74 65 72 6e 20 76 6f 69 64 20  PEC extern void 
3f10: 2a 20 28 2a 5f 5f 67 6d 70 5f 61 6c 6c 6f 63 61  * (*__gmp_alloca
3f20: 74 65 5f 66 75 6e 63 29 20 5f 5f 47 4d 50 5f 50  te_func) __GMP_P
3f30: 52 4f 54 4f 20 28 28 73 69 7a 65 5f 74 29 29 3b  ROTO ((size_t));
3f40: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
3f50: 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 20 28 2a  extern void * (*
3f60: 5f 5f 67 6d 70 5f 72 65 61 6c 6c 6f 63 61 74 65  __gmp_reallocate
3f70: 5f 66 75 6e 63 29 20 5f 5f 47 4d 50 5f 50 52 4f  _func) __GMP_PRO
3f80: 54 4f 20 28 28 76 6f 69 64 20 2a 2c 20 73 69 7a  TO ((void *, siz
3f90: 65 5f 74 2c 20 73 69 7a 65 5f 74 29 29 3b 0a 5f  e_t, size_t));._
3fa0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 65 78  _GMP_DECLSPEC ex
3fb0: 74 65 72 6e 20 76 6f 69 64 20 20 20 28 2a 5f 5f  tern void   (*__
3fc0: 67 6d 70 5f 66 72 65 65 5f 66 75 6e 63 29 20 5f  gmp_free_func) _
3fd0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 76 6f 69  _GMP_PROTO ((voi
3fe0: 64 20 2a 2c 20 73 69 7a 65 5f 74 29 29 3b 0a 0a  d *, size_t));..
3ff0: 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ./**************
4000: 2a 2a 20 52 61 6e 64 6f 6d 20 6e 75 6d 62 65 72  ** Random number
4010: 20 72 6f 75 74 69 6e 65 73 2e 20 20 2a 2a 2a 2a   routines.  ****
4020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f  ************/../
4030: 2a 20 6f 62 73 6f 6c 65 74 65 20 2a 2f 0a 23 64  * obsolete */.#d
4040: 65 66 69 6e 65 20 67 6d 70 5f 72 61 6e 64 69 6e  efine gmp_randin
4050: 69 74 20 5f 5f 67 6d 70 5f 72 61 6e 64 69 6e 69  it __gmp_randini
4060: 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  t.__GMP_DECLSPEC
4070: 20 76 6f 69 64 20 67 6d 70 5f 72 61 6e 64 69 6e   void gmp_randin
4080: 69 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  it __GMP_PROTO (
4090: 28 67 6d 70 5f 72 61 6e 64 73 74 61 74 65 5f 74  (gmp_randstate_t
40a0: 2c 20 67 6d 70 5f 72 61 6e 64 61 6c 67 5f 74 2c  , gmp_randalg_t,
40b0: 20 2e 2e 2e 29 29 3b 0a 0a 23 64 65 66 69 6e 65   ...));..#define
40c0: 20 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 64 65   gmp_randinit_de
40d0: 66 61 75 6c 74 20 5f 5f 67 6d 70 5f 72 61 6e 64  fault __gmp_rand
40e0: 69 6e 69 74 5f 64 65 66 61 75 6c 74 0a 5f 5f 47  init_default.__G
40f0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
4100: 20 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 64 65   gmp_randinit_de
4110: 66 61 75 6c 74 20 5f 5f 47 4d 50 5f 50 52 4f 54  fault __GMP_PROT
4120: 4f 20 28 28 67 6d 70 5f 72 61 6e 64 73 74 61 74  O ((gmp_randstat
4130: 65 5f 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  e_t));..#define 
4140: 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 6c 63 20  gmp_randinit_lc 
4150: 5f 5f 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 6c  __gmp_randinit_l
4160: 63 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  c.__GMP_DECLSPEC
4170: 20 76 6f 69 64 20 67 6d 70 5f 72 61 6e 64 69 6e   void gmp_randin
4180: 69 74 5f 6c 63 20 5f 5f 47 4d 50 5f 50 52 4f 54  it_lc __GMP_PROT
4190: 4f 20 28 28 67 6d 70 5f 72 61 6e 64 73 74 61 74  O ((gmp_randstat
41a0: 65 5f 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20  e_t,.           
41b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
41c0: 20 20 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75     mpz_srcptr, u
41d0: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74  nsigned long int
41e0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
41f0: 0a 23 64 65 66 69 6e 65 20 67 6d 70 5f 72 61 6e  .#define gmp_ran
4200: 64 69 6e 69 74 5f 6c 63 5f 32 65 78 70 20 5f 5f  dinit_lc_2exp __
4210: 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 6c 63 5f  gmp_randinit_lc_
4220: 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  2exp.__GMP_DECLS
4230: 50 45 43 20 76 6f 69 64 20 67 6d 70 5f 72 61 6e  PEC void gmp_ran
4240: 64 69 6e 69 74 5f 6c 63 5f 32 65 78 70 20 5f 5f  dinit_lc_2exp __
4250: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 67 6d 70 5f  GMP_PROTO ((gmp_
4260: 72 61 6e 64 73 74 61 74 65 5f 74 2c 0a 20 20 20  randstate_t,.   
4270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4290: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
42a0: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 2c 0a 09  gned long int,..
42b0: 09 09 09 20 20 20 75 6e 73 69 67 6e 65 64 20 6c  ...   unsigned l
42c0: 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66  ong int));..#def
42d0: 69 6e 65 20 67 6d 70 5f 72 61 6e 64 69 6e 69 74  ine gmp_randinit
42e0: 5f 6c 63 5f 32 65 78 70 5f 73 69 7a 65 20 5f 5f  _lc_2exp_size __
42f0: 67 6d 70 5f 72 61 6e 64 69 6e 69 74 5f 6c 63 5f  gmp_randinit_lc_
4300: 32 65 78 70 5f 73 69 7a 65 0a 5f 5f 47 4d 50 5f  2exp_size.__GMP_
4310: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67 6d 70  DECLSPEC int gmp
4320: 5f 72 61 6e 64 69 6e 69 74 5f 6c 63 5f 32 65 78  _randinit_lc_2ex
4330: 70 5f 73 69 7a 65 20 5f 5f 47 4d 50 5f 50 52 4f  p_size __GMP_PRO
4340: 54 4f 20 28 28 67 6d 70 5f 72 61 6e 64 73 74 61  TO ((gmp_randsta
4350: 74 65 5f 74 2c 20 75 6e 73 69 67 6e 65 64 20 6c  te_t, unsigned l
4360: 6f 6e 67 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ong));..#define 
4370: 67 6d 70 5f 72 61 6e 64 73 65 65 64 20 5f 5f 67  gmp_randseed __g
4380: 6d 70 5f 72 61 6e 64 73 65 65 64 0a 5f 5f 47 4d  mp_randseed.__GM
4390: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
43a0: 67 6d 70 5f 72 61 6e 64 73 65 65 64 20 5f 5f 47  gmp_randseed __G
43b0: 4d 50 5f 50 52 4f 54 4f 20 28 28 67 6d 70 5f 72  MP_PROTO ((gmp_r
43c0: 61 6e 64 73 74 61 74 65 5f 74 2c 20 6d 70 7a 5f  andstate_t, mpz_
43d0: 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  srcptr));..#defi
43e0: 6e 65 20 67 6d 70 5f 72 61 6e 64 73 65 65 64 5f  ne gmp_randseed_
43f0: 75 69 20 5f 5f 67 6d 70 5f 72 61 6e 64 73 65 65  ui __gmp_randsee
4400: 64 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  d_ui.__GMP_DECLS
4410: 50 45 43 20 76 6f 69 64 20 67 6d 70 5f 72 61 6e  PEC void gmp_ran
4420: 64 73 65 65 64 5f 75 69 20 5f 5f 47 4d 50 5f 50  dseed_ui __GMP_P
4430: 52 4f 54 4f 20 28 28 67 6d 70 5f 72 61 6e 64 73  ROTO ((gmp_rands
4440: 74 61 74 65 5f 74 2c 20 75 6e 73 69 67 6e 65 64  tate_t, unsigned
4450: 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64   long int));..#d
4460: 65 66 69 6e 65 20 67 6d 70 5f 72 61 6e 64 63 6c  efine gmp_randcl
4470: 65 61 72 20 5f 5f 67 6d 70 5f 72 61 6e 64 63 6c  ear __gmp_randcl
4480: 65 61 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  ear.__GMP_DECLSP
4490: 45 43 20 76 6f 69 64 20 67 6d 70 5f 72 61 6e 64  EC void gmp_rand
44a0: 63 6c 65 61 72 20 5f 5f 47 4d 50 5f 50 52 4f 54  clear __GMP_PROT
44b0: 4f 20 28 28 67 6d 70 5f 72 61 6e 64 73 74 61 74  O ((gmp_randstat
44c0: 65 5f 74 29 29 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a  e_t));.../******
44d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 46 6f 72 6d 61  ********** Forma
44e0: 74 74 65 64 20 6f 75 74 70 75 74 20 72 6f 75 74  tted output rout
44f0: 69 6e 65 73 2e 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  ines.  *********
4500: 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 23 64 65 66 69 6e  *******/..#defin
4510: 65 20 67 6d 70 5f 61 73 70 72 69 6e 74 66 20 5f  e gmp_asprintf _
4520: 5f 67 6d 70 5f 61 73 70 72 69 6e 74 66 0a 5f 5f  _gmp_asprintf.__
4530: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
4540: 20 67 6d 70 5f 61 73 70 72 69 6e 74 66 20 5f 5f   gmp_asprintf __
4550: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63 68 61 72  GMP_PROTO ((char
4560: 20 2a 2a 2c 20 63 6f 6e 73 74 20 63 68 61 72 20   **, const char 
4570: 2a 2c 20 2e 2e 2e 29 29 3b 0a 0a 23 64 65 66 69  *, ...));..#defi
4580: 6e 65 20 67 6d 70 5f 66 70 72 69 6e 74 66 20 5f  ne gmp_fprintf _
4590: 5f 67 6d 70 5f 66 70 72 69 6e 74 66 0a 23 69 66  _gmp_fprintf.#if
45a0: 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 46 49 4c   _GMP_H_HAVE_FIL
45b0: 45 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  E.__GMP_DECLSPEC
45c0: 20 69 6e 74 20 67 6d 70 5f 66 70 72 69 6e 74 66   int gmp_fprintf
45d0: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 46   __GMP_PROTO ((F
45e0: 49 4c 45 20 2a 2c 20 63 6f 6e 73 74 20 63 68 61  ILE *, const cha
45f0: 72 20 2a 2c 20 2e 2e 2e 29 29 3b 0a 23 65 6e 64  r *, ...));.#end
4600: 69 66 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70 5f  if..#define gmp_
4610: 6f 62 73 74 61 63 6b 5f 70 72 69 6e 74 66 20 5f  obstack_printf _
4620: 5f 67 6d 70 5f 6f 62 73 74 61 63 6b 5f 70 72 69  _gmp_obstack_pri
4630: 6e 74 66 0a 23 69 66 20 5f 47 4d 50 5f 48 5f 48  ntf.#if _GMP_H_H
4640: 41 56 45 5f 4f 42 53 54 41 43 4b 0a 5f 5f 47 4d  AVE_OBSTACK.__GM
4650: 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67  P_DECLSPEC int g
4660: 6d 70 5f 6f 62 73 74 61 63 6b 5f 70 72 69 6e 74  mp_obstack_print
4670: 66 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  f __GMP_PROTO ((
4680: 73 74 72 75 63 74 20 6f 62 73 74 61 63 6b 20 2a  struct obstack *
4690: 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20  , const char *, 
46a0: 2e 2e 2e 29 29 3b 0a 23 65 6e 64 69 66 0a 0a 23  ...));.#endif..#
46b0: 64 65 66 69 6e 65 20 67 6d 70 5f 6f 62 73 74 61  define gmp_obsta
46c0: 63 6b 5f 76 70 72 69 6e 74 66 20 5f 5f 67 6d 70  ck_vprintf __gmp
46d0: 5f 6f 62 73 74 61 63 6b 5f 76 70 72 69 6e 74 66  _obstack_vprintf
46e0: 0a 23 69 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45  .#if _GMP_H_HAVE
46f0: 5f 4f 42 53 54 41 43 4b 20 26 26 20 5f 47 4d 50  _OBSTACK && _GMP
4700: 5f 48 5f 48 41 56 45 5f 56 41 5f 4c 49 53 54 0a  _H_HAVE_VA_LIST.
4710: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69  __GMP_DECLSPEC i
4720: 6e 74 20 67 6d 70 5f 6f 62 73 74 61 63 6b 5f 76  nt gmp_obstack_v
4730: 70 72 69 6e 74 66 20 5f 5f 47 4d 50 5f 50 52 4f  printf __GMP_PRO
4740: 54 4f 20 28 28 73 74 72 75 63 74 20 6f 62 73 74  TO ((struct obst
4750: 61 63 6b 20 2a 2c 20 63 6f 6e 73 74 20 63 68 61  ack *, const cha
4760: 72 20 2a 2c 20 76 61 5f 6c 69 73 74 29 29 3b 0a  r *, va_list));.
4770: 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20  #endif..#define 
4780: 67 6d 70 5f 70 72 69 6e 74 66 20 5f 5f 67 6d 70  gmp_printf __gmp
4790: 5f 70 72 69 6e 74 66 0a 5f 5f 47 4d 50 5f 44 45  _printf.__GMP_DE
47a0: 43 4c 53 50 45 43 20 69 6e 74 20 67 6d 70 5f 70  CLSPEC int gmp_p
47b0: 72 69 6e 74 66 20 5f 5f 47 4d 50 5f 50 52 4f 54  rintf __GMP_PROT
47c0: 4f 20 28 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  O ((const char *
47d0: 2c 20 2e 2e 2e 29 29 3b 0a 0a 23 64 65 66 69 6e  , ...));..#defin
47e0: 65 20 67 6d 70 5f 73 6e 70 72 69 6e 74 66 20 5f  e gmp_snprintf _
47f0: 5f 67 6d 70 5f 73 6e 70 72 69 6e 74 66 0a 5f 5f  _gmp_snprintf.__
4800: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
4810: 20 67 6d 70 5f 73 6e 70 72 69 6e 74 66 20 5f 5f   gmp_snprintf __
4820: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63 68 61 72  GMP_PROTO ((char
4830: 20 2a 2c 20 73 69 7a 65 5f 74 2c 20 63 6f 6e 73   *, size_t, cons
4840: 74 20 63 68 61 72 20 2a 2c 20 2e 2e 2e 29 29 3b  t char *, ...));
4850: 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70 5f 73 70  ..#define gmp_sp
4860: 72 69 6e 74 66 20 5f 5f 67 6d 70 5f 73 70 72 69  rintf __gmp_spri
4870: 6e 74 66 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  ntf.__GMP_DECLSP
4880: 45 43 20 69 6e 74 20 67 6d 70 5f 73 70 72 69 6e  EC int gmp_sprin
4890: 74 66 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  tf __GMP_PROTO (
48a0: 28 63 68 61 72 20 2a 2c 20 63 6f 6e 73 74 20 63  (char *, const c
48b0: 68 61 72 20 2a 2c 20 2e 2e 2e 29 29 3b 0a 0a 23  har *, ...));..#
48c0: 64 65 66 69 6e 65 20 67 6d 70 5f 76 61 73 70 72  define gmp_vaspr
48d0: 69 6e 74 66 20 5f 5f 67 6d 70 5f 76 61 73 70 72  intf __gmp_vaspr
48e0: 69 6e 74 66 0a 23 69 66 20 5f 47 4d 50 5f 48 5f  intf.#if _GMP_H_
48f0: 48 41 56 45 5f 56 41 5f 4c 49 53 54 0a 5f 5f 47  HAVE_VA_LIST.__G
4900: 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20  MP_DECLSPEC int 
4910: 67 6d 70 5f 76 61 73 70 72 69 6e 74 66 20 5f 5f  gmp_vasprintf __
4920: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63 68 61 72  GMP_PROTO ((char
4930: 20 2a 2a 2c 20 63 6f 6e 73 74 20 63 68 61 72 20   **, const char 
4940: 2a 2c 20 76 61 5f 6c 69 73 74 29 29 3b 0a 23 65  *, va_list));.#e
4950: 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20 67 6d  ndif..#define gm
4960: 70 5f 76 66 70 72 69 6e 74 66 20 5f 5f 67 6d 70  p_vfprintf __gmp
4970: 5f 76 66 70 72 69 6e 74 66 0a 23 69 66 20 5f 47  _vfprintf.#if _G
4980: 4d 50 5f 48 5f 48 41 56 45 5f 46 49 4c 45 20 26  MP_H_HAVE_FILE &
4990: 26 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 56 41  & _GMP_H_HAVE_VA
49a0: 5f 4c 49 53 54 0a 5f 5f 47 4d 50 5f 44 45 43 4c  _LIST.__GMP_DECL
49b0: 53 50 45 43 20 69 6e 74 20 67 6d 70 5f 76 66 70  SPEC int gmp_vfp
49c0: 72 69 6e 74 66 20 5f 5f 47 4d 50 5f 50 52 4f 54  rintf __GMP_PROT
49d0: 4f 20 28 28 46 49 4c 45 20 2a 2c 20 63 6f 6e 73  O ((FILE *, cons
49e0: 74 20 63 68 61 72 20 2a 2c 20 76 61 5f 6c 69 73  t char *, va_lis
49f0: 74 29 29 3b 0a 23 65 6e 64 69 66 0a 0a 23 64 65  t));.#endif..#de
4a00: 66 69 6e 65 20 67 6d 70 5f 76 70 72 69 6e 74 66  fine gmp_vprintf
4a10: 20 5f 5f 67 6d 70 5f 76 70 72 69 6e 74 66 0a 23   __gmp_vprintf.#
4a20: 69 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 56  if _GMP_H_HAVE_V
4a30: 41 5f 4c 49 53 54 0a 5f 5f 47 4d 50 5f 44 45 43  A_LIST.__GMP_DEC
4a40: 4c 53 50 45 43 20 69 6e 74 20 67 6d 70 5f 76 70  LSPEC int gmp_vp
4a50: 72 69 6e 74 66 20 5f 5f 47 4d 50 5f 50 52 4f 54  rintf __GMP_PROT
4a60: 4f 20 28 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  O ((const char *
4a70: 2c 20 76 61 5f 6c 69 73 74 29 29 3b 0a 23 65 6e  , va_list));.#en
4a80: 64 69 66 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70  dif..#define gmp
4a90: 5f 76 73 6e 70 72 69 6e 74 66 20 5f 5f 67 6d 70  _vsnprintf __gmp
4aa0: 5f 76 73 6e 70 72 69 6e 74 66 0a 23 69 66 20 5f  _vsnprintf.#if _
4ab0: 47 4d 50 5f 48 5f 48 41 56 45 5f 56 41 5f 4c 49  GMP_H_HAVE_VA_LI
4ac0: 53 54 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ST.__GMP_DECLSPE
4ad0: 43 20 69 6e 74 20 67 6d 70 5f 76 73 6e 70 72 69  C int gmp_vsnpri
4ae0: 6e 74 66 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  ntf __GMP_PROTO 
4af0: 28 28 63 68 61 72 20 2a 2c 20 73 69 7a 65 5f 74  ((char *, size_t
4b00: 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20  , const char *, 
4b10: 76 61 5f 6c 69 73 74 29 29 3b 0a 23 65 6e 64 69  va_list));.#endi
4b20: 66 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70 5f 76  f..#define gmp_v
4b30: 73 70 72 69 6e 74 66 20 5f 5f 67 6d 70 5f 76 73  sprintf __gmp_vs
4b40: 70 72 69 6e 74 66 0a 23 69 66 20 5f 47 4d 50 5f  printf.#if _GMP_
4b50: 48 5f 48 41 56 45 5f 56 41 5f 4c 49 53 54 0a 5f  H_HAVE_VA_LIST._
4b60: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
4b70: 74 20 67 6d 70 5f 76 73 70 72 69 6e 74 66 20 5f  t gmp_vsprintf _
4b80: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63 68 61  _GMP_PROTO ((cha
4b90: 72 20 2a 2c 20 63 6f 6e 73 74 20 63 68 61 72 20  r *, const char 
4ba0: 2a 2c 20 76 61 5f 6c 69 73 74 29 29 3b 0a 23 65  *, va_list));.#e
4bb0: 6e 64 69 66 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a  ndif.../********
4bc0: 2a 2a 2a 2a 2a 2a 2a 2a 20 46 6f 72 6d 61 74 74  ******** Formatt
4bd0: 65 64 20 69 6e 70 75 74 20 72 6f 75 74 69 6e 65  ed input routine
4be0: 73 2e 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  s.  ************
4bf0: 2a 2a 2a 2a 2f 0a 0a 23 64 65 66 69 6e 65 20 67  ****/..#define g
4c00: 6d 70 5f 66 73 63 61 6e 66 20 5f 5f 67 6d 70 5f  mp_fscanf __gmp_
4c10: 66 73 63 61 6e 66 0a 23 69 66 20 5f 47 4d 50 5f  fscanf.#if _GMP_
4c20: 48 5f 48 41 56 45 5f 46 49 4c 45 0a 5f 5f 47 4d  H_HAVE_FILE.__GM
4c30: 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67  P_DECLSPEC int g
4c40: 6d 70 5f 66 73 63 61 6e 66 20 5f 5f 47 4d 50 5f  mp_fscanf __GMP_
4c50: 50 52 4f 54 4f 20 28 28 46 49 4c 45 20 2a 2c 20  PROTO ((FILE *, 
4c60: 63 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20 2e 2e  const char *, ..
4c70: 2e 29 29 3b 0a 23 65 6e 64 69 66 0a 0a 23 64 65  .));.#endif..#de
4c80: 66 69 6e 65 20 67 6d 70 5f 73 63 61 6e 66 20 5f  fine gmp_scanf _
4c90: 5f 67 6d 70 5f 73 63 61 6e 66 0a 5f 5f 47 4d 50  _gmp_scanf.__GMP
4ca0: 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67 6d  _DECLSPEC int gm
4cb0: 70 5f 73 63 61 6e 66 20 5f 5f 47 4d 50 5f 50 52  p_scanf __GMP_PR
4cc0: 4f 54 4f 20 28 28 63 6f 6e 73 74 20 63 68 61 72  OTO ((const char
4cd0: 20 2a 2c 20 2e 2e 2e 29 29 3b 0a 0a 23 64 65 66   *, ...));..#def
4ce0: 69 6e 65 20 67 6d 70 5f 73 73 63 61 6e 66 20 5f  ine gmp_sscanf _
4cf0: 5f 67 6d 70 5f 73 73 63 61 6e 66 0a 5f 5f 47 4d  _gmp_sscanf.__GM
4d00: 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67  P_DECLSPEC int g
4d10: 6d 70 5f 73 73 63 61 6e 66 20 5f 5f 47 4d 50 5f  mp_sscanf __GMP_
4d20: 50 52 4f 54 4f 20 28 28 63 6f 6e 73 74 20 63 68  PROTO ((const ch
4d30: 61 72 20 2a 2c 20 63 6f 6e 73 74 20 63 68 61 72  ar *, const char
4d40: 20 2a 2c 20 2e 2e 2e 29 29 3b 0a 0a 23 64 65 66   *, ...));..#def
4d50: 69 6e 65 20 67 6d 70 5f 76 66 73 63 61 6e 66 20  ine gmp_vfscanf 
4d60: 5f 5f 67 6d 70 5f 76 66 73 63 61 6e 66 0a 23 69  __gmp_vfscanf.#i
4d70: 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 46 49  f _GMP_H_HAVE_FI
4d80: 4c 45 20 26 26 20 5f 47 4d 50 5f 48 5f 48 41 56  LE && _GMP_H_HAV
4d90: 45 5f 56 41 5f 4c 49 53 54 0a 5f 5f 47 4d 50 5f  E_VA_LIST.__GMP_
4da0: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 67 6d 70  DECLSPEC int gmp
4db0: 5f 76 66 73 63 61 6e 66 20 5f 5f 47 4d 50 5f 50  _vfscanf __GMP_P
4dc0: 52 4f 54 4f 20 28 28 46 49 4c 45 20 2a 2c 20 63  ROTO ((FILE *, c
4dd0: 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20 76 61 5f  onst char *, va_
4de0: 6c 69 73 74 29 29 3b 0a 23 65 6e 64 69 66 0a 0a  list));.#endif..
4df0: 23 64 65 66 69 6e 65 20 67 6d 70 5f 76 73 63 61  #define gmp_vsca
4e00: 6e 66 20 5f 5f 67 6d 70 5f 76 73 63 61 6e 66 0a  nf __gmp_vscanf.
4e10: 23 69 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f  #if _GMP_H_HAVE_
4e20: 56 41 5f 4c 49 53 54 0a 5f 5f 47 4d 50 5f 44 45  VA_LIST.__GMP_DE
4e30: 43 4c 53 50 45 43 20 69 6e 74 20 67 6d 70 5f 76  CLSPEC int gmp_v
4e40: 73 63 61 6e 66 20 5f 5f 47 4d 50 5f 50 52 4f 54  scanf __GMP_PROT
4e50: 4f 20 28 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  O ((const char *
4e60: 2c 20 76 61 5f 6c 69 73 74 29 29 3b 0a 23 65 6e  , va_list));.#en
4e70: 64 69 66 0a 0a 23 64 65 66 69 6e 65 20 67 6d 70  dif..#define gmp
4e80: 5f 76 73 73 63 61 6e 66 20 5f 5f 67 6d 70 5f 76  _vsscanf __gmp_v
4e90: 73 73 63 61 6e 66 0a 23 69 66 20 5f 47 4d 50 5f  sscanf.#if _GMP_
4ea0: 48 5f 48 41 56 45 5f 56 41 5f 4c 49 53 54 0a 5f  H_HAVE_VA_LIST._
4eb0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
4ec0: 74 20 67 6d 70 5f 76 73 73 63 61 6e 66 20 5f 5f  t gmp_vsscanf __
4ed0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63 6f 6e 73  GMP_PROTO ((cons
4ee0: 74 20 63 68 61 72 20 2a 2c 20 63 6f 6e 73 74 20  t char *, const 
4ef0: 63 68 61 72 20 2a 2c 20 76 61 5f 6c 69 73 74 29  char *, va_list)
4f00: 29 3b 0a 23 65 6e 64 69 66 0a 0a 0a 2f 2a 2a 2a  );.#endif.../***
4f10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 49 6e  ************* In
4f20: 74 65 67 65 72 20 28 69 2e 65 2e 20 5a 29 20 72  teger (i.e. Z) r
4f30: 6f 75 74 69 6e 65 73 2e 20 20 2a 2a 2a 2a 2a 2a  outines.  ******
4f40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 23 64 65  **********/..#de
4f50: 66 69 6e 65 20 5f 6d 70 7a 5f 72 65 61 6c 6c 6f  fine _mpz_reallo
4f60: 63 20 5f 5f 67 6d 70 7a 5f 72 65 61 6c 6c 6f 63  c __gmpz_realloc
4f70: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 72 65 61  .#define mpz_rea
4f80: 6c 6c 6f 63 20 5f 5f 67 6d 70 7a 5f 72 65 61 6c  lloc __gmpz_real
4f90: 6c 6f 63 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  loc.__GMP_DECLSP
4fa0: 45 43 20 76 6f 69 64 20 2a 5f 6d 70 7a 5f 72 65  EC void *_mpz_re
4fb0: 61 6c 6c 6f 63 20 5f 5f 47 4d 50 5f 50 52 4f 54  alloc __GMP_PROT
4fc0: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 5f  O ((mpz_ptr, mp_
4fd0: 73 69 7a 65 5f 74 29 29 3b 0a 0a 23 64 65 66 69  size_t));..#defi
4fe0: 6e 65 20 6d 70 7a 5f 61 62 73 20 5f 5f 67 6d 70  ne mpz_abs __gmp
4ff0: 7a 5f 61 62 73 0a 23 69 66 20 5f 5f 47 4d 50 5f  z_abs.#if __GMP_
5000: 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54 59 50 45  INLINE_PROTOTYPE
5010: 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  S || __GMP_FORCE
5020: 5f 6d 70 7a 5f 61 62 73 0a 5f 5f 47 4d 50 5f 44  _mpz_abs.__GMP_D
5030: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
5040: 5f 61 62 73 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _abs __GMP_PROTO
5050: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f   ((mpz_ptr, mpz_
5060: 73 72 63 70 74 72 29 29 3b 0a 23 65 6e 64 69 66  srcptr));.#endif
5070: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 61 64  ..#define mpz_ad
5080: 64 20 5f 5f 67 6d 70 7a 5f 61 64 64 0a 5f 5f 47  d __gmpz_add.__G
5090: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
50a0: 20 6d 70 7a 5f 61 64 64 20 5f 5f 47 4d 50 5f 50   mpz_add __GMP_P
50b0: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
50c0: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f  mpz_srcptr, mpz_
50d0: 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  srcptr));..#defi
50e0: 6e 65 20 6d 70 7a 5f 61 64 64 5f 75 69 20 5f 5f  ne mpz_add_ui __
50f0: 67 6d 70 7a 5f 61 64 64 5f 75 69 0a 5f 5f 47 4d  gmpz_add_ui.__GM
5100: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
5110: 6d 70 7a 5f 61 64 64 5f 75 69 20 5f 5f 47 4d 50  mpz_add_ui __GMP
5120: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
5130: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e  , mpz_srcptr, un
5140: 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29  signed long int)
5150: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
5160: 61 64 64 6d 75 6c 20 5f 5f 67 6d 70 7a 5f 61 64  addmul __gmpz_ad
5170: 64 6d 75 6c 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  dmul.__GMP_DECLS
5180: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 61 64 64  PEC void mpz_add
5190: 6d 75 6c 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  mul __GMP_PROTO 
51a0: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73  ((mpz_ptr, mpz_s
51b0: 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74  rcptr, mpz_srcpt
51c0: 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  r));..#define mp
51d0: 7a 5f 61 64 64 6d 75 6c 5f 75 69 20 5f 5f 67 6d  z_addmul_ui __gm
51e0: 70 7a 5f 61 64 64 6d 75 6c 5f 75 69 0a 5f 5f 47  pz_addmul_ui.__G
51f0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
5200: 20 6d 70 7a 5f 61 64 64 6d 75 6c 5f 75 69 20 5f   mpz_addmul_ui _
5210: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
5220: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
5230: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
5240: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
5250: 6d 70 7a 5f 61 6e 64 20 5f 5f 67 6d 70 7a 5f 61  mpz_and __gmpz_a
5260: 6e 64 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  nd.__GMP_DECLSPE
5270: 43 20 76 6f 69 64 20 6d 70 7a 5f 61 6e 64 20 5f  C void mpz_and _
5280: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
5290: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
52a0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
52b0: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 61 72 72  .#define mpz_arr
52c0: 61 79 5f 69 6e 69 74 20 5f 5f 67 6d 70 7a 5f 61  ay_init __gmpz_a
52d0: 72 72 61 79 5f 69 6e 69 74 0a 5f 5f 47 4d 50 5f  rray_init.__GMP_
52e0: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
52f0: 7a 5f 61 72 72 61 79 5f 69 6e 69 74 20 5f 5f 47  z_array_init __G
5300: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
5310: 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d  tr, mp_size_t, m
5320: 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a 23 64 65  p_size_t));..#de
5330: 66 69 6e 65 20 6d 70 7a 5f 62 69 6e 5f 75 69 20  fine mpz_bin_ui 
5340: 5f 5f 67 6d 70 7a 5f 62 69 6e 5f 75 69 0a 5f 5f  __gmpz_bin_ui.__
5350: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
5360: 64 20 6d 70 7a 5f 62 69 6e 5f 75 69 20 5f 5f 47  d mpz_bin_ui __G
5370: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
5380: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20  tr, mpz_srcptr, 
5390: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e  unsigned long in
53a0: 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  t));..#define mp
53b0: 7a 5f 62 69 6e 5f 75 69 75 69 20 5f 5f 67 6d 70  z_bin_uiui __gmp
53c0: 7a 5f 62 69 6e 5f 75 69 75 69 0a 5f 5f 47 4d 50  z_bin_uiui.__GMP
53d0: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
53e0: 70 7a 5f 62 69 6e 5f 75 69 75 69 20 5f 5f 47 4d  pz_bin_uiui __GM
53f0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
5400: 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  r, unsigned long
5410: 20 69 6e 74 2c 20 75 6e 73 69 67 6e 65 64 20 6c   int, unsigned l
5420: 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66  ong int));..#def
5430: 69 6e 65 20 6d 70 7a 5f 63 64 69 76 5f 71 20 5f  ine mpz_cdiv_q _
5440: 5f 67 6d 70 7a 5f 63 64 69 76 5f 71 0a 5f 5f 47  _gmpz_cdiv_q.__G
5450: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
5460: 20 6d 70 7a 5f 63 64 69 76 5f 71 20 5f 5f 47 4d   mpz_cdiv_q __GM
5470: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
5480: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d  r, mpz_srcptr, m
5490: 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64  pz_srcptr));..#d
54a0: 65 66 69 6e 65 20 6d 70 7a 5f 63 64 69 76 5f 71  efine mpz_cdiv_q
54b0: 5f 32 65 78 70 20 5f 5f 67 6d 70 7a 5f 63 64 69  _2exp __gmpz_cdi
54c0: 76 5f 71 5f 32 65 78 70 0a 5f 5f 47 4d 50 5f 44  v_q_2exp.__GMP_D
54d0: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
54e0: 5f 63 64 69 76 5f 71 5f 32 65 78 70 20 5f 5f 47  _cdiv_q_2exp __G
54f0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
5500: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20  tr, mpz_srcptr, 
5510: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 29 29 3b  unsigned long));
5520: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 64  ..#define mpz_cd
5530: 69 76 5f 71 5f 75 69 20 5f 5f 67 6d 70 7a 5f 63  iv_q_ui __gmpz_c
5540: 64 69 76 5f 71 5f 75 69 0a 5f 5f 47 4d 50 5f 44  div_q_ui.__GMP_D
5550: 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64  ECLSPEC unsigned
5560: 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 63 64   long int mpz_cd
5570: 69 76 5f 71 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  iv_q_ui __GMP_PR
5580: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
5590: 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pz_srcptr, unsig
55a0: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a  ned long int));.
55b0: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 64 69  .#define mpz_cdi
55c0: 76 5f 71 72 20 5f 5f 67 6d 70 7a 5f 63 64 69 76  v_qr __gmpz_cdiv
55d0: 5f 71 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _qr.__GMP_DECLSP
55e0: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 63 64 69 76  EC void mpz_cdiv
55f0: 5f 71 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _qr __GMP_PROTO 
5600: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 70  ((mpz_ptr, mpz_p
5610: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20  tr, mpz_srcptr, 
5620: 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpz_srcptr));..#
5630: 64 65 66 69 6e 65 20 6d 70 7a 5f 63 64 69 76 5f  define mpz_cdiv_
5640: 71 72 5f 75 69 20 5f 5f 67 6d 70 7a 5f 63 64 69  qr_ui __gmpz_cdi
5650: 76 5f 71 72 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45  v_qr_ui.__GMP_DE
5660: 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20  CLSPEC unsigned 
5670: 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 63 64 69  long int mpz_cdi
5680: 76 5f 71 72 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  v_qr_ui __GMP_PR
5690: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
56a0: 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  pz_ptr, mpz_srcp
56b0: 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e  tr, unsigned lon
56c0: 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e  g int));..#defin
56d0: 65 20 6d 70 7a 5f 63 64 69 76 5f 72 20 5f 5f 67  e mpz_cdiv_r __g
56e0: 6d 70 7a 5f 63 64 69 76 5f 72 0a 5f 5f 47 4d 50  mpz_cdiv_r.__GMP
56f0: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
5700: 70 7a 5f 63 64 69 76 5f 72 20 5f 5f 47 4d 50 5f  pz_cdiv_r __GMP_
5710: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
5720: 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a   mpz_srcptr, mpz
5730: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
5740: 69 6e 65 20 6d 70 7a 5f 63 64 69 76 5f 72 5f 32  ine mpz_cdiv_r_2
5750: 65 78 70 20 5f 5f 67 6d 70 7a 5f 63 64 69 76 5f  exp __gmpz_cdiv_
5760: 72 5f 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43  r_2exp.__GMP_DEC
5770: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 63  LSPEC void mpz_c
5780: 64 69 76 5f 72 5f 32 65 78 70 20 5f 5f 47 4d 50  div_r_2exp __GMP
5790: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
57a0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e  , mpz_srcptr, un
57b0: 73 69 67 6e 65 64 20 6c 6f 6e 67 29 29 3b 0a 0a  signed long));..
57c0: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 64 69 76  #define mpz_cdiv
57d0: 5f 72 5f 75 69 20 5f 5f 67 6d 70 7a 5f 63 64 69  _r_ui __gmpz_cdi
57e0: 76 5f 72 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43  v_r_ui.__GMP_DEC
57f0: 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c  LSPEC unsigned l
5800: 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 63 64 69 76  ong int mpz_cdiv
5810: 5f 72 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54  _r_ui __GMP_PROT
5820: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a  O ((mpz_ptr, mpz
5830: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
5840: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23  d long int));..#
5850: 64 65 66 69 6e 65 20 6d 70 7a 5f 63 64 69 76 5f  define mpz_cdiv_
5860: 75 69 20 5f 5f 67 6d 70 7a 5f 63 64 69 76 5f 75  ui __gmpz_cdiv_u
5870: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
5880: 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69   unsigned long i
5890: 6e 74 20 6d 70 7a 5f 63 64 69 76 5f 75 69 20 5f  nt mpz_cdiv_ui _
58a0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
58b0: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
58c0: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f 5f 47  d long int)) __G
58d0: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
58e0: 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  E;..#define mpz_
58f0: 63 6c 65 61 72 20 5f 5f 67 6d 70 7a 5f 63 6c 65  clear __gmpz_cle
5900: 61 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ar.__GMP_DECLSPE
5910: 43 20 76 6f 69 64 20 6d 70 7a 5f 63 6c 65 61 72  C void mpz_clear
5920: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
5930: 70 7a 5f 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  pz_ptr));..#defi
5940: 6e 65 20 6d 70 7a 5f 63 6c 72 62 69 74 20 5f 5f  ne mpz_clrbit __
5950: 67 6d 70 7a 5f 63 6c 72 62 69 74 0a 5f 5f 47 4d  gmpz_clrbit.__GM
5960: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
5970: 6d 70 7a 5f 63 6c 72 62 69 74 20 5f 5f 47 4d 50  mpz_clrbit __GMP
5980: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
5990: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
59a0: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
59b0: 6d 70 7a 5f 63 6d 70 20 5f 5f 67 6d 70 7a 5f 63  mpz_cmp __gmpz_c
59c0: 6d 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  mp.__GMP_DECLSPE
59d0: 43 20 69 6e 74 20 6d 70 7a 5f 63 6d 70 20 5f 5f  C int mpz_cmp __
59e0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
59f0: 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  srcptr, mpz_srcp
5a00: 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52  tr)) __GMP_NOTHR
5a10: 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  OW __GMP_ATTRIBU
5a20: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
5a30: 65 20 6d 70 7a 5f 63 6d 70 5f 64 20 5f 5f 67 6d  e mpz_cmp_d __gm
5a40: 70 7a 5f 63 6d 70 5f 64 0a 5f 5f 47 4d 50 5f 44  pz_cmp_d.__GMP_D
5a50: 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f  ECLSPEC int mpz_
5a60: 63 6d 70 5f 64 20 5f 5f 47 4d 50 5f 50 52 4f 54  cmp_d __GMP_PROT
5a70: 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20  O ((mpz_srcptr, 
5a80: 64 6f 75 62 6c 65 29 29 20 5f 5f 47 4d 50 5f 41  double)) __GMP_A
5a90: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
5aa0: 23 64 65 66 69 6e 65 20 5f 6d 70 7a 5f 63 6d 70  #define _mpz_cmp
5ab0: 5f 73 69 20 5f 5f 67 6d 70 7a 5f 63 6d 70 5f 73  _si __gmpz_cmp_s
5ac0: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
5ad0: 20 69 6e 74 20 5f 6d 70 7a 5f 63 6d 70 5f 73 69   int _mpz_cmp_si
5ae0: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
5af0: 70 7a 5f 73 72 63 70 74 72 2c 20 73 69 67 6e 65  pz_srcptr, signe
5b00: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f 5f 47  d long int)) __G
5b10: 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50  MP_NOTHROW __GMP
5b20: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
5b30: 0a 0a 23 64 65 66 69 6e 65 20 5f 6d 70 7a 5f 63  ..#define _mpz_c
5b40: 6d 70 5f 75 69 20 5f 5f 67 6d 70 7a 5f 63 6d 70  mp_ui __gmpz_cmp
5b50: 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _ui.__GMP_DECLSP
5b60: 45 43 20 69 6e 74 20 5f 6d 70 7a 5f 63 6d 70 5f  EC int _mpz_cmp_
5b70: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
5b80: 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73  (mpz_srcptr, uns
5b90: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
5ba0: 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f   __GMP_NOTHROW _
5bb0: 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50  _GMP_ATTRIBUTE_P
5bc0: 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  URE;..#define mp
5bd0: 7a 5f 63 6d 70 61 62 73 20 5f 5f 67 6d 70 7a 5f  z_cmpabs __gmpz_
5be0: 63 6d 70 61 62 73 0a 5f 5f 47 4d 50 5f 44 45 43  cmpabs.__GMP_DEC
5bf0: 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 63 6d  LSPEC int mpz_cm
5c00: 70 61 62 73 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  pabs __GMP_PROTO
5c10: 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d   ((mpz_srcptr, m
5c20: 70 7a 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d  pz_srcptr)) __GM
5c30: 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f  P_NOTHROW __GMP_
5c40: 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a  ATTRIBUTE_PURE;.
5c50: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 6d 70  .#define mpz_cmp
5c60: 61 62 73 5f 64 20 5f 5f 67 6d 70 7a 5f 63 6d 70  abs_d __gmpz_cmp
5c70: 61 62 73 5f 64 0a 5f 5f 47 4d 50 5f 44 45 43 4c  abs_d.__GMP_DECL
5c80: 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 63 6d 70  SPEC int mpz_cmp
5c90: 61 62 73 5f 64 20 5f 5f 47 4d 50 5f 50 52 4f 54  abs_d __GMP_PROT
5ca0: 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20  O ((mpz_srcptr, 
5cb0: 64 6f 75 62 6c 65 29 29 20 5f 5f 47 4d 50 5f 41  double)) __GMP_A
5cc0: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
5cd0: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 6d 70 61  #define mpz_cmpa
5ce0: 62 73 5f 75 69 20 5f 5f 67 6d 70 7a 5f 63 6d 70  bs_ui __gmpz_cmp
5cf0: 61 62 73 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43  abs_ui.__GMP_DEC
5d00: 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 63 6d  LSPEC int mpz_cm
5d10: 70 61 62 73 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  pabs_ui __GMP_PR
5d20: 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72  OTO ((mpz_srcptr
5d30: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
5d40: 69 6e 74 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  int)) __GMP_NOTH
5d50: 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  ROW __GMP_ATTRIB
5d60: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
5d70: 6e 65 20 6d 70 7a 5f 63 6f 6d 20 5f 5f 67 6d 70  ne mpz_com __gmp
5d80: 7a 5f 63 6f 6d 0a 5f 5f 47 4d 50 5f 44 45 43 4c  z_com.__GMP_DECL
5d90: 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 63 6f  SPEC void mpz_co
5da0: 6d 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  m __GMP_PROTO ((
5db0: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63  mpz_ptr, mpz_src
5dc0: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
5dd0: 6d 70 7a 5f 63 6f 6e 67 72 75 65 6e 74 5f 70 20  mpz_congruent_p 
5de0: 5f 5f 67 6d 70 7a 5f 63 6f 6e 67 72 75 65 6e 74  __gmpz_congruent
5df0: 5f 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  _p.__GMP_DECLSPE
5e00: 43 20 69 6e 74 20 6d 70 7a 5f 63 6f 6e 67 72 75  C int mpz_congru
5e10: 65 6e 74 5f 70 20 5f 5f 47 4d 50 5f 50 52 4f 54  ent_p __GMP_PROT
5e20: 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20  O ((mpz_srcptr, 
5e30: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f  mpz_srcptr, mpz_
5e40: 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 41  srcptr)) __GMP_A
5e50: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
5e60: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 6f 6e 67  #define mpz_cong
5e70: 72 75 65 6e 74 5f 32 65 78 70 5f 70 20 5f 5f 67  ruent_2exp_p __g
5e80: 6d 70 7a 5f 63 6f 6e 67 72 75 65 6e 74 5f 32 65  mpz_congruent_2e
5e90: 78 70 5f 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  xp_p.__GMP_DECLS
5ea0: 50 45 43 20 69 6e 74 20 6d 70 7a 5f 63 6f 6e 67  PEC int mpz_cong
5eb0: 72 75 65 6e 74 5f 32 65 78 70 5f 70 20 5f 5f 47  ruent_2exp_p __G
5ec0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73  MP_PROTO ((mpz_s
5ed0: 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74  rcptr, mpz_srcpt
5ee0: 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  r, unsigned long
5ef0: 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57  )) __GMP_NOTHROW
5f00: 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45   __GMP_ATTRIBUTE
5f10: 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20  _PURE;..#define 
5f20: 6d 70 7a 5f 63 6f 6e 67 72 75 65 6e 74 5f 75 69  mpz_congruent_ui
5f30: 5f 70 20 5f 5f 67 6d 70 7a 5f 63 6f 6e 67 72 75  _p __gmpz_congru
5f40: 65 6e 74 5f 75 69 5f 70 0a 5f 5f 47 4d 50 5f 44  ent_ui_p.__GMP_D
5f50: 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f  ECLSPEC int mpz_
5f60: 63 6f 6e 67 72 75 65 6e 74 5f 75 69 5f 70 20 5f  congruent_ui_p _
5f70: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
5f80: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
5f90: 64 20 6c 6f 6e 67 2c 20 75 6e 73 69 67 6e 65 64  d long, unsigned
5fa0: 20 6c 6f 6e 67 29 29 20 5f 5f 47 4d 50 5f 41 54   long)) __GMP_AT
5fb0: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23  TRIBUTE_PURE;..#
5fc0: 64 65 66 69 6e 65 20 6d 70 7a 5f 64 69 76 65 78  define mpz_divex
5fd0: 61 63 74 20 5f 5f 67 6d 70 7a 5f 64 69 76 65 78  act __gmpz_divex
5fe0: 61 63 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  act.__GMP_DECLSP
5ff0: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 64 69 76 65  EC void mpz_dive
6000: 78 61 63 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  xact __GMP_PROTO
6010: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f   ((mpz_ptr, mpz_
6020: 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  srcptr, mpz_srcp
6030: 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  tr));..#define m
6040: 70 7a 5f 64 69 76 65 78 61 63 74 5f 75 69 20 5f  pz_divexact_ui _
6050: 5f 67 6d 70 7a 5f 64 69 76 65 78 61 63 74 5f 75  _gmpz_divexact_u
6060: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
6070: 20 76 6f 69 64 20 6d 70 7a 5f 64 69 76 65 78 61   void mpz_divexa
6080: 63 74 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54  ct_ui __GMP_PROT
6090: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a  O ((mpz_ptr, mpz
60a0: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
60b0: 64 20 6c 6f 6e 67 29 29 3b 0a 0a 23 64 65 66 69  d long));..#defi
60c0: 6e 65 20 6d 70 7a 5f 64 69 76 69 73 69 62 6c 65  ne mpz_divisible
60d0: 5f 70 20 5f 5f 67 6d 70 7a 5f 64 69 76 69 73 69  _p __gmpz_divisi
60e0: 62 6c 65 5f 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c  ble_p.__GMP_DECL
60f0: 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 64 69 76  SPEC int mpz_div
6100: 69 73 69 62 6c 65 5f 70 20 5f 5f 47 4d 50 5f 50  isible_p __GMP_P
6110: 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74  ROTO ((mpz_srcpt
6120: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 20  r, mpz_srcptr)) 
6130: 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f  __GMP_ATTRIBUTE_
6140: 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  PURE;..#define m
6150: 70 7a 5f 64 69 76 69 73 69 62 6c 65 5f 75 69 5f  pz_divisible_ui_
6160: 70 20 5f 5f 67 6d 70 7a 5f 64 69 76 69 73 69 62  p __gmpz_divisib
6170: 6c 65 5f 75 69 5f 70 0a 5f 5f 47 4d 50 5f 44 45  le_ui_p.__GMP_DE
6180: 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 64  CLSPEC int mpz_d
6190: 69 76 69 73 69 62 6c 65 5f 75 69 5f 70 20 5f 5f  ivisible_ui_p __
61a0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
61b0: 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64  srcptr, unsigned
61c0: 20 6c 6f 6e 67 29 29 20 5f 5f 47 4d 50 5f 41 54   long)) __GMP_AT
61d0: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23  TRIBUTE_PURE;..#
61e0: 64 65 66 69 6e 65 20 6d 70 7a 5f 64 69 76 69 73  define mpz_divis
61f0: 69 62 6c 65 5f 32 65 78 70 5f 70 20 5f 5f 67 6d  ible_2exp_p __gm
6200: 70 7a 5f 64 69 76 69 73 69 62 6c 65 5f 32 65 78  pz_divisible_2ex
6210: 70 5f 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  p_p.__GMP_DECLSP
6220: 45 43 20 69 6e 74 20 6d 70 7a 5f 64 69 76 69 73  EC int mpz_divis
6230: 69 62 6c 65 5f 32 65 78 70 5f 70 20 5f 5f 47 4d  ible_2exp_p __GM
6240: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72  P_PROTO ((mpz_sr
6250: 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c  cptr, unsigned l
6260: 6f 6e 67 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  ong)) __GMP_NOTH
6270: 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  ROW __GMP_ATTRIB
6280: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
6290: 6e 65 20 6d 70 7a 5f 64 75 6d 70 20 5f 5f 67 6d  ne mpz_dump __gm
62a0: 70 7a 5f 64 75 6d 70 0a 5f 5f 47 4d 50 5f 44 45  pz_dump.__GMP_DE
62b0: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f  CLSPEC void mpz_
62c0: 64 75 6d 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  dump __GMP_PROTO
62d0: 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b   ((mpz_srcptr));
62e0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 65 78  ..#define mpz_ex
62f0: 70 6f 72 74 20 5f 5f 67 6d 70 7a 5f 65 78 70 6f  port __gmpz_expo
6300: 72 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  rt.__GMP_DECLSPE
6310: 43 20 76 6f 69 64 20 2a 6d 70 7a 5f 65 78 70 6f  C void *mpz_expo
6320: 72 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  rt __GMP_PROTO (
6330: 28 76 6f 69 64 20 2a 2c 20 73 69 7a 65 5f 74 20  (void *, size_t 
6340: 2a 2c 20 69 6e 74 2c 20 73 69 7a 65 5f 74 2c 20  *, int, size_t, 
6350: 69 6e 74 2c 20 73 69 7a 65 5f 74 2c 20 6d 70 7a  int, size_t, mpz
6360: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
6370: 69 6e 65 20 6d 70 7a 5f 66 61 63 5f 75 69 20 5f  ine mpz_fac_ui _
6380: 5f 67 6d 70 7a 5f 66 61 63 5f 75 69 0a 5f 5f 47  _gmpz_fac_ui.__G
6390: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
63a0: 20 6d 70 7a 5f 66 61 63 5f 75 69 20 5f 5f 47 4d   mpz_fac_ui __GM
63b0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
63c0: 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  r, unsigned long
63d0: 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65   int));..#define
63e0: 20 6d 70 7a 5f 66 64 69 76 5f 71 20 5f 5f 67 6d   mpz_fdiv_q __gm
63f0: 70 7a 5f 66 64 69 76 5f 71 0a 5f 5f 47 4d 50 5f  pz_fdiv_q.__GMP_
6400: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
6410: 7a 5f 66 64 69 76 5f 71 20 5f 5f 47 4d 50 5f 50  z_fdiv_q __GMP_P
6420: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
6430: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f  mpz_srcptr, mpz_
6440: 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  srcptr));..#defi
6450: 6e 65 20 6d 70 7a 5f 66 64 69 76 5f 71 5f 32 65  ne mpz_fdiv_q_2e
6460: 78 70 20 5f 5f 67 6d 70 7a 5f 66 64 69 76 5f 71  xp __gmpz_fdiv_q
6470: 5f 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c  _2exp.__GMP_DECL
6480: 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 66 64  SPEC void mpz_fd
6490: 69 76 5f 71 5f 32 65 78 70 20 5f 5f 47 4d 50 5f  iv_q_2exp __GMP_
64a0: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
64b0: 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73   mpz_srcptr, uns
64c0: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
64d0: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 66  ;..#define mpz_f
64e0: 64 69 76 5f 71 5f 75 69 20 5f 5f 67 6d 70 7a 5f  div_q_ui __gmpz_
64f0: 66 64 69 76 5f 71 5f 75 69 0a 5f 5f 47 4d 50 5f  fdiv_q_ui.__GMP_
6500: 44 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65  DECLSPEC unsigne
6510: 64 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 66  d long int mpz_f
6520: 64 69 76 5f 71 5f 75 69 20 5f 5f 47 4d 50 5f 50  div_q_ui __GMP_P
6530: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
6540: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
6550: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
6560: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 66 64  ..#define mpz_fd
6570: 69 76 5f 71 72 20 5f 5f 67 6d 70 7a 5f 66 64 69  iv_qr __gmpz_fdi
6580: 76 5f 71 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  v_qr.__GMP_DECLS
6590: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 66 64 69  PEC void mpz_fdi
65a0: 76 5f 71 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  v_qr __GMP_PROTO
65b0: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f   ((mpz_ptr, mpz_
65c0: 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c  ptr, mpz_srcptr,
65d0: 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a   mpz_srcptr));..
65e0: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 66 64 69 76  #define mpz_fdiv
65f0: 5f 71 72 5f 75 69 20 5f 5f 67 6d 70 7a 5f 66 64  _qr_ui __gmpz_fd
6600: 69 76 5f 71 72 5f 75 69 0a 5f 5f 47 4d 50 5f 44  iv_qr_ui.__GMP_D
6610: 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64  ECLSPEC unsigned
6620: 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 66 64   long int mpz_fd
6630: 69 76 5f 71 72 5f 75 69 20 5f 5f 47 4d 50 5f 50  iv_qr_ui __GMP_P
6640: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
6650: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63  mpz_ptr, mpz_src
6660: 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  ptr, unsigned lo
6670: 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69  ng int));..#defi
6680: 6e 65 20 6d 70 7a 5f 66 64 69 76 5f 72 20 5f 5f  ne mpz_fdiv_r __
6690: 67 6d 70 7a 5f 66 64 69 76 5f 72 0a 5f 5f 47 4d  gmpz_fdiv_r.__GM
66a0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
66b0: 6d 70 7a 5f 66 64 69 76 5f 72 20 5f 5f 47 4d 50  mpz_fdiv_r __GMP
66c0: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
66d0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70  , mpz_srcptr, mp
66e0: 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65  z_srcptr));..#de
66f0: 66 69 6e 65 20 6d 70 7a 5f 66 64 69 76 5f 72 5f  fine mpz_fdiv_r_
6700: 32 65 78 70 20 5f 5f 67 6d 70 7a 5f 66 64 69 76  2exp __gmpz_fdiv
6710: 5f 72 5f 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45  _r_2exp.__GMP_DE
6720: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f  CLSPEC void mpz_
6730: 66 64 69 76 5f 72 5f 32 65 78 70 20 5f 5f 47 4d  fdiv_r_2exp __GM
6740: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
6750: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75  r, mpz_srcptr, u
6760: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74  nsigned long int
6770: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a  ));..#define mpz
6780: 5f 66 64 69 76 5f 72 5f 75 69 20 5f 5f 67 6d 70  _fdiv_r_ui __gmp
6790: 7a 5f 66 64 69 76 5f 72 5f 75 69 0a 5f 5f 47 4d  z_fdiv_r_ui.__GM
67a0: 50 5f 44 45 43 4c 53 50 45 43 20 75 6e 73 69 67  P_DECLSPEC unsig
67b0: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a  ned long int mpz
67c0: 5f 66 64 69 76 5f 72 5f 75 69 20 5f 5f 47 4d 50  _fdiv_r_ui __GMP
67d0: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
67e0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e  , mpz_srcptr, un
67f0: 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29  signed long int)
6800: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
6810: 66 64 69 76 5f 75 69 20 5f 5f 67 6d 70 7a 5f 66  fdiv_ui __gmpz_f
6820: 64 69 76 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43  div_ui.__GMP_DEC
6830: 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c  LSPEC unsigned l
6840: 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 66 64 69 76  ong int mpz_fdiv
6850: 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _ui __GMP_PROTO 
6860: 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e  ((mpz_srcptr, un
6870: 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29  signed long int)
6880: 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54  ) __GMP_ATTRIBUT
6890: 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65  E_PURE;..#define
68a0: 20 6d 70 7a 5f 66 69 62 5f 75 69 20 5f 5f 67 6d   mpz_fib_ui __gm
68b0: 70 7a 5f 66 69 62 5f 75 69 0a 5f 5f 47 4d 50 5f  pz_fib_ui.__GMP_
68c0: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
68d0: 7a 5f 66 69 62 5f 75 69 20 5f 5f 47 4d 50 5f 50  z_fib_ui __GMP_P
68e0: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
68f0: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e  unsigned long in
6900: 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  t));..#define mp
6910: 7a 5f 66 69 62 32 5f 75 69 20 5f 5f 67 6d 70 7a  z_fib2_ui __gmpz
6920: 5f 66 69 62 32 5f 75 69 0a 5f 5f 47 4d 50 5f 44  _fib2_ui.__GMP_D
6930: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
6940: 5f 66 69 62 32 5f 75 69 20 5f 5f 47 4d 50 5f 50  _fib2_ui __GMP_P
6950: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
6960: 6d 70 7a 5f 70 74 72 2c 20 75 6e 73 69 67 6e 65  mpz_ptr, unsigne
6970: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23  d long int));..#
6980: 64 65 66 69 6e 65 20 6d 70 7a 5f 66 69 74 73 5f  define mpz_fits_
6990: 73 69 6e 74 5f 70 20 5f 5f 67 6d 70 7a 5f 66 69  sint_p __gmpz_fi
69a0: 74 73 5f 73 69 6e 74 5f 70 0a 5f 5f 47 4d 50 5f  ts_sint_p.__GMP_
69b0: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a  DECLSPEC int mpz
69c0: 5f 66 69 74 73 5f 73 69 6e 74 5f 70 20 5f 5f 47  _fits_sint_p __G
69d0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73  MP_PROTO ((mpz_s
69e0: 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f  rcptr)) __GMP_NO
69f0: 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52  THROW __GMP_ATTR
6a00: 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65  IBUTE_PURE;..#de
6a10: 66 69 6e 65 20 6d 70 7a 5f 66 69 74 73 5f 73 6c  fine mpz_fits_sl
6a20: 6f 6e 67 5f 70 20 5f 5f 67 6d 70 7a 5f 66 69 74  ong_p __gmpz_fit
6a30: 73 5f 73 6c 6f 6e 67 5f 70 0a 5f 5f 47 4d 50 5f  s_slong_p.__GMP_
6a40: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a  DECLSPEC int mpz
6a50: 5f 66 69 74 73 5f 73 6c 6f 6e 67 5f 70 20 5f 5f  _fits_slong_p __
6a60: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
6a70: 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e  srcptr)) __GMP_N
6a80: 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54  OTHROW __GMP_ATT
6a90: 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64  RIBUTE_PURE;..#d
6aa0: 65 66 69 6e 65 20 6d 70 7a 5f 66 69 74 73 5f 73  efine mpz_fits_s
6ab0: 73 68 6f 72 74 5f 70 20 5f 5f 67 6d 70 7a 5f 66  short_p __gmpz_f
6ac0: 69 74 73 5f 73 73 68 6f 72 74 5f 70 0a 5f 5f 47  its_sshort_p.__G
6ad0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20  MP_DECLSPEC int 
6ae0: 6d 70 7a 5f 66 69 74 73 5f 73 73 68 6f 72 74 5f  mpz_fits_sshort_
6af0: 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  p __GMP_PROTO ((
6b00: 6d 70 7a 5f 73 72 63 70 74 72 29 29 20 5f 5f 47  mpz_srcptr)) __G
6b10: 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50  MP_NOTHROW __GMP
6b20: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
6b30: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 66 69  ..#define mpz_fi
6b40: 74 73 5f 75 69 6e 74 5f 70 20 5f 5f 67 6d 70 7a  ts_uint_p __gmpz
6b50: 5f 66 69 74 73 5f 75 69 6e 74 5f 70 0a 23 69 66  _fits_uint_p.#if
6b60: 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52   __GMP_INLINE_PR
6b70: 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d  OTOTYPES || __GM
6b80: 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 66 69 74 73  P_FORCE_mpz_fits
6b90: 5f 75 69 6e 74 5f 70 0a 5f 5f 47 4d 50 5f 44 45  _uint_p.__GMP_DE
6ba0: 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 66  CLSPEC int mpz_f
6bb0: 69 74 73 5f 75 69 6e 74 5f 70 20 5f 5f 47 4d 50  its_uint_p __GMP
6bc0: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63  _PROTO ((mpz_src
6bd0: 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  ptr)) __GMP_NOTH
6be0: 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  ROW __GMP_ATTRIB
6bf0: 55 54 45 5f 50 55 52 45 3b 0a 23 65 6e 64 69 66  UTE_PURE;.#endif
6c00: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 66 69  ..#define mpz_fi
6c10: 74 73 5f 75 6c 6f 6e 67 5f 70 20 5f 5f 67 6d 70  ts_ulong_p __gmp
6c20: 7a 5f 66 69 74 73 5f 75 6c 6f 6e 67 5f 70 0a 23  z_fits_ulong_p.#
6c30: 69 66 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45 5f  if __GMP_INLINE_
6c40: 50 52 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f 5f  PROTOTYPES || __
6c50: 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 66 69  GMP_FORCE_mpz_fi
6c60: 74 73 5f 75 6c 6f 6e 67 5f 70 0a 5f 5f 47 4d 50  ts_ulong_p.__GMP
6c70: 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70  _DECLSPEC int mp
6c80: 7a 5f 66 69 74 73 5f 75 6c 6f 6e 67 5f 70 20 5f  z_fits_ulong_p _
6c90: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
6ca0: 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f  _srcptr)) __GMP_
6cb0: 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54  NOTHROW __GMP_AT
6cc0: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 23 65  TRIBUTE_PURE;.#e
6cd0: 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70  ndif..#define mp
6ce0: 7a 5f 66 69 74 73 5f 75 73 68 6f 72 74 5f 70 20  z_fits_ushort_p 
6cf0: 5f 5f 67 6d 70 7a 5f 66 69 74 73 5f 75 73 68 6f  __gmpz_fits_usho
6d00: 72 74 5f 70 0a 23 69 66 20 5f 5f 47 4d 50 5f 49  rt_p.#if __GMP_I
6d10: 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54 59 50 45 53  NLINE_PROTOTYPES
6d20: 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f   || __GMP_FORCE_
6d30: 6d 70 7a 5f 66 69 74 73 5f 75 73 68 6f 72 74 5f  mpz_fits_ushort_
6d40: 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  p.__GMP_DECLSPEC
6d50: 20 69 6e 74 20 6d 70 7a 5f 66 69 74 73 5f 75 73   int mpz_fits_us
6d60: 68 6f 72 74 5f 70 20 5f 5f 47 4d 50 5f 50 52 4f  hort_p __GMP_PRO
6d70: 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 29  TO ((mpz_srcptr)
6d80: 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20  ) __GMP_NOTHROW 
6d90: 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f  __GMP_ATTRIBUTE_
6da0: 50 55 52 45 3b 0a 23 65 6e 64 69 66 0a 0a 23 64  PURE;.#endif..#d
6db0: 65 66 69 6e 65 20 6d 70 7a 5f 67 63 64 20 5f 5f  efine mpz_gcd __
6dc0: 67 6d 70 7a 5f 67 63 64 0a 5f 5f 47 4d 50 5f 44  gmpz_gcd.__GMP_D
6dd0: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
6de0: 5f 67 63 64 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _gcd __GMP_PROTO
6df0: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f   ((mpz_ptr, mpz_
6e00: 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  srcptr, mpz_srcp
6e10: 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  tr));..#define m
6e20: 70 7a 5f 67 63 64 5f 75 69 20 5f 5f 67 6d 70 7a  pz_gcd_ui __gmpz
6e30: 5f 67 63 64 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45  _gcd_ui.__GMP_DE
6e40: 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20  CLSPEC unsigned 
6e50: 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 67 63 64  long int mpz_gcd
6e60: 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _ui __GMP_PROTO 
6e70: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73  ((mpz_ptr, mpz_s
6e80: 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20  rcptr, unsigned 
6e90: 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65  long int));..#de
6ea0: 66 69 6e 65 20 6d 70 7a 5f 67 63 64 65 78 74 20  fine mpz_gcdext 
6eb0: 5f 5f 67 6d 70 7a 5f 67 63 64 65 78 74 0a 5f 5f  __gmpz_gcdext.__
6ec0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
6ed0: 64 20 6d 70 7a 5f 67 63 64 65 78 74 20 5f 5f 47  d mpz_gcdext __G
6ee0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
6ef0: 74 72 2c 20 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a  tr, mpz_ptr, mpz
6f00: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
6f10: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
6f20: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 67 65 74  .#define mpz_get
6f30: 5f 64 20 5f 5f 67 6d 70 7a 5f 67 65 74 5f 64 0a  _d __gmpz_get_d.
6f40: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 64  __GMP_DECLSPEC d
6f50: 6f 75 62 6c 65 20 6d 70 7a 5f 67 65 74 5f 64 20  ouble mpz_get_d 
6f60: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
6f70: 7a 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50  z_srcptr)) __GMP
6f80: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
6f90: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 67 65  ..#define mpz_ge
6fa0: 74 5f 64 5f 32 65 78 70 20 5f 5f 67 6d 70 7a 5f  t_d_2exp __gmpz_
6fb0: 67 65 74 5f 64 5f 32 65 78 70 0a 5f 5f 47 4d 50  get_d_2exp.__GMP
6fc0: 5f 44 45 43 4c 53 50 45 43 20 64 6f 75 62 6c 65  _DECLSPEC double
6fd0: 20 6d 70 7a 5f 67 65 74 5f 64 5f 32 65 78 70 20   mpz_get_d_2exp 
6fe0: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 73 69  __GMP_PROTO ((si
6ff0: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 20 2a 2c  gned long int *,
7000: 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a   mpz_srcptr));..
7010: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 67 65 74 5f  #define mpz_get_
7020: 73 69 20 5f 5f 67 6d 70 7a 5f 67 65 74 5f 73 69  si __gmpz_get_si
7030: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
7040: 2f 2a 20 73 69 67 6e 65 64 20 2a 2f 20 6c 6f 6e  /* signed */ lon
7050: 67 20 69 6e 74 20 6d 70 7a 5f 67 65 74 5f 73 69  g int mpz_get_si
7060: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
7070: 70 7a 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d  pz_srcptr)) __GM
7080: 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f  P_NOTHROW __GMP_
7090: 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a  ATTRIBUTE_PURE;.
70a0: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 67 65 74  .#define mpz_get
70b0: 5f 73 74 72 20 5f 5f 67 6d 70 7a 5f 67 65 74 5f  _str __gmpz_get_
70c0: 73 74 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  str.__GMP_DECLSP
70d0: 45 43 20 63 68 61 72 20 2a 6d 70 7a 5f 67 65 74  EC char *mpz_get
70e0: 5f 73 74 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _str __GMP_PROTO
70f0: 20 28 28 63 68 61 72 20 2a 2c 20 69 6e 74 2c 20   ((char *, int, 
7100: 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpz_srcptr));..#
7110: 64 65 66 69 6e 65 20 6d 70 7a 5f 67 65 74 5f 75  define mpz_get_u
7120: 69 20 5f 5f 67 6d 70 7a 5f 67 65 74 5f 75 69 0a  i __gmpz_get_ui.
7130: 23 69 66 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45  #if __GMP_INLINE
7140: 5f 50 52 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f  _PROTOTYPES || _
7150: 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 67  _GMP_FORCE_mpz_g
7160: 65 74 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c  et_ui.__GMP_DECL
7170: 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f  SPEC unsigned lo
7180: 6e 67 20 69 6e 74 20 6d 70 7a 5f 67 65 74 5f 75  ng int mpz_get_u
7190: 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  i __GMP_PROTO ((
71a0: 6d 70 7a 5f 73 72 63 70 74 72 29 29 20 5f 5f 47  mpz_srcptr)) __G
71b0: 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50  MP_NOTHROW __GMP
71c0: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
71d0: 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65  .#endif..#define
71e0: 20 6d 70 7a 5f 67 65 74 6c 69 6d 62 6e 20 5f 5f   mpz_getlimbn __
71f0: 67 6d 70 7a 5f 67 65 74 6c 69 6d 62 6e 0a 23 69  gmpz_getlimbn.#i
7200: 66 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50  f __GMP_INLINE_P
7210: 52 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f 5f 47  ROTOTYPES || __G
7220: 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 67 65 74  MP_FORCE_mpz_get
7230: 6c 69 6d 62 6e 0a 5f 5f 47 4d 50 5f 44 45 43 4c  limbn.__GMP_DECL
7240: 53 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20 6d  SPEC mp_limb_t m
7250: 70 7a 5f 67 65 74 6c 69 6d 62 6e 20 5f 5f 47 4d  pz_getlimbn __GM
7260: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72  P_PROTO ((mpz_sr
7270: 63 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 29  cptr, mp_size_t)
7280: 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20  ) __GMP_NOTHROW 
7290: 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f  __GMP_ATTRIBUTE_
72a0: 50 55 52 45 3b 0a 23 65 6e 64 69 66 0a 0a 23 64  PURE;.#endif..#d
72b0: 65 66 69 6e 65 20 6d 70 7a 5f 68 61 6d 64 69 73  efine mpz_hamdis
72c0: 74 20 5f 5f 67 6d 70 7a 5f 68 61 6d 64 69 73 74  t __gmpz_hamdist
72d0: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
72e0: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e  unsigned long in
72f0: 74 20 6d 70 7a 5f 68 61 6d 64 69 73 74 20 5f 5f  t mpz_hamdist __
7300: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
7310: 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  srcptr, mpz_srcp
7320: 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52  tr)) __GMP_NOTHR
7330: 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  OW __GMP_ATTRIBU
7340: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
7350: 65 20 6d 70 7a 5f 69 6d 70 6f 72 74 20 5f 5f 67  e mpz_import __g
7360: 6d 70 7a 5f 69 6d 70 6f 72 74 0a 5f 5f 47 4d 50  mpz_import.__GMP
7370: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
7380: 70 7a 5f 69 6d 70 6f 72 74 20 5f 5f 47 4d 50 5f  pz_import __GMP_
7390: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
73a0: 20 73 69 7a 65 5f 74 2c 20 69 6e 74 2c 20 73 69   size_t, int, si
73b0: 7a 65 5f 74 2c 20 69 6e 74 2c 20 73 69 7a 65 5f  ze_t, int, size_
73c0: 74 2c 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 29  t, const void *)
73d0: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
73e0: 69 6e 69 74 20 5f 5f 67 6d 70 7a 5f 69 6e 69 74  init __gmpz_init
73f0: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
7400: 76 6f 69 64 20 6d 70 7a 5f 69 6e 69 74 20 5f 5f  void mpz_init __
7410: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
7420: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
7430: 6d 70 7a 5f 69 6e 69 74 32 20 5f 5f 67 6d 70 7a  mpz_init2 __gmpz
7440: 5f 69 6e 69 74 32 0a 5f 5f 47 4d 50 5f 44 45 43  _init2.__GMP_DEC
7450: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 69  LSPEC void mpz_i
7460: 6e 69 74 32 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  nit2 __GMP_PROTO
7470: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 75 6e 73 69   ((mpz_ptr, unsi
7480: 67 6e 65 64 20 6c 6f 6e 67 29 29 3b 0a 0a 23 64  gned long));..#d
7490: 65 66 69 6e 65 20 6d 70 7a 5f 69 6e 69 74 5f 73  efine mpz_init_s
74a0: 65 74 20 5f 5f 67 6d 70 7a 5f 69 6e 69 74 5f 73  et __gmpz_init_s
74b0: 65 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  et.__GMP_DECLSPE
74c0: 43 20 76 6f 69 64 20 6d 70 7a 5f 69 6e 69 74 5f  C void mpz_init_
74d0: 73 65 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  set __GMP_PROTO 
74e0: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73  ((mpz_ptr, mpz_s
74f0: 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e  rcptr));..#defin
7500: 65 20 6d 70 7a 5f 69 6e 69 74 5f 73 65 74 5f 64  e mpz_init_set_d
7510: 20 5f 5f 67 6d 70 7a 5f 69 6e 69 74 5f 73 65 74   __gmpz_init_set
7520: 5f 64 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  _d.__GMP_DECLSPE
7530: 43 20 76 6f 69 64 20 6d 70 7a 5f 69 6e 69 74 5f  C void mpz_init_
7540: 73 65 74 5f 64 20 5f 5f 47 4d 50 5f 50 52 4f 54  set_d __GMP_PROT
7550: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 64 6f 75  O ((mpz_ptr, dou
7560: 62 6c 65 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ble));..#define 
7570: 6d 70 7a 5f 69 6e 69 74 5f 73 65 74 5f 73 69 20  mpz_init_set_si 
7580: 5f 5f 67 6d 70 7a 5f 69 6e 69 74 5f 73 65 74 5f  __gmpz_init_set_
7590: 73 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  si.__GMP_DECLSPE
75a0: 43 20 76 6f 69 64 20 6d 70 7a 5f 69 6e 69 74 5f  C void mpz_init_
75b0: 73 65 74 5f 73 69 20 5f 5f 47 4d 50 5f 50 52 4f  set_si __GMP_PRO
75c0: 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 73 69  TO ((mpz_ptr, si
75d0: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
75e0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 69 6e  ..#define mpz_in
75f0: 69 74 5f 73 65 74 5f 73 74 72 20 5f 5f 67 6d 70  it_set_str __gmp
7600: 7a 5f 69 6e 69 74 5f 73 65 74 5f 73 74 72 0a 5f  z_init_set_str._
7610: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
7620: 74 20 6d 70 7a 5f 69 6e 69 74 5f 73 65 74 5f 73  t mpz_init_set_s
7630: 74 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  tr __GMP_PROTO (
7640: 28 6d 70 7a 5f 70 74 72 2c 20 5f 5f 67 6d 70 5f  (mpz_ptr, __gmp_
7650: 63 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20 69 6e  const char *, in
7660: 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  t));..#define mp
7670: 7a 5f 69 6e 69 74 5f 73 65 74 5f 75 69 20 5f 5f  z_init_set_ui __
7680: 67 6d 70 7a 5f 69 6e 69 74 5f 73 65 74 5f 75 69  gmpz_init_set_ui
7690: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
76a0: 76 6f 69 64 20 6d 70 7a 5f 69 6e 69 74 5f 73 65  void mpz_init_se
76b0: 74 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  t_ui __GMP_PROTO
76c0: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 75 6e 73 69   ((mpz_ptr, unsi
76d0: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
76e0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 69 6e  ..#define mpz_in
76f0: 70 5f 72 61 77 20 5f 5f 67 6d 70 7a 5f 69 6e 70  p_raw __gmpz_inp
7700: 5f 72 61 77 0a 23 69 66 64 65 66 20 5f 47 4d 50  _raw.#ifdef _GMP
7710: 5f 48 5f 48 41 56 45 5f 46 49 4c 45 0a 5f 5f 47  _H_HAVE_FILE.__G
7720: 4d 50 5f 44 45 43 4c 53 50 45 43 20 73 69 7a 65  MP_DECLSPEC size
7730: 5f 74 20 6d 70 7a 5f 69 6e 70 5f 72 61 77 20 5f  _t mpz_inp_raw _
7740: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
7750: 5f 70 74 72 2c 20 46 49 4c 45 20 2a 29 29 3b 0a  _ptr, FILE *));.
7760: 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20  #endif..#define 
7770: 6d 70 7a 5f 69 6e 70 5f 73 74 72 20 5f 5f 67 6d  mpz_inp_str __gm
7780: 70 7a 5f 69 6e 70 5f 73 74 72 0a 23 69 66 64 65  pz_inp_str.#ifde
7790: 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 46 49  f _GMP_H_HAVE_FI
77a0: 4c 45 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  LE.__GMP_DECLSPE
77b0: 43 20 73 69 7a 65 5f 74 20 6d 70 7a 5f 69 6e 70  C size_t mpz_inp
77c0: 5f 73 74 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _str __GMP_PROTO
77d0: 20 28 28 6d 70 7a 5f 70 74 72 2c 20 46 49 4c 45   ((mpz_ptr, FILE
77e0: 20 2a 2c 20 69 6e 74 29 29 3b 0a 23 65 6e 64 69   *, int));.#endi
77f0: 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 69  f..#define mpz_i
7800: 6e 76 65 72 74 20 5f 5f 67 6d 70 7a 5f 69 6e 76  nvert __gmpz_inv
7810: 65 72 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  ert.__GMP_DECLSP
7820: 45 43 20 69 6e 74 20 6d 70 7a 5f 69 6e 76 65 72  EC int mpz_inver
7830: 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  t __GMP_PROTO ((
7840: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63  mpz_ptr, mpz_src
7850: 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29  ptr, mpz_srcptr)
7860: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
7870: 69 6f 72 20 5f 5f 67 6d 70 7a 5f 69 6f 72 0a 5f  ior __gmpz_ior._
7880: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
7890: 69 64 20 6d 70 7a 5f 69 6f 72 20 5f 5f 47 4d 50  id mpz_ior __GMP
78a0: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
78b0: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70  , mpz_srcptr, mp
78c0: 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65  z_srcptr));..#de
78d0: 66 69 6e 65 20 6d 70 7a 5f 6a 61 63 6f 62 69 20  fine mpz_jacobi 
78e0: 5f 5f 67 6d 70 7a 5f 6a 61 63 6f 62 69 0a 5f 5f  __gmpz_jacobi.__
78f0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
7900: 20 6d 70 7a 5f 6a 61 63 6f 62 69 20 5f 5f 47 4d   mpz_jacobi __GM
7910: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72  P_PROTO ((mpz_sr
7920: 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  cptr, mpz_srcptr
7930: 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  )) __GMP_ATTRIBU
7940: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
7950: 65 20 6d 70 7a 5f 6b 72 6f 6e 65 63 6b 65 72 20  e mpz_kronecker 
7960: 6d 70 7a 5f 6a 61 63 6f 62 69 20 20 2f 2a 20 61  mpz_jacobi  /* a
7970: 6c 69 61 73 20 2a 2f 0a 0a 23 64 65 66 69 6e 65  lias */..#define
7980: 20 6d 70 7a 5f 6b 72 6f 6e 65 63 6b 65 72 5f 73   mpz_kronecker_s
7990: 69 20 5f 5f 67 6d 70 7a 5f 6b 72 6f 6e 65 63 6b  i __gmpz_kroneck
79a0: 65 72 5f 73 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c  er_si.__GMP_DECL
79b0: 53 50 45 43 20 69 6e 74 20 6d 70 7a 5f 6b 72 6f  SPEC int mpz_kro
79c0: 6e 65 63 6b 65 72 5f 73 69 20 5f 5f 47 4d 50 5f  necker_si __GMP_
79d0: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70  PROTO ((mpz_srcp
79e0: 74 72 2c 20 6c 6f 6e 67 29 29 20 5f 5f 47 4d 50  tr, long)) __GMP
79f0: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
7a00: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6b 72  ..#define mpz_kr
7a10: 6f 6e 65 63 6b 65 72 5f 75 69 20 5f 5f 67 6d 70  onecker_ui __gmp
7a20: 7a 5f 6b 72 6f 6e 65 63 6b 65 72 5f 75 69 0a 5f  z_kronecker_ui._
7a30: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
7a40: 74 20 6d 70 7a 5f 6b 72 6f 6e 65 63 6b 65 72 5f  t mpz_kronecker_
7a50: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
7a60: 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73  (mpz_srcptr, uns
7a70: 69 67 6e 65 64 20 6c 6f 6e 67 29 29 20 5f 5f 47  igned long)) __G
7a80: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
7a90: 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  E;..#define mpz_
7aa0: 73 69 5f 6b 72 6f 6e 65 63 6b 65 72 20 5f 5f 67  si_kronecker __g
7ab0: 6d 70 7a 5f 73 69 5f 6b 72 6f 6e 65 63 6b 65 72  mpz_si_kronecker
7ac0: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
7ad0: 69 6e 74 20 6d 70 7a 5f 73 69 5f 6b 72 6f 6e 65  int mpz_si_krone
7ae0: 63 6b 65 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  cker __GMP_PROTO
7af0: 20 28 28 6c 6f 6e 67 2c 20 6d 70 7a 5f 73 72 63   ((long, mpz_src
7b00: 70 74 72 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52  ptr)) __GMP_ATTR
7b10: 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65  IBUTE_PURE;..#de
7b20: 66 69 6e 65 20 6d 70 7a 5f 75 69 5f 6b 72 6f 6e  fine mpz_ui_kron
7b30: 65 63 6b 65 72 20 5f 5f 67 6d 70 7a 5f 75 69 5f  ecker __gmpz_ui_
7b40: 6b 72 6f 6e 65 63 6b 65 72 0a 5f 5f 47 4d 50 5f  kronecker.__GMP_
7b50: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 7a  DECLSPEC int mpz
7b60: 5f 75 69 5f 6b 72 6f 6e 65 63 6b 65 72 20 5f 5f  _ui_kronecker __
7b70: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 75 6e 73 69  GMP_PROTO ((unsi
7b80: 67 6e 65 64 20 6c 6f 6e 67 2c 20 6d 70 7a 5f 73  gned long, mpz_s
7b90: 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 41 54  rcptr)) __GMP_AT
7ba0: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23  TRIBUTE_PURE;..#
7bb0: 64 65 66 69 6e 65 20 6d 70 7a 5f 6c 63 6d 20 5f  define mpz_lcm _
7bc0: 5f 67 6d 70 7a 5f 6c 63 6d 0a 5f 5f 47 4d 50 5f  _gmpz_lcm.__GMP_
7bd0: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
7be0: 7a 5f 6c 63 6d 20 5f 5f 47 4d 50 5f 50 52 4f 54  z_lcm __GMP_PROT
7bf0: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a  O ((mpz_ptr, mpz
7c00: 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63  _srcptr, mpz_src
7c10: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
7c20: 6d 70 7a 5f 6c 63 6d 5f 75 69 20 5f 5f 67 6d 70  mpz_lcm_ui __gmp
7c30: 7a 5f 6c 63 6d 5f 75 69 0a 5f 5f 47 4d 50 5f 44  z_lcm_ui.__GMP_D
7c40: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
7c50: 5f 6c 63 6d 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  _lcm_ui __GMP_PR
7c60: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
7c70: 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pz_srcptr, unsig
7c80: 6e 65 64 20 6c 6f 6e 67 29 29 3b 0a 0a 23 64 65  ned long));..#de
7c90: 66 69 6e 65 20 6d 70 7a 5f 6c 65 67 65 6e 64 72  fine mpz_legendr
7ca0: 65 20 6d 70 7a 5f 6a 61 63 6f 62 69 20 20 2f 2a  e mpz_jacobi  /*
7cb0: 20 61 6c 69 61 73 20 2a 2f 0a 0a 23 64 65 66 69   alias */..#defi
7cc0: 6e 65 20 6d 70 7a 5f 6c 75 63 6e 75 6d 5f 75 69  ne mpz_lucnum_ui
7cd0: 20 5f 5f 67 6d 70 7a 5f 6c 75 63 6e 75 6d 5f 75   __gmpz_lucnum_u
7ce0: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
7cf0: 20 76 6f 69 64 20 6d 70 7a 5f 6c 75 63 6e 75 6d   void mpz_lucnum
7d00: 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _ui __GMP_PROTO 
7d10: 28 28 6d 70 7a 5f 70 74 72 2c 20 75 6e 73 69 67  ((mpz_ptr, unsig
7d20: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a  ned long int));.
7d30: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6c 75 63  .#define mpz_luc
7d40: 6e 75 6d 32 5f 75 69 20 5f 5f 67 6d 70 7a 5f 6c  num2_ui __gmpz_l
7d50: 75 63 6e 75 6d 32 5f 75 69 0a 5f 5f 47 4d 50 5f  ucnum2_ui.__GMP_
7d60: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
7d70: 7a 5f 6c 75 63 6e 75 6d 32 5f 75 69 20 5f 5f 47  z_lucnum2_ui __G
7d80: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
7d90: 74 72 2c 20 6d 70 7a 5f 70 74 72 2c 20 75 6e 73  tr, mpz_ptr, uns
7da0: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
7db0: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6d  ;..#define mpz_m
7dc0: 69 6c 6c 65 72 72 61 62 69 6e 20 5f 5f 67 6d 70  illerrabin __gmp
7dd0: 7a 5f 6d 69 6c 6c 65 72 72 61 62 69 6e 0a 5f 5f  z_millerrabin.__
7de0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
7df0: 20 6d 70 7a 5f 6d 69 6c 6c 65 72 72 61 62 69 6e   mpz_millerrabin
7e00: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
7e10: 70 7a 5f 73 72 63 70 74 72 2c 20 69 6e 74 29 29  pz_srcptr, int))
7e20: 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45   __GMP_ATTRIBUTE
7e30: 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20  _PURE;..#define 
7e40: 6d 70 7a 5f 6d 6f 64 20 5f 5f 67 6d 70 7a 5f 6d  mpz_mod __gmpz_m
7e50: 6f 64 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  od.__GMP_DECLSPE
7e60: 43 20 76 6f 69 64 20 6d 70 7a 5f 6d 6f 64 20 5f  C void mpz_mod _
7e70: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
7e80: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
7e90: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
7ea0: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6d 75 6c  .#define mpz_mul
7eb0: 20 5f 5f 67 6d 70 7a 5f 6d 75 6c 0a 5f 5f 47 4d   __gmpz_mul.__GM
7ec0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
7ed0: 6d 70 7a 5f 6d 75 6c 20 5f 5f 47 4d 50 5f 50 52  mpz_mul __GMP_PR
7ee0: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
7ef0: 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73  pz_srcptr, mpz_s
7f00: 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e  rcptr));..#defin
7f10: 65 20 6d 70 7a 5f 6d 75 6c 5f 32 65 78 70 20 5f  e mpz_mul_2exp _
7f20: 5f 67 6d 70 7a 5f 6d 75 6c 5f 32 65 78 70 0a 5f  _gmpz_mul_2exp._
7f30: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
7f40: 69 64 20 6d 70 7a 5f 6d 75 6c 5f 32 65 78 70 20  id mpz_mul_2exp 
7f50: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
7f60: 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74  z_ptr, mpz_srcpt
7f70: 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  r, unsigned long
7f80: 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65   int));..#define
7f90: 20 6d 70 7a 5f 6d 75 6c 5f 73 69 20 5f 5f 67 6d   mpz_mul_si __gm
7fa0: 70 7a 5f 6d 75 6c 5f 73 69 0a 5f 5f 47 4d 50 5f  pz_mul_si.__GMP_
7fb0: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
7fc0: 7a 5f 6d 75 6c 5f 73 69 20 5f 5f 47 4d 50 5f 50  z_mul_si __GMP_P
7fd0: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
7fe0: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6c 6f 6e 67  mpz_srcptr, long
7ff0: 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65   int));..#define
8000: 20 6d 70 7a 5f 6d 75 6c 5f 75 69 20 5f 5f 67 6d   mpz_mul_ui __gm
8010: 70 7a 5f 6d 75 6c 5f 75 69 0a 5f 5f 47 4d 50 5f  pz_mul_ui.__GMP_
8020: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
8030: 7a 5f 6d 75 6c 5f 75 69 20 5f 5f 47 4d 50 5f 50  z_mul_ui __GMP_P
8040: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
8050: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
8060: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
8070: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6e 65  ..#define mpz_ne
8080: 67 20 5f 5f 67 6d 70 7a 5f 6e 65 67 0a 23 69 66  g __gmpz_neg.#if
8090: 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52   __GMP_INLINE_PR
80a0: 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d  OTOTYPES || __GM
80b0: 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 6e 65 67 0a  P_FORCE_mpz_neg.
80c0: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
80d0: 6f 69 64 20 6d 70 7a 5f 6e 65 67 20 5f 5f 47 4d  oid mpz_neg __GM
80e0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
80f0: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b  r, mpz_srcptr));
8100: 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65  .#endif..#define
8110: 20 6d 70 7a 5f 6e 65 78 74 70 72 69 6d 65 20 5f   mpz_nextprime _
8120: 5f 67 6d 70 7a 5f 6e 65 78 74 70 72 69 6d 65 0a  _gmpz_nextprime.
8130: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
8140: 6f 69 64 20 6d 70 7a 5f 6e 65 78 74 70 72 69 6d  oid mpz_nextprim
8150: 65 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  e __GMP_PROTO ((
8160: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63  mpz_ptr, mpz_src
8170: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
8180: 6d 70 7a 5f 6f 75 74 5f 72 61 77 20 5f 5f 67 6d  mpz_out_raw __gm
8190: 70 7a 5f 6f 75 74 5f 72 61 77 0a 23 69 66 64 65  pz_out_raw.#ifde
81a0: 66 20 5f 47 4d 50 5f 48 5f 48 41 56 45 5f 46 49  f _GMP_H_HAVE_FI
81b0: 4c 45 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  LE.__GMP_DECLSPE
81c0: 43 20 73 69 7a 65 5f 74 20 6d 70 7a 5f 6f 75 74  C size_t mpz_out
81d0: 5f 72 61 77 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _raw __GMP_PROTO
81e0: 20 28 28 46 49 4c 45 20 2a 2c 20 6d 70 7a 5f 73   ((FILE *, mpz_s
81f0: 72 63 70 74 72 29 29 3b 0a 23 65 6e 64 69 66 0a  rcptr));.#endif.
8200: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6f 75 74  .#define mpz_out
8210: 5f 73 74 72 20 5f 5f 67 6d 70 7a 5f 6f 75 74 5f  _str __gmpz_out_
8220: 73 74 72 0a 23 69 66 64 65 66 20 5f 47 4d 50 5f  str.#ifdef _GMP_
8230: 48 5f 48 41 56 45 5f 46 49 4c 45 0a 5f 5f 47 4d  H_HAVE_FILE.__GM
8240: 50 5f 44 45 43 4c 53 50 45 43 20 73 69 7a 65 5f  P_DECLSPEC size_
8250: 74 20 6d 70 7a 5f 6f 75 74 5f 73 74 72 20 5f 5f  t mpz_out_str __
8260: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 46 49 4c 45  GMP_PROTO ((FILE
8270: 20 2a 2c 20 69 6e 74 2c 20 6d 70 7a 5f 73 72 63   *, int, mpz_src
8280: 70 74 72 29 29 3b 0a 23 65 6e 64 69 66 0a 0a 23  ptr));.#endif..#
8290: 64 65 66 69 6e 65 20 6d 70 7a 5f 70 65 72 66 65  define mpz_perfe
82a0: 63 74 5f 70 6f 77 65 72 5f 70 20 5f 5f 67 6d 70  ct_power_p __gmp
82b0: 7a 5f 70 65 72 66 65 63 74 5f 70 6f 77 65 72 5f  z_perfect_power_
82c0: 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  p.__GMP_DECLSPEC
82d0: 20 69 6e 74 20 6d 70 7a 5f 70 65 72 66 65 63 74   int mpz_perfect
82e0: 5f 70 6f 77 65 72 5f 70 20 5f 5f 47 4d 50 5f 50  _power_p __GMP_P
82f0: 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74  ROTO ((mpz_srcpt
8300: 72 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  r)) __GMP_ATTRIB
8310: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
8320: 6e 65 20 6d 70 7a 5f 70 65 72 66 65 63 74 5f 73  ne mpz_perfect_s
8330: 71 75 61 72 65 5f 70 20 5f 5f 67 6d 70 7a 5f 70  quare_p __gmpz_p
8340: 65 72 66 65 63 74 5f 73 71 75 61 72 65 5f 70 0a  erfect_square_p.
8350: 23 69 66 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45  #if __GMP_INLINE
8360: 5f 50 52 4f 54 4f 54 59 50 45 53 20 7c 7c 20 5f  _PROTOTYPES || _
8370: 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 70  _GMP_FORCE_mpz_p
8380: 65 72 66 65 63 74 5f 73 71 75 61 72 65 5f 70 0a  erfect_square_p.
8390: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69  __GMP_DECLSPEC i
83a0: 6e 74 20 6d 70 7a 5f 70 65 72 66 65 63 74 5f 73  nt mpz_perfect_s
83b0: 71 75 61 72 65 5f 70 20 5f 5f 47 4d 50 5f 50 52  quare_p __GMP_PR
83c0: 4f 54 4f 20 28 28 6d 70 7a 5f 73 72 63 70 74 72  OTO ((mpz_srcptr
83d0: 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  )) __GMP_ATTRIBU
83e0: 54 45 5f 50 55 52 45 3b 0a 23 65 6e 64 69 66 0a  TE_PURE;.#endif.
83f0: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 70 6f 70  .#define mpz_pop
8400: 63 6f 75 6e 74 20 5f 5f 67 6d 70 7a 5f 70 6f 70  count __gmpz_pop
8410: 63 6f 75 6e 74 0a 23 69 66 20 5f 5f 47 4d 50 5f  count.#if __GMP_
8420: 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54 59 50 45  INLINE_PROTOTYPE
8430: 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  S || __GMP_FORCE
8440: 5f 6d 70 7a 5f 70 6f 70 63 6f 75 6e 74 0a 5f 5f  _mpz_popcount.__
8450: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 75 6e 73  GMP_DECLSPEC uns
8460: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 20 6d  igned long int m
8470: 70 7a 5f 70 6f 70 63 6f 75 6e 74 20 5f 5f 47 4d  pz_popcount __GM
8480: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73 72  P_PROTO ((mpz_sr
8490: 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54  cptr)) __GMP_NOT
84a0: 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49  HROW __GMP_ATTRI
84b0: 42 55 54 45 5f 50 55 52 45 3b 0a 23 65 6e 64 69  BUTE_PURE;.#endi
84c0: 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 70  f..#define mpz_p
84d0: 6f 77 5f 75 69 20 5f 5f 67 6d 70 7a 5f 70 6f 77  ow_ui __gmpz_pow
84e0: 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _ui.__GMP_DECLSP
84f0: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 70 6f 77 5f  EC void mpz_pow_
8500: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
8510: 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72  (mpz_ptr, mpz_sr
8520: 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c  cptr, unsigned l
8530: 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66  ong int));..#def
8540: 69 6e 65 20 6d 70 7a 5f 70 6f 77 6d 20 5f 5f 67  ine mpz_powm __g
8550: 6d 70 7a 5f 70 6f 77 6d 0a 5f 5f 47 4d 50 5f 44  mpz_powm.__GMP_D
8560: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
8570: 5f 70 6f 77 6d 20 5f 5f 47 4d 50 5f 50 52 4f 54  _powm __GMP_PROT
8580: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a  O ((mpz_ptr, mpz
8590: 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63  _srcptr, mpz_src
85a0: 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29  ptr, mpz_srcptr)
85b0: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
85c0: 70 6f 77 6d 5f 75 69 20 5f 5f 67 6d 70 7a 5f 70  powm_ui __gmpz_p
85d0: 6f 77 6d 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43  owm_ui.__GMP_DEC
85e0: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 70  LSPEC void mpz_p
85f0: 6f 77 6d 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f  owm_ui __GMP_PRO
8600: 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70  TO ((mpz_ptr, mp
8610: 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e  z_srcptr, unsign
8620: 65 64 20 6c 6f 6e 67 20 69 6e 74 2c 20 6d 70 7a  ed long int, mpz
8630: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
8640: 69 6e 65 20 6d 70 7a 5f 70 72 6f 62 61 62 5f 70  ine mpz_probab_p
8650: 72 69 6d 65 5f 70 20 5f 5f 67 6d 70 7a 5f 70 72  rime_p __gmpz_pr
8660: 6f 62 61 62 5f 70 72 69 6d 65 5f 70 0a 5f 5f 47  obab_prime_p.__G
8670: 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20  MP_DECLSPEC int 
8680: 6d 70 7a 5f 70 72 6f 62 61 62 5f 70 72 69 6d 65  mpz_probab_prime
8690: 5f 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  _p __GMP_PROTO (
86a0: 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 69 6e 74  (mpz_srcptr, int
86b0: 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  )) __GMP_ATTRIBU
86c0: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
86d0: 65 20 6d 70 7a 5f 72 61 6e 64 6f 6d 20 5f 5f 67  e mpz_random __g
86e0: 6d 70 7a 5f 72 61 6e 64 6f 6d 0a 5f 5f 47 4d 50  mpz_random.__GMP
86f0: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
8700: 70 7a 5f 72 61 6e 64 6f 6d 20 5f 5f 47 4d 50 5f  pz_random __GMP_
8710: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
8720: 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a 23   mp_size_t));..#
8730: 64 65 66 69 6e 65 20 6d 70 7a 5f 72 61 6e 64 6f  define mpz_rando
8740: 6d 32 20 5f 5f 67 6d 70 7a 5f 72 61 6e 64 6f 6d  m2 __gmpz_random
8750: 32 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  2.__GMP_DECLSPEC
8760: 20 76 6f 69 64 20 6d 70 7a 5f 72 61 6e 64 6f 6d   void mpz_random
8770: 32 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  2 __GMP_PROTO ((
8780: 6d 70 7a 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65  mpz_ptr, mp_size
8790: 5f 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  _t));..#define m
87a0: 70 7a 5f 72 65 61 6c 6c 6f 63 32 20 5f 5f 67 6d  pz_realloc2 __gm
87b0: 70 7a 5f 72 65 61 6c 6c 6f 63 32 0a 5f 5f 47 4d  pz_realloc2.__GM
87c0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
87d0: 6d 70 7a 5f 72 65 61 6c 6c 6f 63 32 20 5f 5f 47  mpz_realloc2 __G
87e0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
87f0: 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e  tr, unsigned lon
8800: 67 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  g));..#define mp
8810: 7a 5f 72 65 6d 6f 76 65 20 5f 5f 67 6d 70 7a 5f  z_remove __gmpz_
8820: 72 65 6d 6f 76 65 0a 5f 5f 47 4d 50 5f 44 45 43  remove.__GMP_DEC
8830: 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c  LSPEC unsigned l
8840: 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 72 65 6d 6f  ong int mpz_remo
8850: 76 65 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ve __GMP_PROTO (
8860: 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72  (mpz_ptr, mpz_sr
8870: 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  cptr, mpz_srcptr
8880: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a  ));..#define mpz
8890: 5f 72 6f 6f 74 20 5f 5f 67 6d 70 7a 5f 72 6f 6f  _root __gmpz_roo
88a0: 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  t.__GMP_DECLSPEC
88b0: 20 69 6e 74 20 6d 70 7a 5f 72 6f 6f 74 20 5f 5f   int mpz_root __
88c0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
88d0: 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c  ptr, mpz_srcptr,
88e0: 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69   unsigned long i
88f0: 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  nt));..#define m
8900: 70 7a 5f 72 72 61 6e 64 6f 6d 62 20 5f 5f 67 6d  pz_rrandomb __gm
8910: 70 7a 5f 72 72 61 6e 64 6f 6d 62 0a 5f 5f 47 4d  pz_rrandomb.__GM
8920: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
8930: 6d 70 7a 5f 72 72 61 6e 64 6f 6d 62 20 5f 5f 47  mpz_rrandomb __G
8940: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
8950: 74 72 2c 20 67 6d 70 5f 72 61 6e 64 73 74 61 74  tr, gmp_randstat
8960: 65 5f 74 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  e_t, unsigned lo
8970: 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69  ng int));..#defi
8980: 6e 65 20 6d 70 7a 5f 73 63 61 6e 30 20 5f 5f 67  ne mpz_scan0 __g
8990: 6d 70 7a 5f 73 63 61 6e 30 0a 5f 5f 47 4d 50 5f  mpz_scan0.__GMP_
89a0: 44 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65  DECLSPEC unsigne
89b0: 64 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 73  d long int mpz_s
89c0: 63 61 6e 30 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  can0 __GMP_PROTO
89d0: 20 28 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75   ((mpz_srcptr, u
89e0: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74  nsigned long int
89f0: 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57  )) __GMP_NOTHROW
8a00: 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45   __GMP_ATTRIBUTE
8a10: 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20  _PURE;..#define 
8a20: 6d 70 7a 5f 73 63 61 6e 31 20 5f 5f 67 6d 70 7a  mpz_scan1 __gmpz
8a30: 5f 73 63 61 6e 31 0a 5f 5f 47 4d 50 5f 44 45 43  _scan1.__GMP_DEC
8a40: 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c  LSPEC unsigned l
8a50: 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 73 63 61 6e  ong int mpz_scan
8a60: 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  1 __GMP_PROTO ((
8a70: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
8a80: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20  gned long int)) 
8a90: 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f  __GMP_NOTHROW __
8aa0: 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55  GMP_ATTRIBUTE_PU
8ab0: 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a  RE;..#define mpz
8ac0: 5f 73 65 74 20 5f 5f 67 6d 70 7a 5f 73 65 74 0a  _set __gmpz_set.
8ad0: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
8ae0: 6f 69 64 20 6d 70 7a 5f 73 65 74 20 5f 5f 47 4d  oid mpz_set __GM
8af0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74  P_PROTO ((mpz_pt
8b00: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b  r, mpz_srcptr));
8b10: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73 65  ..#define mpz_se
8b20: 74 5f 64 20 5f 5f 67 6d 70 7a 5f 73 65 74 5f 64  t_d __gmpz_set_d
8b30: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
8b40: 76 6f 69 64 20 6d 70 7a 5f 73 65 74 5f 64 20 5f  void mpz_set_d _
8b50: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
8b60: 5f 70 74 72 2c 20 64 6f 75 62 6c 65 29 29 3b 0a  _ptr, double));.
8b70: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73 65 74  .#define mpz_set
8b80: 5f 66 20 5f 5f 67 6d 70 7a 5f 73 65 74 5f 66 0a  _f __gmpz_set_f.
8b90: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
8ba0: 6f 69 64 20 6d 70 7a 5f 73 65 74 5f 66 20 5f 5f  oid mpz_set_f __
8bb0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
8bc0: 70 74 72 2c 20 6d 70 66 5f 73 72 63 70 74 72 29  ptr, mpf_srcptr)
8bd0: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
8be0: 73 65 74 5f 71 20 5f 5f 67 6d 70 7a 5f 73 65 74  set_q __gmpz_set
8bf0: 5f 71 0a 23 69 66 20 5f 5f 47 4d 50 5f 49 4e 4c  _q.#if __GMP_INL
8c00: 49 4e 45 5f 50 52 4f 54 4f 54 59 50 45 53 20 7c  INE_PROTOTYPES |
8c10: 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70  | __GMP_FORCE_mp
8c20: 7a 5f 73 65 74 5f 71 0a 5f 5f 47 4d 50 5f 44 45  z_set_q.__GMP_DE
8c30: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f  CLSPEC void mpz_
8c40: 73 65 74 5f 71 20 5f 5f 47 4d 50 5f 50 52 4f 54  set_q __GMP_PROT
8c50: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 71  O ((mpz_ptr, mpq
8c60: 5f 73 72 63 70 74 72 29 29 3b 0a 23 65 6e 64 69  _srcptr));.#endi
8c70: 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73  f..#define mpz_s
8c80: 65 74 5f 73 69 20 5f 5f 67 6d 70 7a 5f 73 65 74  et_si __gmpz_set
8c90: 5f 73 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _si.__GMP_DECLSP
8ca0: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 65 74 5f  EC void mpz_set_
8cb0: 73 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  si __GMP_PROTO (
8cc0: 28 6d 70 7a 5f 70 74 72 2c 20 73 69 67 6e 65 64  (mpz_ptr, signed
8cd0: 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64   long int));..#d
8ce0: 65 66 69 6e 65 20 6d 70 7a 5f 73 65 74 5f 73 74  efine mpz_set_st
8cf0: 72 20 5f 5f 67 6d 70 7a 5f 73 65 74 5f 73 74 72  r __gmpz_set_str
8d00: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
8d10: 69 6e 74 20 6d 70 7a 5f 73 65 74 5f 73 74 72 20  int mpz_set_str 
8d20: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
8d30: 7a 5f 70 74 72 2c 20 5f 5f 67 6d 70 5f 63 6f 6e  z_ptr, __gmp_con
8d40: 73 74 20 63 68 61 72 20 2a 2c 20 69 6e 74 29 29  st char *, int))
8d50: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73  ;..#define mpz_s
8d60: 65 74 5f 75 69 20 5f 5f 67 6d 70 7a 5f 73 65 74  et_ui __gmpz_set
8d70: 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _ui.__GMP_DECLSP
8d80: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 65 74 5f  EC void mpz_set_
8d90: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
8da0: 28 6d 70 7a 5f 70 74 72 2c 20 75 6e 73 69 67 6e  (mpz_ptr, unsign
8db0: 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a  ed long int));..
8dc0: 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73 65 74 62  #define mpz_setb
8dd0: 69 74 20 5f 5f 67 6d 70 7a 5f 73 65 74 62 69 74  it __gmpz_setbit
8de0: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
8df0: 76 6f 69 64 20 6d 70 7a 5f 73 65 74 62 69 74 20  void mpz_setbit 
8e00: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
8e10: 7a 5f 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20  z_ptr, unsigned 
8e20: 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65  long int));..#de
8e30: 66 69 6e 65 20 6d 70 7a 5f 73 69 7a 65 20 5f 5f  fine mpz_size __
8e40: 67 6d 70 7a 5f 73 69 7a 65 0a 23 69 66 20 5f 5f  gmpz_size.#if __
8e50: 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f  GMP_INLINE_PROTO
8e60: 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46  TYPES || __GMP_F
8e70: 4f 52 43 45 5f 6d 70 7a 5f 73 69 7a 65 0a 5f 5f  ORCE_mpz_size.__
8e80: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 73 69 7a  GMP_DECLSPEC siz
8e90: 65 5f 74 20 6d 70 7a 5f 73 69 7a 65 20 5f 5f 47  e_t mpz_size __G
8ea0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 73  MP_PROTO ((mpz_s
8eb0: 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f  rcptr)) __GMP_NO
8ec0: 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52  THROW __GMP_ATTR
8ed0: 49 42 55 54 45 5f 50 55 52 45 3b 0a 23 65 6e 64  IBUTE_PURE;.#end
8ee0: 69 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  if..#define mpz_
8ef0: 73 69 7a 65 69 6e 62 61 73 65 20 5f 5f 67 6d 70  sizeinbase __gmp
8f00: 7a 5f 73 69 7a 65 69 6e 62 61 73 65 0a 5f 5f 47  z_sizeinbase.__G
8f10: 4d 50 5f 44 45 43 4c 53 50 45 43 20 73 69 7a 65  MP_DECLSPEC size
8f20: 5f 74 20 6d 70 7a 5f 73 69 7a 65 69 6e 62 61 73  _t mpz_sizeinbas
8f30: 65 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  e __GMP_PROTO ((
8f40: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 69 6e 74 29  mpz_srcptr, int)
8f50: 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20  ) __GMP_NOTHROW 
8f60: 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f  __GMP_ATTRIBUTE_
8f70: 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  PURE;..#define m
8f80: 70 7a 5f 73 71 72 74 20 5f 5f 67 6d 70 7a 5f 73  pz_sqrt __gmpz_s
8f90: 71 72 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  qrt.__GMP_DECLSP
8fa0: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 71 72 74  EC void mpz_sqrt
8fb0: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
8fc0: 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  pz_ptr, mpz_srcp
8fd0: 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  tr));..#define m
8fe0: 70 7a 5f 73 71 72 74 72 65 6d 20 5f 5f 67 6d 70  pz_sqrtrem __gmp
8ff0: 7a 5f 73 71 72 74 72 65 6d 0a 5f 5f 47 4d 50 5f  z_sqrtrem.__GMP_
9000: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
9010: 7a 5f 73 71 72 74 72 65 6d 20 5f 5f 47 4d 50 5f  z_sqrtrem __GMP_
9020: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
9030: 20 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72   mpz_ptr, mpz_sr
9040: 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65  cptr));..#define
9050: 20 6d 70 7a 5f 73 75 62 20 5f 5f 67 6d 70 7a 5f   mpz_sub __gmpz_
9060: 73 75 62 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  sub.__GMP_DECLSP
9070: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 75 62 20  EC void mpz_sub 
9080: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
9090: 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74  z_ptr, mpz_srcpt
90a0: 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b  r, mpz_srcptr));
90b0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 73 75  ..#define mpz_su
90c0: 62 5f 75 69 20 5f 5f 67 6d 70 7a 5f 73 75 62 5f  b_ui __gmpz_sub_
90d0: 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ui.__GMP_DECLSPE
90e0: 43 20 76 6f 69 64 20 6d 70 7a 5f 73 75 62 5f 75  C void mpz_sub_u
90f0: 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  i __GMP_PROTO ((
9100: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63  mpz_ptr, mpz_src
9110: 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  ptr, unsigned lo
9120: 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69  ng int));..#defi
9130: 6e 65 20 6d 70 7a 5f 75 69 5f 73 75 62 20 5f 5f  ne mpz_ui_sub __
9140: 67 6d 70 7a 5f 75 69 5f 73 75 62 0a 5f 5f 47 4d  gmpz_ui_sub.__GM
9150: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
9160: 6d 70 7a 5f 75 69 5f 73 75 62 20 5f 5f 47 4d 50  mpz_ui_sub __GMP
9170: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
9180: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
9190: 69 6e 74 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29  int, mpz_srcptr)
91a0: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
91b0: 73 75 62 6d 75 6c 20 5f 5f 67 6d 70 7a 5f 73 75  submul __gmpz_su
91c0: 62 6d 75 6c 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  bmul.__GMP_DECLS
91d0: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 75 62  PEC void mpz_sub
91e0: 6d 75 6c 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  mul __GMP_PROTO 
91f0: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73  ((mpz_ptr, mpz_s
9200: 72 63 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74  rcptr, mpz_srcpt
9210: 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  r));..#define mp
9220: 7a 5f 73 75 62 6d 75 6c 5f 75 69 20 5f 5f 67 6d  z_submul_ui __gm
9230: 70 7a 5f 73 75 62 6d 75 6c 5f 75 69 0a 5f 5f 47  pz_submul_ui.__G
9240: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
9250: 20 6d 70 7a 5f 73 75 62 6d 75 6c 5f 75 69 20 5f   mpz_submul_ui _
9260: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a  _GMP_PROTO ((mpz
9270: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
9280: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
9290: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
92a0: 6d 70 7a 5f 73 77 61 70 20 5f 5f 67 6d 70 7a 5f  mpz_swap __gmpz_
92b0: 73 77 61 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  swap.__GMP_DECLS
92c0: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 73 77 61  PEC void mpz_swa
92d0: 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  p __GMP_PROTO ((
92e0: 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 70 74 72  mpz_ptr, mpz_ptr
92f0: 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57  )) __GMP_NOTHROW
9300: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 74  ;..#define mpz_t
9310: 64 69 76 5f 75 69 20 5f 5f 67 6d 70 7a 5f 74 64  div_ui __gmpz_td
9320: 69 76 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c  iv_ui.__GMP_DECL
9330: 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f  SPEC unsigned lo
9340: 6e 67 20 69 6e 74 20 6d 70 7a 5f 74 64 69 76 5f  ng int mpz_tdiv_
9350: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
9360: 28 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73  (mpz_srcptr, uns
9370: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
9380: 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45   __GMP_ATTRIBUTE
9390: 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20  _PURE;..#define 
93a0: 6d 70 7a 5f 74 64 69 76 5f 71 20 5f 5f 67 6d 70  mpz_tdiv_q __gmp
93b0: 7a 5f 74 64 69 76 5f 71 0a 5f 5f 47 4d 50 5f 44  z_tdiv_q.__GMP_D
93c0: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a  ECLSPEC void mpz
93d0: 5f 74 64 69 76 5f 71 20 5f 5f 47 4d 50 5f 50 52  _tdiv_q __GMP_PR
93e0: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
93f0: 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a 5f 73  pz_srcptr, mpz_s
9400: 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e  rcptr));..#defin
9410: 65 20 6d 70 7a 5f 74 64 69 76 5f 71 5f 32 65 78  e mpz_tdiv_q_2ex
9420: 70 20 5f 5f 67 6d 70 7a 5f 74 64 69 76 5f 71 5f  p __gmpz_tdiv_q_
9430: 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  2exp.__GMP_DECLS
9440: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 74 64 69  PEC void mpz_tdi
9450: 76 5f 71 5f 32 65 78 70 20 5f 5f 47 4d 50 5f 50  v_q_2exp __GMP_P
9460: 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20  ROTO ((mpz_ptr, 
9470: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
9480: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
9490: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 74 64  ..#define mpz_td
94a0: 69 76 5f 71 5f 75 69 20 5f 5f 67 6d 70 7a 5f 74  iv_q_ui __gmpz_t
94b0: 64 69 76 5f 71 5f 75 69 0a 5f 5f 47 4d 50 5f 44  div_q_ui.__GMP_D
94c0: 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64  ECLSPEC unsigned
94d0: 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 74 64   long int mpz_td
94e0: 69 76 5f 71 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  iv_q_ui __GMP_PR
94f0: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
9500: 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pz_srcptr, unsig
9510: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a  ned long int));.
9520: 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 74 64 69  .#define mpz_tdi
9530: 76 5f 71 72 20 5f 5f 67 6d 70 7a 5f 74 64 69 76  v_qr __gmpz_tdiv
9540: 5f 71 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _qr.__GMP_DECLSP
9550: 45 43 20 76 6f 69 64 20 6d 70 7a 5f 74 64 69 76  EC void mpz_tdiv
9560: 5f 71 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _qr __GMP_PROTO 
9570: 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 70  ((mpz_ptr, mpz_p
9580: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20  tr, mpz_srcptr, 
9590: 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpz_srcptr));..#
95a0: 64 65 66 69 6e 65 20 6d 70 7a 5f 74 64 69 76 5f  define mpz_tdiv_
95b0: 71 72 5f 75 69 20 5f 5f 67 6d 70 7a 5f 74 64 69  qr_ui __gmpz_tdi
95c0: 76 5f 71 72 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45  v_qr_ui.__GMP_DE
95d0: 43 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20  CLSPEC unsigned 
95e0: 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f 74 64 69  long int mpz_tdi
95f0: 76 5f 71 72 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  v_qr_ui __GMP_PR
9600: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d  OTO ((mpz_ptr, m
9610: 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  pz_ptr, mpz_srcp
9620: 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e  tr, unsigned lon
9630: 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e  g int));..#defin
9640: 65 20 6d 70 7a 5f 74 64 69 76 5f 72 20 5f 5f 67  e mpz_tdiv_r __g
9650: 6d 70 7a 5f 74 64 69 76 5f 72 0a 5f 5f 47 4d 50  mpz_tdiv_r.__GMP
9660: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
9670: 70 7a 5f 74 64 69 76 5f 72 20 5f 5f 47 4d 50 5f  pz_tdiv_r __GMP_
9680: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
9690: 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 6d 70 7a   mpz_srcptr, mpz
96a0: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
96b0: 69 6e 65 20 6d 70 7a 5f 74 64 69 76 5f 72 5f 32  ine mpz_tdiv_r_2
96c0: 65 78 70 20 5f 5f 67 6d 70 7a 5f 74 64 69 76 5f  exp __gmpz_tdiv_
96d0: 72 5f 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43  r_2exp.__GMP_DEC
96e0: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 74  LSPEC void mpz_t
96f0: 64 69 76 5f 72 5f 32 65 78 70 20 5f 5f 47 4d 50  div_r_2exp __GMP
9700: 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72  _PROTO ((mpz_ptr
9710: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e  , mpz_srcptr, un
9720: 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29  signed long int)
9730: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  );..#define mpz_
9740: 74 64 69 76 5f 72 5f 75 69 20 5f 5f 67 6d 70 7a  tdiv_r_ui __gmpz
9750: 5f 74 64 69 76 5f 72 5f 75 69 0a 5f 5f 47 4d 50  _tdiv_r_ui.__GMP
9760: 5f 44 45 43 4c 53 50 45 43 20 75 6e 73 69 67 6e  _DECLSPEC unsign
9770: 65 64 20 6c 6f 6e 67 20 69 6e 74 20 6d 70 7a 5f  ed long int mpz_
9780: 74 64 69 76 5f 72 5f 75 69 20 5f 5f 47 4d 50 5f  tdiv_r_ui __GMP_
9790: 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c  PROTO ((mpz_ptr,
97a0: 20 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73   mpz_srcptr, uns
97b0: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
97c0: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 74  ;..#define mpz_t
97d0: 73 74 62 69 74 20 5f 5f 67 6d 70 7a 5f 74 73 74  stbit __gmpz_tst
97e0: 62 69 74 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  bit.__GMP_DECLSP
97f0: 45 43 20 69 6e 74 20 6d 70 7a 5f 74 73 74 62 69  EC int mpz_tstbi
9800: 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  t __GMP_PROTO ((
9810: 6d 70 7a 5f 73 72 63 70 74 72 2c 20 75 6e 73 69  mpz_srcptr, unsi
9820: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20  gned long int)) 
9830: 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f  __GMP_NOTHROW __
9840: 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55  GMP_ATTRIBUTE_PU
9850: 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a  RE;..#define mpz
9860: 5f 75 69 5f 70 6f 77 5f 75 69 20 5f 5f 67 6d 70  _ui_pow_ui __gmp
9870: 7a 5f 75 69 5f 70 6f 77 5f 75 69 0a 5f 5f 47 4d  z_ui_pow_ui.__GM
9880: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
9890: 6d 70 7a 5f 75 69 5f 70 6f 77 5f 75 69 20 5f 5f  mpz_ui_pow_ui __
98a0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f  GMP_PROTO ((mpz_
98b0: 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  ptr, unsigned lo
98c0: 6e 67 20 69 6e 74 2c 20 75 6e 73 69 67 6e 65 64  ng int, unsigned
98d0: 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64   long int));..#d
98e0: 65 66 69 6e 65 20 6d 70 7a 5f 75 72 61 6e 64 6f  efine mpz_urando
98f0: 6d 62 20 5f 5f 67 6d 70 7a 5f 75 72 61 6e 64 6f  mb __gmpz_urando
9900: 6d 62 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  mb.__GMP_DECLSPE
9910: 43 20 76 6f 69 64 20 6d 70 7a 5f 75 72 61 6e 64  C void mpz_urand
9920: 6f 6d 62 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  omb __GMP_PROTO 
9930: 28 28 6d 70 7a 5f 70 74 72 2c 20 67 6d 70 5f 72  ((mpz_ptr, gmp_r
9940: 61 6e 64 73 74 61 74 65 5f 74 2c 20 75 6e 73 69  andstate_t, unsi
9950: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b  gned long int));
9960: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 75 72  ..#define mpz_ur
9970: 61 6e 64 6f 6d 6d 20 5f 5f 67 6d 70 7a 5f 75 72  andomm __gmpz_ur
9980: 61 6e 64 6f 6d 6d 0a 5f 5f 47 4d 50 5f 44 45 43  andomm.__GMP_DEC
9990: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 75  LSPEC void mpz_u
99a0: 72 61 6e 64 6f 6d 6d 20 5f 5f 47 4d 50 5f 50 52  randomm __GMP_PR
99b0: 4f 54 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 67  OTO ((mpz_ptr, g
99c0: 6d 70 5f 72 61 6e 64 73 74 61 74 65 5f 74 2c 20  mp_randstate_t, 
99d0: 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpz_srcptr));..#
99e0: 64 65 66 69 6e 65 20 6d 70 7a 5f 78 6f 72 20 5f  define mpz_xor _
99f0: 5f 67 6d 70 7a 5f 78 6f 72 0a 23 64 65 66 69 6e  _gmpz_xor.#defin
9a00: 65 20 6d 70 7a 5f 65 6f 72 20 5f 5f 67 6d 70 7a  e mpz_eor __gmpz
9a10: 5f 78 6f 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  _xor.__GMP_DECLS
9a20: 50 45 43 20 76 6f 69 64 20 6d 70 7a 5f 78 6f 72  PEC void mpz_xor
9a30: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
9a40: 70 7a 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70  pz_ptr, mpz_srcp
9a50: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29  tr, mpz_srcptr))
9a60: 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ;.../***********
9a70: 2a 2a 2a 2a 2a 20 52 61 74 69 6f 6e 61 6c 20 28  ***** Rational (
9a80: 69 2e 65 2e 20 51 29 20 72 6f 75 74 69 6e 65 73  i.e. Q) routines
9a90: 2e 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .  *************
9aa0: 2a 2a 2a 2f 0a 0a 23 64 65 66 69 6e 65 20 6d 70  ***/..#define mp
9ab0: 71 5f 61 62 73 20 5f 5f 67 6d 70 71 5f 61 62 73  q_abs __gmpq_abs
9ac0: 0a 23 69 66 20 5f 5f 47 4d 50 5f 49 4e 4c 49 4e  .#if __GMP_INLIN
9ad0: 45 5f 50 52 4f 54 4f 54 59 50 45 53 20 7c 7c 20  E_PROTOTYPES || 
9ae0: 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 71 5f  __GMP_FORCE_mpq_
9af0: 61 62 73 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  abs.__GMP_DECLSP
9b00: 45 43 20 76 6f 69 64 20 6d 70 71 5f 61 62 73 20  EC void mpq_abs 
9b10: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
9b20: 71 5f 70 74 72 2c 20 6d 70 71 5f 73 72 63 70 74  q_ptr, mpq_srcpt
9b30: 72 29 29 3b 0a 23 65 6e 64 69 66 0a 0a 23 64 65  r));.#endif..#de
9b40: 66 69 6e 65 20 6d 70 71 5f 61 64 64 20 5f 5f 67  fine mpq_add __g
9b50: 6d 70 71 5f 61 64 64 0a 5f 5f 47 4d 50 5f 44 45  mpq_add.__GMP_DE
9b60: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 71 5f  CLSPEC void mpq_
9b70: 61 64 64 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  add __GMP_PROTO 
9b80: 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70 71 5f 73  ((mpq_ptr, mpq_s
9b90: 72 63 70 74 72 2c 20 6d 70 71 5f 73 72 63 70 74  rcptr, mpq_srcpt
9ba0: 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  r));..#define mp
9bb0: 71 5f 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 20 5f  q_canonicalize _
9bc0: 5f 67 6d 70 71 5f 63 61 6e 6f 6e 69 63 61 6c 69  _gmpq_canonicali
9bd0: 7a 65 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ze.__GMP_DECLSPE
9be0: 43 20 76 6f 69 64 20 6d 70 71 5f 63 61 6e 6f 6e  C void mpq_canon
9bf0: 69 63 61 6c 69 7a 65 20 5f 5f 47 4d 50 5f 50 52  icalize __GMP_PR
9c00: 4f 54 4f 20 28 28 6d 70 71 5f 70 74 72 29 29 3b  OTO ((mpq_ptr));
9c10: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 63 6c  ..#define mpq_cl
9c20: 65 61 72 20 5f 5f 67 6d 70 71 5f 63 6c 65 61 72  ear __gmpq_clear
9c30: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
9c40: 76 6f 69 64 20 6d 70 71 5f 63 6c 65 61 72 20 5f  void mpq_clear _
9c50: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71  _GMP_PROTO ((mpq
9c60: 5f 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65  _ptr));..#define
9c70: 20 6d 70 71 5f 63 6d 70 20 5f 5f 67 6d 70 71 5f   mpq_cmp __gmpq_
9c80: 63 6d 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  cmp.__GMP_DECLSP
9c90: 45 43 20 69 6e 74 20 6d 70 71 5f 63 6d 70 20 5f  EC int mpq_cmp _
9ca0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71  _GMP_PROTO ((mpq
9cb0: 5f 73 72 63 70 74 72 2c 20 6d 70 71 5f 73 72 63  _srcptr, mpq_src
9cc0: 70 74 72 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52  ptr)) __GMP_ATTR
9cd0: 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65  IBUTE_PURE;..#de
9ce0: 66 69 6e 65 20 5f 6d 70 71 5f 63 6d 70 5f 73 69  fine _mpq_cmp_si
9cf0: 20 5f 5f 67 6d 70 71 5f 63 6d 70 5f 73 69 0a 5f   __gmpq_cmp_si._
9d00: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
9d10: 74 20 5f 6d 70 71 5f 63 6d 70 5f 73 69 20 5f 5f  t _mpq_cmp_si __
9d20: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f  GMP_PROTO ((mpq_
9d30: 73 72 63 70 74 72 2c 20 6c 6f 6e 67 2c 20 75 6e  srcptr, long, un
9d40: 73 69 67 6e 65 64 20 6c 6f 6e 67 29 29 20 5f 5f  signed long)) __
9d50: 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55  GMP_ATTRIBUTE_PU
9d60: 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 5f 6d 70  RE;..#define _mp
9d70: 71 5f 63 6d 70 5f 75 69 20 5f 5f 67 6d 70 71 5f  q_cmp_ui __gmpq_
9d80: 63 6d 70 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43  cmp_ui.__GMP_DEC
9d90: 4c 53 50 45 43 20 69 6e 74 20 5f 6d 70 71 5f 63  LSPEC int _mpq_c
9da0: 6d 70 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54  mp_ui __GMP_PROT
9db0: 4f 20 28 28 6d 70 71 5f 73 72 63 70 74 72 2c 20  O ((mpq_srcptr, 
9dc0: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e  unsigned long in
9dd0: 74 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  t, unsigned long
9de0: 20 69 6e 74 29 29 20 5f 5f 47 4d 50 5f 41 54 54   int)) __GMP_ATT
9df0: 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64  RIBUTE_PURE;..#d
9e00: 65 66 69 6e 65 20 6d 70 71 5f 64 69 76 20 5f 5f  efine mpq_div __
9e10: 67 6d 70 71 5f 64 69 76 0a 5f 5f 47 4d 50 5f 44  gmpq_div.__GMP_D
9e20: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 71  ECLSPEC void mpq
9e30: 5f 64 69 76 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _div __GMP_PROTO
9e40: 20 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70 71 5f   ((mpq_ptr, mpq_
9e50: 73 72 63 70 74 72 2c 20 6d 70 71 5f 73 72 63 70  srcptr, mpq_srcp
9e60: 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  tr));..#define m
9e70: 70 71 5f 64 69 76 5f 32 65 78 70 20 5f 5f 67 6d  pq_div_2exp __gm
9e80: 70 71 5f 64 69 76 5f 32 65 78 70 0a 5f 5f 47 4d  pq_div_2exp.__GM
9e90: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
9ea0: 6d 70 71 5f 64 69 76 5f 32 65 78 70 20 5f 5f 47  mpq_div_2exp __G
9eb0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f 70  MP_PROTO ((mpq_p
9ec0: 74 72 2c 20 6d 70 71 5f 73 72 63 70 74 72 2c 20  tr, mpq_srcptr, 
9ed0: 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 29 29 3b  unsigned long));
9ee0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 65 71  ..#define mpq_eq
9ef0: 75 61 6c 20 5f 5f 67 6d 70 71 5f 65 71 75 61 6c  ual __gmpq_equal
9f00: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
9f10: 69 6e 74 20 6d 70 71 5f 65 71 75 61 6c 20 5f 5f  int mpq_equal __
9f20: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f  GMP_PROTO ((mpq_
9f30: 73 72 63 70 74 72 2c 20 6d 70 71 5f 73 72 63 70  srcptr, mpq_srcp
9f40: 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52  tr)) __GMP_NOTHR
9f50: 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  OW __GMP_ATTRIBU
9f60: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
9f70: 65 20 6d 70 71 5f 67 65 74 5f 6e 75 6d 20 5f 5f  e mpq_get_num __
9f80: 67 6d 70 71 5f 67 65 74 5f 6e 75 6d 0a 5f 5f 47  gmpq_get_num.__G
9f90: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
9fa0: 20 6d 70 71 5f 67 65 74 5f 6e 75 6d 20 5f 5f 47   mpq_get_num __G
9fb0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 7a 5f 70  MP_PROTO ((mpz_p
9fc0: 74 72 2c 20 6d 70 71 5f 73 72 63 70 74 72 29 29  tr, mpq_srcptr))
9fd0: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 67  ;..#define mpq_g
9fe0: 65 74 5f 64 65 6e 20 5f 5f 67 6d 70 71 5f 67 65  et_den __gmpq_ge
9ff0: 74 5f 64 65 6e 0a 5f 5f 47 4d 50 5f 44 45 43 4c  t_den.__GMP_DECL
a000: 53 50 45 43 20 76 6f 69 64 20 6d 70 71 5f 67 65  SPEC void mpq_ge
a010: 74 5f 64 65 6e 20 5f 5f 47 4d 50 5f 50 52 4f 54  t_den __GMP_PROT
a020: 4f 20 28 28 6d 70 7a 5f 70 74 72 2c 20 6d 70 71  O ((mpz_ptr, mpq
a030: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
a040: 69 6e 65 20 6d 70 71 5f 67 65 74 5f 64 20 5f 5f  ine mpq_get_d __
a050: 67 6d 70 71 5f 67 65 74 5f 64 0a 5f 5f 47 4d 50  gmpq_get_d.__GMP
a060: 5f 44 45 43 4c 53 50 45 43 20 64 6f 75 62 6c 65  _DECLSPEC double
a070: 20 6d 70 71 5f 67 65 74 5f 64 20 5f 5f 47 4d 50   mpq_get_d __GMP
a080: 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f 73 72 63  _PROTO ((mpq_src
a090: 70 74 72 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52  ptr)) __GMP_ATTR
a0a0: 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65  IBUTE_PURE;..#de
a0b0: 66 69 6e 65 20 6d 70 71 5f 67 65 74 5f 73 74 72  fine mpq_get_str
a0c0: 20 5f 5f 67 6d 70 71 5f 67 65 74 5f 73 74 72 0a   __gmpq_get_str.
a0d0: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 63  __GMP_DECLSPEC c
a0e0: 68 61 72 20 2a 6d 70 71 5f 67 65 74 5f 73 74 72  har *mpq_get_str
a0f0: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 63   __GMP_PROTO ((c
a100: 68 61 72 20 2a 2c 20 69 6e 74 2c 20 6d 70 71 5f  har *, int, mpq_
a110: 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  srcptr));..#defi
a120: 6e 65 20 6d 70 71 5f 69 6e 69 74 20 5f 5f 67 6d  ne mpq_init __gm
a130: 70 71 5f 69 6e 69 74 0a 5f 5f 47 4d 50 5f 44 45  pq_init.__GMP_DE
a140: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 71 5f  CLSPEC void mpq_
a150: 69 6e 69 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  init __GMP_PROTO
a160: 20 28 28 6d 70 71 5f 70 74 72 29 29 3b 0a 0a 23   ((mpq_ptr));..#
a170: 64 65 66 69 6e 65 20 6d 70 71 5f 69 6e 70 5f 73  define mpq_inp_s
a180: 74 72 20 5f 5f 67 6d 70 71 5f 69 6e 70 5f 73 74  tr __gmpq_inp_st
a190: 72 0a 23 69 66 64 65 66 20 5f 47 4d 50 5f 48 5f  r.#ifdef _GMP_H_
a1a0: 48 41 56 45 5f 46 49 4c 45 0a 5f 5f 47 4d 50 5f  HAVE_FILE.__GMP_
a1b0: 44 45 43 4c 53 50 45 43 20 73 69 7a 65 5f 74 20  DECLSPEC size_t 
a1c0: 6d 70 71 5f 69 6e 70 5f 73 74 72 20 5f 5f 47 4d  mpq_inp_str __GM
a1d0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f 70 74  P_PROTO ((mpq_pt
a1e0: 72 2c 20 46 49 4c 45 20 2a 2c 20 69 6e 74 29 29  r, FILE *, int))
a1f0: 3b 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e  ;.#endif..#defin
a200: 65 20 6d 70 71 5f 69 6e 76 20 5f 5f 67 6d 70 71  e mpq_inv __gmpq
a210: 5f 69 6e 76 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  _inv.__GMP_DECLS
a220: 50 45 43 20 76 6f 69 64 20 6d 70 71 5f 69 6e 76  PEC void mpq_inv
a230: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
a240: 70 71 5f 70 74 72 2c 20 6d 70 71 5f 73 72 63 70  pq_ptr, mpq_srcp
a250: 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d  tr));..#define m
a260: 70 71 5f 6d 75 6c 20 5f 5f 67 6d 70 71 5f 6d 75  pq_mul __gmpq_mu
a270: 6c 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  l.__GMP_DECLSPEC
a280: 20 76 6f 69 64 20 6d 70 71 5f 6d 75 6c 20 5f 5f   void mpq_mul __
a290: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f  GMP_PROTO ((mpq_
a2a0: 70 74 72 2c 20 6d 70 71 5f 73 72 63 70 74 72 2c  ptr, mpq_srcptr,
a2b0: 20 6d 70 71 5f 73 72 63 70 74 72 29 29 3b 0a 0a   mpq_srcptr));..
a2c0: 23 64 65 66 69 6e 65 20 6d 70 71 5f 6d 75 6c 5f  #define mpq_mul_
a2d0: 32 65 78 70 20 5f 5f 67 6d 70 71 5f 6d 75 6c 5f  2exp __gmpq_mul_
a2e0: 32 65 78 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  2exp.__GMP_DECLS
a2f0: 50 45 43 20 76 6f 69 64 20 6d 70 71 5f 6d 75 6c  PEC void mpq_mul
a300: 5f 32 65 78 70 20 5f 5f 47 4d 50 5f 50 52 4f 54  _2exp __GMP_PROT
a310: 4f 20 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70 71  O ((mpq_ptr, mpq
a320: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
a330: 64 20 6c 6f 6e 67 29 29 3b 0a 0a 23 64 65 66 69  d long));..#defi
a340: 6e 65 20 6d 70 71 5f 6e 65 67 20 5f 5f 67 6d 70  ne mpq_neg __gmp
a350: 71 5f 6e 65 67 0a 23 69 66 20 5f 5f 47 4d 50 5f  q_neg.#if __GMP_
a360: 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54 59 50 45  INLINE_PROTOTYPE
a370: 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  S || __GMP_FORCE
a380: 5f 6d 70 71 5f 6e 65 67 0a 5f 5f 47 4d 50 5f 44  _mpq_neg.__GMP_D
a390: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 71  ECLSPEC void mpq
a3a0: 5f 6e 65 67 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _neg __GMP_PROTO
a3b0: 20 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70 71 5f   ((mpq_ptr, mpq_
a3c0: 73 72 63 70 74 72 29 29 3b 0a 23 65 6e 64 69 66  srcptr));.#endif
a3d0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 6f 75  ..#define mpq_ou
a3e0: 74 5f 73 74 72 20 5f 5f 67 6d 70 71 5f 6f 75 74  t_str __gmpq_out
a3f0: 5f 73 74 72 0a 23 69 66 64 65 66 20 5f 47 4d 50  _str.#ifdef _GMP
a400: 5f 48 5f 48 41 56 45 5f 46 49 4c 45 0a 5f 5f 47  _H_HAVE_FILE.__G
a410: 4d 50 5f 44 45 43 4c 53 50 45 43 20 73 69 7a 65  MP_DECLSPEC size
a420: 5f 74 20 6d 70 71 5f 6f 75 74 5f 73 74 72 20 5f  _t mpq_out_str _
a430: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 46 49 4c  _GMP_PROTO ((FIL
a440: 45 20 2a 2c 20 69 6e 74 2c 20 6d 70 71 5f 73 72  E *, int, mpq_sr
a450: 63 70 74 72 29 29 3b 0a 23 65 6e 64 69 66 0a 0a  cptr));.#endif..
a460: 23 64 65 66 69 6e 65 20 6d 70 71 5f 73 65 74 20  #define mpq_set 
a470: 5f 5f 67 6d 70 71 5f 73 65 74 0a 5f 5f 47 4d 50  __gmpq_set.__GMP
a480: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
a490: 70 71 5f 73 65 74 20 5f 5f 47 4d 50 5f 50 52 4f  pq_set __GMP_PRO
a4a0: 54 4f 20 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70  TO ((mpq_ptr, mp
a4b0: 71 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65  q_srcptr));..#de
a4c0: 66 69 6e 65 20 6d 70 71 5f 73 65 74 5f 64 20 5f  fine mpq_set_d _
a4d0: 5f 67 6d 70 71 5f 73 65 74 5f 64 0a 5f 5f 47 4d  _gmpq_set_d.__GM
a4e0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
a4f0: 6d 70 71 5f 73 65 74 5f 64 20 5f 5f 47 4d 50 5f  mpq_set_d __GMP_
a500: 50 52 4f 54 4f 20 28 28 6d 70 71 5f 70 74 72 2c  PROTO ((mpq_ptr,
a510: 20 64 6f 75 62 6c 65 29 29 3b 0a 0a 23 64 65 66   double));..#def
a520: 69 6e 65 20 6d 70 71 5f 73 65 74 5f 64 65 6e 20  ine mpq_set_den 
a530: 5f 5f 67 6d 70 71 5f 73 65 74 5f 64 65 6e 0a 5f  __gmpq_set_den._
a540: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
a550: 69 64 20 6d 70 71 5f 73 65 74 5f 64 65 6e 20 5f  id mpq_set_den _
a560: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71  _GMP_PROTO ((mpq
a570: 5f 70 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72  _ptr, mpz_srcptr
a580: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 71  ));..#define mpq
a590: 5f 73 65 74 5f 66 20 5f 5f 67 6d 70 71 5f 73 65  _set_f __gmpq_se
a5a0: 74 5f 66 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  t_f.__GMP_DECLSP
a5b0: 45 43 20 76 6f 69 64 20 6d 70 71 5f 73 65 74 5f  EC void mpq_set_
a5c0: 66 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  f __GMP_PROTO ((
a5d0: 6d 70 71 5f 70 74 72 2c 20 6d 70 66 5f 73 72 63  mpq_ptr, mpf_src
a5e0: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
a5f0: 6d 70 71 5f 73 65 74 5f 6e 75 6d 20 5f 5f 67 6d  mpq_set_num __gm
a600: 70 71 5f 73 65 74 5f 6e 75 6d 0a 5f 5f 47 4d 50  pq_set_num.__GMP
a610: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
a620: 70 71 5f 73 65 74 5f 6e 75 6d 20 5f 5f 47 4d 50  pq_set_num __GMP
a630: 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f 70 74 72  _PROTO ((mpq_ptr
a640: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
a650: 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 73 65 74  .#define mpq_set
a660: 5f 73 69 20 5f 5f 67 6d 70 71 5f 73 65 74 5f 73  _si __gmpq_set_s
a670: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
a680: 20 76 6f 69 64 20 6d 70 71 5f 73 65 74 5f 73 69   void mpq_set_si
a690: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
a6a0: 70 71 5f 70 74 72 2c 20 73 69 67 6e 65 64 20 6c  pq_ptr, signed l
a6b0: 6f 6e 67 20 69 6e 74 2c 20 75 6e 73 69 67 6e 65  ong int, unsigne
a6c0: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23  d long int));..#
a6d0: 64 65 66 69 6e 65 20 6d 70 71 5f 73 65 74 5f 73  define mpq_set_s
a6e0: 74 72 20 5f 5f 67 6d 70 71 5f 73 65 74 5f 73 74  tr __gmpq_set_st
a6f0: 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  r.__GMP_DECLSPEC
a700: 20 69 6e 74 20 6d 70 71 5f 73 65 74 5f 73 74 72   int mpq_set_str
a710: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
a720: 70 71 5f 70 74 72 2c 20 63 6f 6e 73 74 20 63 68  pq_ptr, const ch
a730: 61 72 20 2a 2c 20 69 6e 74 29 29 3b 0a 0a 23 64  ar *, int));..#d
a740: 65 66 69 6e 65 20 6d 70 71 5f 73 65 74 5f 75 69  efine mpq_set_ui
a750: 20 5f 5f 67 6d 70 71 5f 73 65 74 5f 75 69 0a 5f   __gmpq_set_ui._
a760: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
a770: 69 64 20 6d 70 71 5f 73 65 74 5f 75 69 20 5f 5f  id mpq_set_ui __
a780: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f  GMP_PROTO ((mpq_
a790: 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  ptr, unsigned lo
a7a0: 6e 67 20 69 6e 74 2c 20 75 6e 73 69 67 6e 65 64  ng int, unsigned
a7b0: 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64   long int));..#d
a7c0: 65 66 69 6e 65 20 6d 70 71 5f 73 65 74 5f 7a 20  efine mpq_set_z 
a7d0: 5f 5f 67 6d 70 71 5f 73 65 74 5f 7a 0a 5f 5f 47  __gmpq_set_z.__G
a7e0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
a7f0: 20 6d 70 71 5f 73 65 74 5f 7a 20 5f 5f 47 4d 50   mpq_set_z __GMP
a800: 5f 50 52 4f 54 4f 20 28 28 6d 70 71 5f 70 74 72  _PROTO ((mpq_ptr
a810: 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29 3b 0a  , mpz_srcptr));.
a820: 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 73 75 62  .#define mpq_sub
a830: 20 5f 5f 67 6d 70 71 5f 73 75 62 0a 5f 5f 47 4d   __gmpq_sub.__GM
a840: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
a850: 6d 70 71 5f 73 75 62 20 5f 5f 47 4d 50 5f 50 52  mpq_sub __GMP_PR
a860: 4f 54 4f 20 28 28 6d 70 71 5f 70 74 72 2c 20 6d  OTO ((mpq_ptr, m
a870: 70 71 5f 73 72 63 70 74 72 2c 20 6d 70 71 5f 73  pq_srcptr, mpq_s
a880: 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e  rcptr));..#defin
a890: 65 20 6d 70 71 5f 73 77 61 70 20 5f 5f 67 6d 70  e mpq_swap __gmp
a8a0: 71 5f 73 77 61 70 0a 5f 5f 47 4d 50 5f 44 45 43  q_swap.__GMP_DEC
a8b0: 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 71 5f 73  LSPEC void mpq_s
a8c0: 77 61 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  wap __GMP_PROTO 
a8d0: 28 28 6d 70 71 5f 70 74 72 2c 20 6d 70 71 5f 70  ((mpq_ptr, mpq_p
a8e0: 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52  tr)) __GMP_NOTHR
a8f0: 4f 57 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a  OW;.../*********
a900: 2a 2a 2a 2a 2a 2a 2a 20 46 6c 6f 61 74 20 28 69  ******* Float (i
a910: 2e 65 2e 20 46 29 20 72 6f 75 74 69 6e 65 73 2e  .e. F) routines.
a920: 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a    **************
a930: 2a 2a 2f 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66  **/..#define mpf
a940: 5f 61 62 73 20 5f 5f 67 6d 70 66 5f 61 62 73 0a  _abs __gmpf_abs.
a950: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
a960: 6f 69 64 20 6d 70 66 5f 61 62 73 20 5f 5f 47 4d  oid mpf_abs __GM
a970: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74  P_PROTO ((mpf_pt
a980: 72 2c 20 6d 70 66 5f 73 72 63 70 74 72 29 29 3b  r, mpf_srcptr));
a990: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 61 64  ..#define mpf_ad
a9a0: 64 20 5f 5f 67 6d 70 66 5f 61 64 64 0a 5f 5f 47  d __gmpf_add.__G
a9b0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
a9c0: 20 6d 70 66 5f 61 64 64 20 5f 5f 47 4d 50 5f 50   mpf_add __GMP_P
a9d0: 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20  ROTO ((mpf_ptr, 
a9e0: 6d 70 66 5f 73 72 63 70 74 72 2c 20 6d 70 66 5f  mpf_srcptr, mpf_
a9f0: 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69  srcptr));..#defi
aa00: 6e 65 20 6d 70 66 5f 61 64 64 5f 75 69 20 5f 5f  ne mpf_add_ui __
aa10: 67 6d 70 66 5f 61 64 64 5f 75 69 0a 5f 5f 47 4d  gmpf_add_ui.__GM
aa20: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
aa30: 6d 70 66 5f 61 64 64 5f 75 69 20 5f 5f 47 4d 50  mpf_add_ui __GMP
aa40: 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72  _PROTO ((mpf_ptr
aa50: 2c 20 6d 70 66 5f 73 72 63 70 74 72 2c 20 75 6e  , mpf_srcptr, un
aa60: 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29  signed long int)
aa70: 29 3b 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 63  );.#define mpf_c
aa80: 65 69 6c 20 5f 5f 67 6d 70 66 5f 63 65 69 6c 0a  eil __gmpf_ceil.
aa90: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
aaa0: 6f 69 64 20 6d 70 66 5f 63 65 69 6c 20 5f 5f 47  oid mpf_ceil __G
aab0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70  MP_PROTO ((mpf_p
aac0: 74 72 2c 20 6d 70 66 5f 73 72 63 70 74 72 29 29  tr, mpf_srcptr))
aad0: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 63  ;..#define mpf_c
aae0: 6c 65 61 72 20 5f 5f 67 6d 70 66 5f 63 6c 65 61  lear __gmpf_clea
aaf0: 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  r.__GMP_DECLSPEC
ab00: 20 76 6f 69 64 20 6d 70 66 5f 63 6c 65 61 72 20   void mpf_clear 
ab10: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
ab20: 66 5f 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e  f_ptr));..#defin
ab30: 65 20 6d 70 66 5f 63 6d 70 20 5f 5f 67 6d 70 66  e mpf_cmp __gmpf
ab40: 5f 63 6d 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  _cmp.__GMP_DECLS
ab50: 50 45 43 20 69 6e 74 20 6d 70 66 5f 63 6d 70 20  PEC int mpf_cmp 
ab60: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
ab70: 66 5f 73 72 63 70 74 72 2c 20 6d 70 66 5f 73 72  f_srcptr, mpf_sr
ab80: 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54  cptr)) __GMP_NOT
ab90: 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49  HROW __GMP_ATTRI
aba0: 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66  BUTE_PURE;..#def
abb0: 69 6e 65 20 6d 70 66 5f 63 6d 70 5f 64 20 5f 5f  ine mpf_cmp_d __
abc0: 67 6d 70 66 5f 63 6d 70 5f 64 0a 5f 5f 47 4d 50  gmpf_cmp_d.__GMP
abd0: 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70  _DECLSPEC int mp
abe0: 66 5f 63 6d 70 5f 64 20 5f 5f 47 4d 50 5f 50 52  f_cmp_d __GMP_PR
abf0: 4f 54 4f 20 28 28 6d 70 66 5f 73 72 63 70 74 72  OTO ((mpf_srcptr
ac00: 2c 20 64 6f 75 62 6c 65 29 29 20 5f 5f 47 4d 50  , double)) __GMP
ac10: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
ac20: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 63 6d  ..#define mpf_cm
ac30: 70 5f 73 69 20 5f 5f 67 6d 70 66 5f 63 6d 70 5f  p_si __gmpf_cmp_
ac40: 73 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  si.__GMP_DECLSPE
ac50: 43 20 69 6e 74 20 6d 70 66 5f 63 6d 70 5f 73 69  C int mpf_cmp_si
ac60: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
ac70: 70 66 5f 73 72 63 70 74 72 2c 20 73 69 67 6e 65  pf_srcptr, signe
ac80: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f 5f 47  d long int)) __G
ac90: 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50  MP_NOTHROW __GMP
aca0: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
acb0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 63 6d  ..#define mpf_cm
acc0: 70 5f 75 69 20 5f 5f 67 6d 70 66 5f 63 6d 70 5f  p_ui __gmpf_cmp_
acd0: 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ui.__GMP_DECLSPE
ace0: 43 20 69 6e 74 20 6d 70 66 5f 63 6d 70 5f 75 69  C int mpf_cmp_ui
acf0: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
ad00: 70 66 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pf_srcptr, unsig
ad10: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f  ned long int)) _
ad20: 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47  _GMP_NOTHROW __G
ad30: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
ad40: 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f  E;..#define mpf_
ad50: 64 69 76 20 5f 5f 67 6d 70 66 5f 64 69 76 0a 5f  div __gmpf_div._
ad60: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
ad70: 69 64 20 6d 70 66 5f 64 69 76 20 5f 5f 47 4d 50  id mpf_div __GMP
ad80: 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72  _PROTO ((mpf_ptr
ad90: 2c 20 6d 70 66 5f 73 72 63 70 74 72 2c 20 6d 70  , mpf_srcptr, mp
ada0: 66 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65  f_srcptr));..#de
adb0: 66 69 6e 65 20 6d 70 66 5f 64 69 76 5f 32 65 78  fine mpf_div_2ex
adc0: 70 20 5f 5f 67 6d 70 66 5f 64 69 76 5f 32 65 78  p __gmpf_div_2ex
add0: 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  p.__GMP_DECLSPEC
ade0: 20 76 6f 69 64 20 6d 70 66 5f 64 69 76 5f 32 65   void mpf_div_2e
adf0: 78 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  xp __GMP_PROTO (
ae00: 28 6d 70 66 5f 70 74 72 2c 20 6d 70 66 5f 73 72  (mpf_ptr, mpf_sr
ae10: 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c  cptr, unsigned l
ae20: 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66  ong int));..#def
ae30: 69 6e 65 20 6d 70 66 5f 64 69 76 5f 75 69 20 5f  ine mpf_div_ui _
ae40: 5f 67 6d 70 66 5f 64 69 76 5f 75 69 0a 5f 5f 47  _gmpf_div_ui.__G
ae50: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
ae60: 20 6d 70 66 5f 64 69 76 5f 75 69 20 5f 5f 47 4d   mpf_div_ui __GM
ae70: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74  P_PROTO ((mpf_pt
ae80: 72 2c 20 6d 70 66 5f 73 72 63 70 74 72 2c 20 75  r, mpf_srcptr, u
ae90: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74  nsigned long int
aea0: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66  ));..#define mpf
aeb0: 5f 64 75 6d 70 20 5f 5f 67 6d 70 66 5f 64 75 6d  _dump __gmpf_dum
aec0: 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  p.__GMP_DECLSPEC
aed0: 20 76 6f 69 64 20 6d 70 66 5f 64 75 6d 70 20 5f   void mpf_dump _
aee0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
aef0: 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64 65 66  _srcptr));..#def
af00: 69 6e 65 20 6d 70 66 5f 65 71 20 5f 5f 67 6d 70  ine mpf_eq __gmp
af10: 66 5f 65 71 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  f_eq.__GMP_DECLS
af20: 50 45 43 20 69 6e 74 20 6d 70 66 5f 65 71 20 5f  PEC int mpf_eq _
af30: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
af40: 5f 73 72 63 70 74 72 2c 20 6d 70 66 5f 73 72 63  _srcptr, mpf_src
af50: 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f  ptr, unsigned lo
af60: 6e 67 20 69 6e 74 29 29 20 5f 5f 47 4d 50 5f 41  ng int)) __GMP_A
af70: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
af80: 23 64 65 66 69 6e 65 20 6d 70 66 5f 66 69 74 73  #define mpf_fits
af90: 5f 73 69 6e 74 5f 70 20 5f 5f 67 6d 70 66 5f 66  _sint_p __gmpf_f
afa0: 69 74 73 5f 73 69 6e 74 5f 70 0a 5f 5f 47 4d 50  its_sint_p.__GMP
afb0: 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70  _DECLSPEC int mp
afc0: 66 5f 66 69 74 73 5f 73 69 6e 74 5f 70 20 5f 5f  f_fits_sint_p __
afd0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f  GMP_PROTO ((mpf_
afe0: 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e  srcptr)) __GMP_N
aff0: 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54  OTHROW __GMP_ATT
b000: 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64  RIBUTE_PURE;..#d
b010: 65 66 69 6e 65 20 6d 70 66 5f 66 69 74 73 5f 73  efine mpf_fits_s
b020: 6c 6f 6e 67 5f 70 20 5f 5f 67 6d 70 66 5f 66 69  long_p __gmpf_fi
b030: 74 73 5f 73 6c 6f 6e 67 5f 70 0a 5f 5f 47 4d 50  ts_slong_p.__GMP
b040: 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70  _DECLSPEC int mp
b050: 66 5f 66 69 74 73 5f 73 6c 6f 6e 67 5f 70 20 5f  f_fits_slong_p _
b060: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
b070: 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f  _srcptr)) __GMP_
b080: 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54  NOTHROW __GMP_AT
b090: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23  TRIBUTE_PURE;..#
b0a0: 64 65 66 69 6e 65 20 6d 70 66 5f 66 69 74 73 5f  define mpf_fits_
b0b0: 73 73 68 6f 72 74 5f 70 20 5f 5f 67 6d 70 66 5f  sshort_p __gmpf_
b0c0: 66 69 74 73 5f 73 73 68 6f 72 74 5f 70 0a 5f 5f  fits_sshort_p.__
b0d0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
b0e0: 20 6d 70 66 5f 66 69 74 73 5f 73 73 68 6f 72 74   mpf_fits_sshort
b0f0: 5f 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  _p __GMP_PROTO (
b100: 28 6d 70 66 5f 73 72 63 70 74 72 29 29 20 5f 5f  (mpf_srcptr)) __
b110: 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d  GMP_NOTHROW __GM
b120: 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45  P_ATTRIBUTE_PURE
b130: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 66  ;..#define mpf_f
b140: 69 74 73 5f 75 69 6e 74 5f 70 20 5f 5f 67 6d 70  its_uint_p __gmp
b150: 66 5f 66 69 74 73 5f 75 69 6e 74 5f 70 0a 5f 5f  f_fits_uint_p.__
b160: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
b170: 20 6d 70 66 5f 66 69 74 73 5f 75 69 6e 74 5f 70   mpf_fits_uint_p
b180: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
b190: 70 66 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d  pf_srcptr)) __GM
b1a0: 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f  P_NOTHROW __GMP_
b1b0: 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a  ATTRIBUTE_PURE;.
b1c0: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 66 69 74  .#define mpf_fit
b1d0: 73 5f 75 6c 6f 6e 67 5f 70 20 5f 5f 67 6d 70 66  s_ulong_p __gmpf
b1e0: 5f 66 69 74 73 5f 75 6c 6f 6e 67 5f 70 0a 5f 5f  _fits_ulong_p.__
b1f0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74  GMP_DECLSPEC int
b200: 20 6d 70 66 5f 66 69 74 73 5f 75 6c 6f 6e 67 5f   mpf_fits_ulong_
b210: 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  p __GMP_PROTO ((
b220: 6d 70 66 5f 73 72 63 70 74 72 29 29 20 5f 5f 47  mpf_srcptr)) __G
b230: 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50  MP_NOTHROW __GMP
b240: 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b  _ATTRIBUTE_PURE;
b250: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 66 69  ..#define mpf_fi
b260: 74 73 5f 75 73 68 6f 72 74 5f 70 20 5f 5f 67 6d  ts_ushort_p __gm
b270: 70 66 5f 66 69 74 73 5f 75 73 68 6f 72 74 5f 70  pf_fits_ushort_p
b280: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
b290: 69 6e 74 20 6d 70 66 5f 66 69 74 73 5f 75 73 68  int mpf_fits_ush
b2a0: 6f 72 74 5f 70 20 5f 5f 47 4d 50 5f 50 52 4f 54  ort_p __GMP_PROT
b2b0: 4f 20 28 28 6d 70 66 5f 73 72 63 70 74 72 29 29  O ((mpf_srcptr))
b2c0: 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f   __GMP_NOTHROW _
b2d0: 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50  _GMP_ATTRIBUTE_P
b2e0: 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  URE;..#define mp
b2f0: 66 5f 66 6c 6f 6f 72 20 5f 5f 67 6d 70 66 5f 66  f_floor __gmpf_f
b300: 6c 6f 6f 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  loor.__GMP_DECLS
b310: 50 45 43 20 76 6f 69 64 20 6d 70 66 5f 66 6c 6f  PEC void mpf_flo
b320: 6f 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  or __GMP_PROTO (
b330: 28 6d 70 66 5f 70 74 72 2c 20 6d 70 66 5f 73 72  (mpf_ptr, mpf_sr
b340: 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65  cptr));..#define
b350: 20 6d 70 66 5f 67 65 74 5f 64 20 5f 5f 67 6d 70   mpf_get_d __gmp
b360: 66 5f 67 65 74 5f 64 0a 5f 5f 47 4d 50 5f 44 45  f_get_d.__GMP_DE
b370: 43 4c 53 50 45 43 20 64 6f 75 62 6c 65 20 6d 70  CLSPEC double mp
b380: 66 5f 67 65 74 5f 64 20 5f 5f 47 4d 50 5f 50 52  f_get_d __GMP_PR
b390: 4f 54 4f 20 28 28 6d 70 66 5f 73 72 63 70 74 72  OTO ((mpf_srcptr
b3a0: 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55  )) __GMP_ATTRIBU
b3b0: 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e  TE_PURE;..#defin
b3c0: 65 20 6d 70 66 5f 67 65 74 5f 64 5f 32 65 78 70  e mpf_get_d_2exp
b3d0: 20 5f 5f 67 6d 70 66 5f 67 65 74 5f 64 5f 32 65   __gmpf_get_d_2e
b3e0: 78 70 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  xp.__GMP_DECLSPE
b3f0: 43 20 64 6f 75 62 6c 65 20 6d 70 66 5f 67 65 74  C double mpf_get
b400: 5f 64 5f 32 65 78 70 20 5f 5f 47 4d 50 5f 50 52  _d_2exp __GMP_PR
b410: 4f 54 4f 20 28 28 73 69 67 6e 65 64 20 6c 6f 6e  OTO ((signed lon
b420: 67 20 69 6e 74 20 2a 2c 20 6d 70 66 5f 73 72 63  g int *, mpf_src
b430: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
b440: 6d 70 66 5f 67 65 74 5f 64 65 66 61 75 6c 74 5f  mpf_get_default_
b450: 70 72 65 63 20 5f 5f 67 6d 70 66 5f 67 65 74 5f  prec __gmpf_get_
b460: 64 65 66 61 75 6c 74 5f 70 72 65 63 0a 5f 5f 47  default_prec.__G
b470: 4d 50 5f 44 45 43 4c 53 50 45 43 20 75 6e 73 69  MP_DECLSPEC unsi
b480: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 20 6d 70  gned long int mp
b490: 66 5f 67 65 74 5f 64 65 66 61 75 6c 74 5f 70 72  f_get_default_pr
b4a0: 65 63 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ec __GMP_PROTO (
b4b0: 28 76 6f 69 64 29 29 20 5f 5f 47 4d 50 5f 4e 4f  (void)) __GMP_NO
b4c0: 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52  THROW __GMP_ATTR
b4d0: 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65  IBUTE_PURE;..#de
b4e0: 66 69 6e 65 20 6d 70 66 5f 67 65 74 5f 70 72 65  fine mpf_get_pre
b4f0: 63 20 5f 5f 67 6d 70 66 5f 67 65 74 5f 70 72 65  c __gmpf_get_pre
b500: 63 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  c.__GMP_DECLSPEC
b510: 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69   unsigned long i
b520: 6e 74 20 6d 70 66 5f 67 65 74 5f 70 72 65 63 20  nt mpf_get_prec 
b530: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
b540: 66 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50  f_srcptr)) __GMP
b550: 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41  _NOTHROW __GMP_A
b560: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
b570: 23 64 65 66 69 6e 65 20 6d 70 66 5f 67 65 74 5f  #define mpf_get_
b580: 73 69 20 5f 5f 67 6d 70 66 5f 67 65 74 5f 73 69  si __gmpf_get_si
b590: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
b5a0: 6c 6f 6e 67 20 6d 70 66 5f 67 65 74 5f 73 69 20  long mpf_get_si 
b5b0: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
b5c0: 66 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50  f_srcptr)) __GMP
b5d0: 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41  _NOTHROW __GMP_A
b5e0: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
b5f0: 23 64 65 66 69 6e 65 20 6d 70 66 5f 67 65 74 5f  #define mpf_get_
b600: 73 74 72 20 5f 5f 67 6d 70 66 5f 67 65 74 5f 73  str __gmpf_get_s
b610: 74 72 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  tr.__GMP_DECLSPE
b620: 43 20 63 68 61 72 20 2a 6d 70 66 5f 67 65 74 5f  C char *mpf_get_
b630: 73 74 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  str __GMP_PROTO 
b640: 28 28 63 68 61 72 20 2a 2c 20 6d 70 5f 65 78 70  ((char *, mp_exp
b650: 5f 74 20 2a 2c 20 69 6e 74 2c 20 73 69 7a 65 5f  _t *, int, size_
b660: 74 2c 20 6d 70 66 5f 73 72 63 70 74 72 29 29 3b  t, mpf_srcptr));
b670: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 67 65  ..#define mpf_ge
b680: 74 5f 75 69 20 5f 5f 67 6d 70 66 5f 67 65 74 5f  t_ui __gmpf_get_
b690: 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  ui.__GMP_DECLSPE
b6a0: 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  C unsigned long 
b6b0: 6d 70 66 5f 67 65 74 5f 75 69 20 5f 5f 47 4d 50  mpf_get_ui __GMP
b6c0: 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 73 72 63  _PROTO ((mpf_src
b6d0: 70 74 72 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  ptr)) __GMP_NOTH
b6e0: 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  ROW __GMP_ATTRIB
b6f0: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
b700: 6e 65 20 6d 70 66 5f 69 6e 69 74 20 5f 5f 67 6d  ne mpf_init __gm
b710: 70 66 5f 69 6e 69 74 0a 5f 5f 47 4d 50 5f 44 45  pf_init.__GMP_DE
b720: 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 66 5f  CLSPEC void mpf_
b730: 69 6e 69 74 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  init __GMP_PROTO
b740: 20 28 28 6d 70 66 5f 70 74 72 29 29 3b 0a 0a 23   ((mpf_ptr));..#
b750: 64 65 66 69 6e 65 20 6d 70 66 5f 69 6e 69 74 32  define mpf_init2
b760: 20 5f 5f 67 6d 70 66 5f 69 6e 69 74 32 0a 5f 5f   __gmpf_init2.__
b770: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
b780: 64 20 6d 70 66 5f 69 6e 69 74 32 20 5f 5f 47 4d  d mpf_init2 __GM
b790: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74  P_PROTO ((mpf_pt
b7a0: 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  r, unsigned long
b7b0: 20 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65   int));..#define
b7c0: 20 6d 70 66 5f 69 6e 69 74 5f 73 65 74 20 5f 5f   mpf_init_set __
b7d0: 67 6d 70 66 5f 69 6e 69 74 5f 73 65 74 0a 5f 5f  gmpf_init_set.__
b7e0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
b7f0: 64 20 6d 70 66 5f 69 6e 69 74 5f 73 65 74 20 5f  d mpf_init_set _
b800: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
b810: 5f 70 74 72 2c 20 6d 70 66 5f 73 72 63 70 74 72  _ptr, mpf_srcptr
b820: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66  ));..#define mpf
b830: 5f 69 6e 69 74 5f 73 65 74 5f 64 20 5f 5f 67 6d  _init_set_d __gm
b840: 70 66 5f 69 6e 69 74 5f 73 65 74 5f 64 0a 5f 5f  pf_init_set_d.__
b850: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
b860: 64 20 6d 70 66 5f 69 6e 69 74 5f 73 65 74 5f 64  d mpf_init_set_d
b870: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
b880: 70 66 5f 70 74 72 2c 20 64 6f 75 62 6c 65 29 29  pf_ptr, double))
b890: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 69  ;..#define mpf_i
b8a0: 6e 69 74 5f 73 65 74 5f 73 69 20 5f 5f 67 6d 70  nit_set_si __gmp
b8b0: 66 5f 69 6e 69 74 5f 73 65 74 5f 73 69 0a 5f 5f  f_init_set_si.__
b8c0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
b8d0: 64 20 6d 70 66 5f 69 6e 69 74 5f 73 65 74 5f 73  d mpf_init_set_s
b8e0: 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  i __GMP_PROTO ((
b8f0: 6d 70 66 5f 70 74 72 2c 20 73 69 67 6e 65 64 20  mpf_ptr, signed 
b900: 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65  long int));..#de
b910: 66 69 6e 65 20 6d 70 66 5f 69 6e 69 74 5f 73 65  fine mpf_init_se
b920: 74 5f 73 74 72 20 5f 5f 67 6d 70 66 5f 69 6e 69  t_str __gmpf_ini
b930: 74 5f 73 65 74 5f 73 74 72 0a 5f 5f 47 4d 50 5f  t_set_str.__GMP_
b940: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 66  DECLSPEC int mpf
b950: 5f 69 6e 69 74 5f 73 65 74 5f 73 74 72 20 5f 5f  _init_set_str __
b960: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f  GMP_PROTO ((mpf_
b970: 70 74 72 2c 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74  ptr, __gmp_const
b980: 20 63 68 61 72 20 2a 2c 20 69 6e 74 29 29 3b 0a   char *, int));.
b990: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 69 6e 69  .#define mpf_ini
b9a0: 74 5f 73 65 74 5f 75 69 20 5f 5f 67 6d 70 66 5f  t_set_ui __gmpf_
b9b0: 69 6e 69 74 5f 73 65 74 5f 75 69 0a 5f 5f 47 4d  init_set_ui.__GM
b9c0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
b9d0: 6d 70 66 5f 69 6e 69 74 5f 73 65 74 5f 75 69 20  mpf_init_set_ui 
b9e0: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
b9f0: 66 5f 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20  f_ptr, unsigned 
ba00: 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65  long int));..#de
ba10: 66 69 6e 65 20 6d 70 66 5f 69 6e 70 5f 73 74 72  fine mpf_inp_str
ba20: 20 5f 5f 67 6d 70 66 5f 69 6e 70 5f 73 74 72 0a   __gmpf_inp_str.
ba30: 23 69 66 64 65 66 20 5f 47 4d 50 5f 48 5f 48 41  #ifdef _GMP_H_HA
ba40: 56 45 5f 46 49 4c 45 0a 5f 5f 47 4d 50 5f 44 45  VE_FILE.__GMP_DE
ba50: 43 4c 53 50 45 43 20 73 69 7a 65 5f 74 20 6d 70  CLSPEC size_t mp
ba60: 66 5f 69 6e 70 5f 73 74 72 20 5f 5f 47 4d 50 5f  f_inp_str __GMP_
ba70: 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c  PROTO ((mpf_ptr,
ba80: 20 46 49 4c 45 20 2a 2c 20 69 6e 74 29 29 3b 0a   FILE *, int));.
ba90: 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20  #endif..#define 
baa0: 6d 70 66 5f 69 6e 74 65 67 65 72 5f 70 20 5f 5f  mpf_integer_p __
bab0: 67 6d 70 66 5f 69 6e 74 65 67 65 72 5f 70 0a 5f  gmpf_integer_p._
bac0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e  _GMP_DECLSPEC in
bad0: 74 20 6d 70 66 5f 69 6e 74 65 67 65 72 5f 70 20  t mpf_integer_p 
bae0: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
baf0: 66 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50  f_srcptr)) __GMP
bb00: 5f 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41  _NOTHROW __GMP_A
bb10: 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a  TTRIBUTE_PURE;..
bb20: 23 64 65 66 69 6e 65 20 6d 70 66 5f 6d 75 6c 20  #define mpf_mul 
bb30: 5f 5f 67 6d 70 66 5f 6d 75 6c 0a 5f 5f 47 4d 50  __gmpf_mul.__GMP
bb40: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
bb50: 70 66 5f 6d 75 6c 20 5f 5f 47 4d 50 5f 50 52 4f  pf_mul __GMP_PRO
bb60: 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 6d 70  TO ((mpf_ptr, mp
bb70: 66 5f 73 72 63 70 74 72 2c 20 6d 70 66 5f 73 72  f_srcptr, mpf_sr
bb80: 63 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65  cptr));..#define
bb90: 20 6d 70 66 5f 6d 75 6c 5f 32 65 78 70 20 5f 5f   mpf_mul_2exp __
bba0: 67 6d 70 66 5f 6d 75 6c 5f 32 65 78 70 0a 5f 5f  gmpf_mul_2exp.__
bbb0: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
bbc0: 64 20 6d 70 66 5f 6d 75 6c 5f 32 65 78 70 20 5f  d mpf_mul_2exp _
bbd0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
bbe0: 5f 70 74 72 2c 20 6d 70 66 5f 73 72 63 70 74 72  _ptr, mpf_srcptr
bbf0: 2c 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  , unsigned long 
bc00: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
bc10: 6d 70 66 5f 6d 75 6c 5f 75 69 20 5f 5f 67 6d 70  mpf_mul_ui __gmp
bc20: 66 5f 6d 75 6c 5f 75 69 0a 5f 5f 47 4d 50 5f 44  f_mul_ui.__GMP_D
bc30: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 66  ECLSPEC void mpf
bc40: 5f 6d 75 6c 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  _mul_ui __GMP_PR
bc50: 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 6d  OTO ((mpf_ptr, m
bc60: 70 66 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pf_srcptr, unsig
bc70: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a  ned long int));.
bc80: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 6e 65 67  .#define mpf_neg
bc90: 20 5f 5f 67 6d 70 66 5f 6e 65 67 0a 5f 5f 47 4d   __gmpf_neg.__GM
bca0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
bcb0: 6d 70 66 5f 6e 65 67 20 5f 5f 47 4d 50 5f 50 52  mpf_neg __GMP_PR
bcc0: 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 6d  OTO ((mpf_ptr, m
bcd0: 70 66 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23 64  pf_srcptr));..#d
bce0: 65 66 69 6e 65 20 6d 70 66 5f 6f 75 74 5f 73 74  efine mpf_out_st
bcf0: 72 20 5f 5f 67 6d 70 66 5f 6f 75 74 5f 73 74 72  r __gmpf_out_str
bd00: 0a 23 69 66 64 65 66 20 5f 47 4d 50 5f 48 5f 48  .#ifdef _GMP_H_H
bd10: 41 56 45 5f 46 49 4c 45 0a 5f 5f 47 4d 50 5f 44  AVE_FILE.__GMP_D
bd20: 45 43 4c 53 50 45 43 20 73 69 7a 65 5f 74 20 6d  ECLSPEC size_t m
bd30: 70 66 5f 6f 75 74 5f 73 74 72 20 5f 5f 47 4d 50  pf_out_str __GMP
bd40: 5f 50 52 4f 54 4f 20 28 28 46 49 4c 45 20 2a 2c  _PROTO ((FILE *,
bd50: 20 69 6e 74 2c 20 73 69 7a 65 5f 74 2c 20 6d 70   int, size_t, mp
bd60: 66 5f 73 72 63 70 74 72 29 29 3b 0a 23 65 6e 64  f_srcptr));.#end
bd70: 69 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f  if..#define mpf_
bd80: 70 6f 77 5f 75 69 20 5f 5f 67 6d 70 66 5f 70 6f  pow_ui __gmpf_po
bd90: 77 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  w_ui.__GMP_DECLS
bda0: 50 45 43 20 76 6f 69 64 20 6d 70 66 5f 70 6f 77  PEC void mpf_pow
bdb0: 5f 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  _ui __GMP_PROTO 
bdc0: 28 28 6d 70 66 5f 70 74 72 2c 20 6d 70 66 5f 73  ((mpf_ptr, mpf_s
bdd0: 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20  rcptr, unsigned 
bde0: 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64 65  long int));..#de
bdf0: 66 69 6e 65 20 6d 70 66 5f 72 61 6e 64 6f 6d 32  fine mpf_random2
be00: 20 5f 5f 67 6d 70 66 5f 72 61 6e 64 6f 6d 32 0a   __gmpf_random2.
be10: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
be20: 6f 69 64 20 6d 70 66 5f 72 61 6e 64 6f 6d 32 20  oid mpf_random2 
be30: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
be40: 66 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74  f_ptr, mp_size_t
be50: 2c 20 6d 70 5f 65 78 70 5f 74 29 29 3b 0a 0a 23  , mp_exp_t));..#
be60: 64 65 66 69 6e 65 20 6d 70 66 5f 72 65 6c 64 69  define mpf_reldi
be70: 66 66 20 5f 5f 67 6d 70 66 5f 72 65 6c 64 69 66  ff __gmpf_reldif
be80: 66 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  f.__GMP_DECLSPEC
be90: 20 76 6f 69 64 20 6d 70 66 5f 72 65 6c 64 69 66   void mpf_reldif
bea0: 66 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  f __GMP_PROTO ((
beb0: 6d 70 66 5f 70 74 72 2c 20 6d 70 66 5f 73 72 63  mpf_ptr, mpf_src
bec0: 70 74 72 2c 20 6d 70 66 5f 73 72 63 70 74 72 29  ptr, mpf_srcptr)
bed0: 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f  );..#define mpf_
bee0: 73 65 74 20 5f 5f 67 6d 70 66 5f 73 65 74 0a 5f  set __gmpf_set._
bef0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
bf00: 69 64 20 6d 70 66 5f 73 65 74 20 5f 5f 47 4d 50  id mpf_set __GMP
bf10: 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72  _PROTO ((mpf_ptr
bf20: 2c 20 6d 70 66 5f 73 72 63 70 74 72 29 29 3b 0a  , mpf_srcptr));.
bf30: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 65 74  .#define mpf_set
bf40: 5f 64 20 5f 5f 67 6d 70 66 5f 73 65 74 5f 64 0a  _d __gmpf_set_d.
bf50: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
bf60: 6f 69 64 20 6d 70 66 5f 73 65 74 5f 64 20 5f 5f  oid mpf_set_d __
bf70: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f  GMP_PROTO ((mpf_
bf80: 70 74 72 2c 20 64 6f 75 62 6c 65 29 29 3b 0a 0a  ptr, double));..
bf90: 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 65 74 5f  #define mpf_set_
bfa0: 64 65 66 61 75 6c 74 5f 70 72 65 63 20 5f 5f 67  default_prec __g
bfb0: 6d 70 66 5f 73 65 74 5f 64 65 66 61 75 6c 74 5f  mpf_set_default_
bfc0: 70 72 65 63 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  prec.__GMP_DECLS
bfd0: 50 45 43 20 76 6f 69 64 20 6d 70 66 5f 73 65 74  PEC void mpf_set
bfe0: 5f 64 65 66 61 75 6c 74 5f 70 72 65 63 20 5f 5f  _default_prec __
bff0: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 75 6e 73 69  GMP_PROTO ((unsi
c000: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20  gned long int)) 
c010: 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 3b 0a 0a  __GMP_NOTHROW;..
c020: 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 65 74 5f  #define mpf_set_
c030: 70 72 65 63 20 5f 5f 67 6d 70 66 5f 73 65 74 5f  prec __gmpf_set_
c040: 70 72 65 63 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  prec.__GMP_DECLS
c050: 50 45 43 20 76 6f 69 64 20 6d 70 66 5f 73 65 74  PEC void mpf_set
c060: 5f 70 72 65 63 20 5f 5f 47 4d 50 5f 50 52 4f 54  _prec __GMP_PROT
c070: 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 75 6e 73  O ((mpf_ptr, uns
c080: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
c090: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73  ;..#define mpf_s
c0a0: 65 74 5f 70 72 65 63 5f 72 61 77 20 5f 5f 67 6d  et_prec_raw __gm
c0b0: 70 66 5f 73 65 74 5f 70 72 65 63 5f 72 61 77 0a  pf_set_prec_raw.
c0c0: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
c0d0: 6f 69 64 20 6d 70 66 5f 73 65 74 5f 70 72 65 63  oid mpf_set_prec
c0e0: 5f 72 61 77 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  _raw __GMP_PROTO
c0f0: 20 28 28 6d 70 66 5f 70 74 72 2c 20 75 6e 73 69   ((mpf_ptr, unsi
c100: 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20  gned long int)) 
c110: 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 3b 0a 0a  __GMP_NOTHROW;..
c120: 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 65 74 5f  #define mpf_set_
c130: 71 20 5f 5f 67 6d 70 66 5f 73 65 74 5f 71 0a 5f  q __gmpf_set_q._
c140: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
c150: 69 64 20 6d 70 66 5f 73 65 74 5f 71 20 5f 5f 47  id mpf_set_q __G
c160: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70  MP_PROTO ((mpf_p
c170: 74 72 2c 20 6d 70 71 5f 73 72 63 70 74 72 29 29  tr, mpq_srcptr))
c180: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73  ;..#define mpf_s
c190: 65 74 5f 73 69 20 5f 5f 67 6d 70 66 5f 73 65 74  et_si __gmpf_set
c1a0: 5f 73 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _si.__GMP_DECLSP
c1b0: 45 43 20 76 6f 69 64 20 6d 70 66 5f 73 65 74 5f  EC void mpf_set_
c1c0: 73 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  si __GMP_PROTO (
c1d0: 28 6d 70 66 5f 70 74 72 2c 20 73 69 67 6e 65 64  (mpf_ptr, signed
c1e0: 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23 64   long int));..#d
c1f0: 65 66 69 6e 65 20 6d 70 66 5f 73 65 74 5f 73 74  efine mpf_set_st
c200: 72 20 5f 5f 67 6d 70 66 5f 73 65 74 5f 73 74 72  r __gmpf_set_str
c210: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
c220: 69 6e 74 20 6d 70 66 5f 73 65 74 5f 73 74 72 20  int mpf_set_str 
c230: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
c240: 66 5f 70 74 72 2c 20 5f 5f 67 6d 70 5f 63 6f 6e  f_ptr, __gmp_con
c250: 73 74 20 63 68 61 72 20 2a 2c 20 69 6e 74 29 29  st char *, int))
c260: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73  ;..#define mpf_s
c270: 65 74 5f 75 69 20 5f 5f 67 6d 70 66 5f 73 65 74  et_ui __gmpf_set
c280: 5f 75 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  _ui.__GMP_DECLSP
c290: 45 43 20 76 6f 69 64 20 6d 70 66 5f 73 65 74 5f  EC void mpf_set_
c2a0: 75 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  ui __GMP_PROTO (
c2b0: 28 6d 70 66 5f 70 74 72 2c 20 75 6e 73 69 67 6e  (mpf_ptr, unsign
c2c0: 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a  ed long int));..
c2d0: 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 65 74 5f  #define mpf_set_
c2e0: 7a 20 5f 5f 67 6d 70 66 5f 73 65 74 5f 7a 0a 5f  z __gmpf_set_z._
c2f0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f  _GMP_DECLSPEC vo
c300: 69 64 20 6d 70 66 5f 73 65 74 5f 7a 20 5f 5f 47  id mpf_set_z __G
c310: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70  MP_PROTO ((mpf_p
c320: 74 72 2c 20 6d 70 7a 5f 73 72 63 70 74 72 29 29  tr, mpz_srcptr))
c330: 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73  ;..#define mpf_s
c340: 69 7a 65 20 5f 5f 67 6d 70 66 5f 73 69 7a 65 0a  ize __gmpf_size.
c350: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 73  __GMP_DECLSPEC s
c360: 69 7a 65 5f 74 20 6d 70 66 5f 73 69 7a 65 20 5f  ize_t mpf_size _
c370: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
c380: 5f 73 72 63 70 74 72 29 29 20 5f 5f 47 4d 50 5f  _srcptr)) __GMP_
c390: 4e 4f 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54  NOTHROW __GMP_AT
c3a0: 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23  TRIBUTE_PURE;..#
c3b0: 64 65 66 69 6e 65 20 6d 70 66 5f 73 71 72 74 20  define mpf_sqrt 
c3c0: 5f 5f 67 6d 70 66 5f 73 71 72 74 0a 5f 5f 47 4d  __gmpf_sqrt.__GM
c3d0: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
c3e0: 6d 70 66 5f 73 71 72 74 20 5f 5f 47 4d 50 5f 50  mpf_sqrt __GMP_P
c3f0: 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20  ROTO ((mpf_ptr, 
c400: 6d 70 66 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpf_srcptr));..#
c410: 64 65 66 69 6e 65 20 6d 70 66 5f 73 71 72 74 5f  define mpf_sqrt_
c420: 75 69 20 5f 5f 67 6d 70 66 5f 73 71 72 74 5f 75  ui __gmpf_sqrt_u
c430: 69 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  i.__GMP_DECLSPEC
c440: 20 76 6f 69 64 20 6d 70 66 5f 73 71 72 74 5f 75   void mpf_sqrt_u
c450: 69 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  i __GMP_PROTO ((
c460: 6d 70 66 5f 70 74 72 2c 20 75 6e 73 69 67 6e 65  mpf_ptr, unsigne
c470: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23  d long int));..#
c480: 64 65 66 69 6e 65 20 6d 70 66 5f 73 75 62 20 5f  define mpf_sub _
c490: 5f 67 6d 70 66 5f 73 75 62 0a 5f 5f 47 4d 50 5f  _gmpf_sub.__GMP_
c4a0: 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70  DECLSPEC void mp
c4b0: 66 5f 73 75 62 20 5f 5f 47 4d 50 5f 50 52 4f 54  f_sub __GMP_PROT
c4c0: 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 6d 70 66  O ((mpf_ptr, mpf
c4d0: 5f 73 72 63 70 74 72 2c 20 6d 70 66 5f 73 72 63  _srcptr, mpf_src
c4e0: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
c4f0: 6d 70 66 5f 73 75 62 5f 75 69 20 5f 5f 67 6d 70  mpf_sub_ui __gmp
c500: 66 5f 73 75 62 5f 75 69 0a 5f 5f 47 4d 50 5f 44  f_sub_ui.__GMP_D
c510: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 66  ECLSPEC void mpf
c520: 5f 73 75 62 5f 75 69 20 5f 5f 47 4d 50 5f 50 52  _sub_ui __GMP_PR
c530: 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 6d  OTO ((mpf_ptr, m
c540: 70 66 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  pf_srcptr, unsig
c550: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a  ned long int));.
c560: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 73 77 61  .#define mpf_swa
c570: 70 20 5f 5f 67 6d 70 66 5f 73 77 61 70 0a 5f 5f  p __gmpf_swap.__
c580: 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69  GMP_DECLSPEC voi
c590: 64 20 6d 70 66 5f 73 77 61 70 20 5f 5f 47 4d 50  d mpf_swap __GMP
c5a0: 5f 50 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72  _PROTO ((mpf_ptr
c5b0: 2c 20 6d 70 66 5f 70 74 72 29 29 20 5f 5f 47 4d  , mpf_ptr)) __GM
c5c0: 50 5f 4e 4f 54 48 52 4f 57 3b 0a 0a 23 64 65 66  P_NOTHROW;..#def
c5d0: 69 6e 65 20 6d 70 66 5f 74 72 75 6e 63 20 5f 5f  ine mpf_trunc __
c5e0: 67 6d 70 66 5f 74 72 75 6e 63 0a 5f 5f 47 4d 50  gmpf_trunc.__GMP
c5f0: 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d  _DECLSPEC void m
c600: 70 66 5f 74 72 75 6e 63 20 5f 5f 47 4d 50 5f 50  pf_trunc __GMP_P
c610: 52 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20  ROTO ((mpf_ptr, 
c620: 6d 70 66 5f 73 72 63 70 74 72 29 29 3b 0a 0a 23  mpf_srcptr));..#
c630: 64 65 66 69 6e 65 20 6d 70 66 5f 75 69 5f 64 69  define mpf_ui_di
c640: 76 20 5f 5f 67 6d 70 66 5f 75 69 5f 64 69 76 0a  v __gmpf_ui_div.
c650: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 76  __GMP_DECLSPEC v
c660: 6f 69 64 20 6d 70 66 5f 75 69 5f 64 69 76 20 5f  oid mpf_ui_div _
c670: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 66  _GMP_PROTO ((mpf
c680: 5f 70 74 72 2c 20 75 6e 73 69 67 6e 65 64 20 6c  _ptr, unsigned l
c690: 6f 6e 67 20 69 6e 74 2c 20 6d 70 66 5f 73 72 63  ong int, mpf_src
c6a0: 70 74 72 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  ptr));..#define 
c6b0: 6d 70 66 5f 75 69 5f 73 75 62 20 5f 5f 67 6d 70  mpf_ui_sub __gmp
c6c0: 66 5f 75 69 5f 73 75 62 0a 5f 5f 47 4d 50 5f 44  f_ui_sub.__GMP_D
c6d0: 45 43 4c 53 50 45 43 20 76 6f 69 64 20 6d 70 66  ECLSPEC void mpf
c6e0: 5f 75 69 5f 73 75 62 20 5f 5f 47 4d 50 5f 50 52  _ui_sub __GMP_PR
c6f0: 4f 54 4f 20 28 28 6d 70 66 5f 70 74 72 2c 20 75  OTO ((mpf_ptr, u
c700: 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74  nsigned long int
c710: 2c 20 6d 70 66 5f 73 72 63 70 74 72 29 29 3b 0a  , mpf_srcptr));.
c720: 0a 23 64 65 66 69 6e 65 20 6d 70 66 5f 75 72 61  .#define mpf_ura
c730: 6e 64 6f 6d 62 20 5f 5f 67 6d 70 66 5f 75 72 61  ndomb __gmpf_ura
c740: 6e 64 6f 6d 62 0a 5f 5f 47 4d 50 5f 44 45 43 4c  ndomb.__GMP_DECL
c750: 53 50 45 43 20 76 6f 69 64 20 6d 70 66 5f 75 72  SPEC void mpf_ur
c760: 61 6e 64 6f 6d 62 20 5f 5f 47 4d 50 5f 50 52 4f  andomb __GMP_PRO
c770: 54 4f 20 28 28 6d 70 66 5f 74 2c 20 67 6d 70 5f  TO ((mpf_t, gmp_
c780: 72 61 6e 64 73 74 61 74 65 5f 74 2c 20 75 6e 73  randstate_t, uns
c790: 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29  igned long int))
c7a0: 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ;.../***********
c7b0: 2a 20 4c 6f 77 20 6c 65 76 65 6c 20 70 6f 73 69  * Low level posi
c7c0: 74 69 76 65 2d 69 6e 74 65 67 65 72 20 28 69 2e  tive-integer (i.
c7d0: 65 2e 20 4e 29 20 72 6f 75 74 69 6e 65 73 2e 20  e. N) routines. 
c7e0: 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a   ************/..
c7f0: 2f 2a 20 54 68 69 73 20 69 73 20 75 67 6c 79 2c  /* This is ugly,
c800: 20 62 75 74 20 77 65 20 6e 65 65 64 20 74 6f 20   but we need to 
c810: 6d 61 6b 65 20 75 73 65 72 20 63 61 6c 6c 73 20  make user calls 
c820: 72 65 61 63 68 20 74 68 65 20 70 72 65 66 69 78  reach the prefix
c830: 65 64 20 66 75 6e 63 74 69 6f 6e 2e 20 2a 2f 0a  ed function. */.
c840: 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 61 64 64  .#define mpn_add
c850: 20 5f 5f 4d 50 4e 28 61 64 64 29 0a 23 69 66 20   __MPN(add).#if 
c860: 5f 5f 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f  __GMP_INLINE_PRO
c870: 54 4f 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d 50  TOTYPES || __GMP
c880: 5f 46 4f 52 43 45 5f 6d 70 6e 5f 61 64 64 0a 5f  _FORCE_mpn_add._
c890: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70  _GMP_DECLSPEC mp
c8a0: 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 61 64 64 20  _limb_t mpn_add 
c8b0: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
c8c0: 5f 70 74 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c  _ptr, mp_srcptr,
c8d0: 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 73   mp_size_t, mp_s
c8e0: 72 63 70 74 72 2c 6d 70 5f 73 69 7a 65 5f 74 29  rcptr,mp_size_t)
c8f0: 29 3b 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66 69  );.#endif..#defi
c900: 6e 65 20 6d 70 6e 5f 61 64 64 5f 31 20 5f 5f 4d  ne mpn_add_1 __M
c910: 50 4e 28 61 64 64 5f 31 29 0a 23 69 66 20 5f 5f  PN(add_1).#if __
c920: 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f  GMP_INLINE_PROTO
c930: 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46  TYPES || __GMP_F
c940: 4f 52 43 45 5f 6d 70 6e 5f 61 64 64 5f 31 0a 5f  ORCE_mpn_add_1._
c950: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70  _GMP_DECLSPEC mp
c960: 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 61 64 64 5f  _limb_t mpn_add_
c970: 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  1 __GMP_PROTO ((
c980: 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 72 63 70 74  mp_ptr, mp_srcpt
c990: 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70  r, mp_size_t, mp
c9a0: 5f 6c 69 6d 62 5f 74 29 29 20 5f 5f 47 4d 50 5f  _limb_t)) __GMP_
c9b0: 4e 4f 54 48 52 4f 57 3b 0a 23 65 6e 64 69 66 0a  NOTHROW;.#endif.
c9c0: 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 61 64 64  .#define mpn_add
c9d0: 5f 6e 20 5f 5f 4d 50 4e 28 61 64 64 5f 6e 29 0a  _n __MPN(add_n).
c9e0: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d  __GMP_DECLSPEC m
c9f0: 70 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 61 64 64  p_limb_t mpn_add
ca00: 5f 6e 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  _n __GMP_PROTO (
ca10: 28 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 72 63 70  (mp_ptr, mp_srcp
ca20: 74 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d  tr, mp_srcptr, m
ca30: 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a 23 64 65  p_size_t));..#de
ca40: 66 69 6e 65 20 6d 70 6e 5f 61 64 64 6d 75 6c 5f  fine mpn_addmul_
ca50: 31 20 5f 5f 4d 50 4e 28 61 64 64 6d 75 6c 5f 31  1 __MPN(addmul_1
ca60: 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  ).__GMP_DECLSPEC
ca70: 20 6d 70 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 61   mp_limb_t mpn_a
ca80: 64 64 6d 75 6c 5f 31 20 5f 5f 47 4d 50 5f 50 52  ddmul_1 __GMP_PR
ca90: 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c 20 6d 70  OTO ((mp_ptr, mp
caa0: 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 69 7a 65  _srcptr, mp_size
cab0: 5f 74 2c 20 6d 70 5f 6c 69 6d 62 5f 74 29 29 3b  _t, mp_limb_t));
cac0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 62 64  ..#define mpn_bd
cad0: 69 76 6d 6f 64 20 5f 5f 4d 50 4e 28 62 64 69 76  ivmod __MPN(bdiv
cae0: 6d 6f 64 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  mod).__GMP_DECLS
caf0: 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20 6d 70  PEC mp_limb_t mp
cb00: 6e 5f 62 64 69 76 6d 6f 64 20 5f 5f 47 4d 50 5f  n_bdivmod __GMP_
cb10: 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c 20  PROTO ((mp_ptr, 
cb20: 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f  mp_ptr, mp_size_
cb30: 74 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70  t, mp_srcptr, mp
cb40: 5f 73 69 7a 65 5f 74 2c 20 75 6e 73 69 67 6e 65  _size_t, unsigne
cb50: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 3b 0a 0a 23  d long int));..#
cb60: 64 65 66 69 6e 65 20 6d 70 6e 5f 63 6d 70 20 5f  define mpn_cmp _
cb70: 5f 4d 50 4e 28 63 6d 70 29 0a 23 69 66 20 5f 5f  _MPN(cmp).#if __
cb80: 47 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f  GMP_INLINE_PROTO
cb90: 54 59 50 45 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46  TYPES || __GMP_F
cba0: 4f 52 43 45 5f 6d 70 6e 5f 63 6d 70 0a 5f 5f 47  ORCE_mpn_cmp.__G
cbb0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 69 6e 74 20  MP_DECLSPEC int 
cbc0: 6d 70 6e 5f 63 6d 70 20 5f 5f 47 4d 50 5f 50 52  mpn_cmp __GMP_PR
cbd0: 4f 54 4f 20 28 28 6d 70 5f 73 72 63 70 74 72 2c  OTO ((mp_srcptr,
cbe0: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
cbf0: 69 7a 65 5f 74 29 29 20 5f 5f 47 4d 50 5f 4e 4f  ize_t)) __GMP_NO
cc00: 54 48 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52  THROW __GMP_ATTR
cc10: 49 42 55 54 45 5f 50 55 52 45 3b 0a 23 65 6e 64  IBUTE_PURE;.#end
cc20: 69 66 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f  if..#define mpn_
cc30: 64 69 76 65 78 61 63 74 5f 62 79 33 28 64 73 74  divexact_by3(dst
cc40: 2c 73 72 63 2c 73 69 7a 65 29 20 5c 0a 20 20 6d  ,src,size) \.  m
cc50: 70 6e 5f 64 69 76 65 78 61 63 74 5f 62 79 33 63  pn_divexact_by3c
cc60: 20 28 64 73 74 2c 20 73 72 63 2c 20 73 69 7a 65   (dst, src, size
cc70: 2c 20 28 6d 70 5f 6c 69 6d 62 5f 74 29 20 30 29  , (mp_limb_t) 0)
cc80: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 64 69  ..#define mpn_di
cc90: 76 65 78 61 63 74 5f 62 79 33 63 20 5f 5f 4d 50  vexact_by3c __MP
cca0: 4e 28 64 69 76 65 78 61 63 74 5f 62 79 33 63 29  N(divexact_by3c)
ccb0: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
ccc0: 6d 70 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 64 69  mp_limb_t mpn_di
ccd0: 76 65 78 61 63 74 5f 62 79 33 63 20 5f 5f 47 4d  vexact_by3c __GM
cce0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72  P_PROTO ((mp_ptr
ccf0: 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f  , mp_srcptr, mp_
cd00: 73 69 7a 65 5f 74 2c 20 6d 70 5f 6c 69 6d 62 5f  size_t, mp_limb_
cd10: 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  t));..#define mp
cd20: 6e 5f 64 69 76 6d 6f 64 5f 31 28 71 70 2c 6e 70  n_divmod_1(qp,np
cd30: 2c 6e 73 69 7a 65 2c 64 6c 69 6d 62 29 20 5c 0a  ,nsize,dlimb) \.
cd40: 20 20 6d 70 6e 5f 64 69 76 72 65 6d 5f 31 20 28    mpn_divrem_1 (
cd50: 71 70 2c 20 28 6d 70 5f 73 69 7a 65 5f 74 29 20  qp, (mp_size_t) 
cd60: 30 2c 20 6e 70 2c 20 6e 73 69 7a 65 2c 20 64 6c  0, np, nsize, dl
cd70: 69 6d 62 29 0a 0a 23 64 65 66 69 6e 65 20 6d 70  imb)..#define mp
cd80: 6e 5f 64 69 76 72 65 6d 20 5f 5f 4d 50 4e 28 64  n_divrem __MPN(d
cd90: 69 76 72 65 6d 29 0a 5f 5f 47 4d 50 5f 44 45 43  ivrem).__GMP_DEC
cda0: 4c 53 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20  LSPEC mp_limb_t 
cdb0: 6d 70 6e 5f 64 69 76 72 65 6d 20 5f 5f 47 4d 50  mpn_divrem __GMP
cdc0: 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c  _PROTO ((mp_ptr,
cdd0: 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 70   mp_size_t, mp_p
cde0: 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d  tr, mp_size_t, m
cdf0: 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 69 7a  p_srcptr, mp_siz
ce00: 65 5f 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  e_t));..#define 
ce10: 6d 70 6e 5f 64 69 76 72 65 6d 5f 31 20 5f 5f 4d  mpn_divrem_1 __M
ce20: 50 4e 28 64 69 76 72 65 6d 5f 31 29 0a 5f 5f 47  PN(divrem_1).__G
ce30: 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c  MP_DECLSPEC mp_l
ce40: 69 6d 62 5f 74 20 6d 70 6e 5f 64 69 76 72 65 6d  imb_t mpn_divrem
ce50: 5f 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  _1 __GMP_PROTO (
ce60: 28 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65  (mp_ptr, mp_size
ce70: 5f 74 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d  _t, mp_srcptr, m
ce80: 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 6c 69 6d  p_size_t, mp_lim
ce90: 62 5f 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  b_t));..#define 
cea0: 6d 70 6e 5f 64 69 76 72 65 6d 5f 32 20 5f 5f 4d  mpn_divrem_2 __M
ceb0: 50 4e 28 64 69 76 72 65 6d 5f 32 29 0a 5f 5f 47  PN(divrem_2).__G
cec0: 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c  MP_DECLSPEC mp_l
ced0: 69 6d 62 5f 74 20 6d 70 6e 5f 64 69 76 72 65 6d  imb_t mpn_divrem
cee0: 5f 32 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28  _2 __GMP_PROTO (
cef0: 28 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65  (mp_ptr, mp_size
cf00: 5f 74 2c 20 6d 70 5f 70 74 72 2c 20 6d 70 5f 73  _t, mp_ptr, mp_s
cf10: 69 7a 65 5f 74 2c 20 6d 70 5f 73 72 63 70 74 72  ize_t, mp_srcptr
cf20: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e  ));..#define mpn
cf30: 5f 67 63 64 20 5f 5f 4d 50 4e 28 67 63 64 29 0a  _gcd __MPN(gcd).
cf40: 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d  __GMP_DECLSPEC m
cf50: 70 5f 73 69 7a 65 5f 74 20 6d 70 6e 5f 67 63 64  p_size_t mpn_gcd
cf60: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
cf70: 70 5f 70 74 72 2c 20 6d 70 5f 70 74 72 2c 20 6d  p_ptr, mp_ptr, m
cf80: 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 70 74 72  p_size_t, mp_ptr
cf90: 2c 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a  , mp_size_t));..
cfa0: 23 64 65 66 69 6e 65 20 6d 70 6e 5f 67 63 64 5f  #define mpn_gcd_
cfb0: 31 20 5f 5f 4d 50 4e 28 67 63 64 5f 31 29 0a 5f  1 __MPN(gcd_1)._
cfc0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70  _GMP_DECLSPEC mp
cfd0: 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 67 63 64 5f  _limb_t mpn_gcd_
cfe0: 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  1 __GMP_PROTO ((
cff0: 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 69  mp_srcptr, mp_si
d000: 7a 65 5f 74 2c 20 6d 70 5f 6c 69 6d 62 5f 74 29  ze_t, mp_limb_t)
d010: 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42 55 54  ) __GMP_ATTRIBUT
d020: 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65  E_PURE;..#define
d030: 20 6d 70 6e 5f 67 63 64 65 78 74 20 5f 5f 4d 50   mpn_gcdext __MP
d040: 4e 28 67 63 64 65 78 74 29 0a 5f 5f 47 4d 50 5f  N(gcdext).__GMP_
d050: 44 45 43 4c 53 50 45 43 20 6d 70 5f 73 69 7a 65  DECLSPEC mp_size
d060: 5f 74 20 6d 70 6e 5f 67 63 64 65 78 74 20 5f 5f  _t mpn_gcdext __
d070: 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70  GMP_PROTO ((mp_p
d080: 74 72 2c 20 6d 70 5f 70 74 72 2c 20 6d 70 5f 73  tr, mp_ptr, mp_s
d090: 69 7a 65 5f 74 20 2a 2c 20 6d 70 5f 70 74 72 2c  ize_t *, mp_ptr,
d0a0: 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 70   mp_size_t, mp_p
d0b0: 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b  tr, mp_size_t));
d0c0: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 67 65  ..#define mpn_ge
d0d0: 74 5f 73 74 72 20 5f 5f 4d 50 4e 28 67 65 74 5f  t_str __MPN(get_
d0e0: 73 74 72 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  str).__GMP_DECLS
d0f0: 50 45 43 20 73 69 7a 65 5f 74 20 6d 70 6e 5f 67  PEC size_t mpn_g
d100: 65 74 5f 73 74 72 20 5f 5f 47 4d 50 5f 50 52 4f  et_str __GMP_PRO
d110: 54 4f 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68  TO ((unsigned ch
d120: 61 72 20 2a 2c 20 69 6e 74 2c 20 6d 70 5f 70 74  ar *, int, mp_pt
d130: 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a  r, mp_size_t));.
d140: 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 68 61 6d  .#define mpn_ham
d150: 64 69 73 74 20 5f 5f 4d 50 4e 28 68 61 6d 64 69  dist __MPN(hamdi
d160: 73 74 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  st).__GMP_DECLSP
d170: 45 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67  EC unsigned long
d180: 20 69 6e 74 20 6d 70 6e 5f 68 61 6d 64 69 73 74   int mpn_hamdist
d190: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
d1a0: 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 72 63  p_srcptr, mp_src
d1b0: 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 29 29  ptr, mp_size_t))
d1c0: 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 20 5f   __GMP_NOTHROW _
d1d0: 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50  _GMP_ATTRIBUTE_P
d1e0: 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  URE;..#define mp
d1f0: 6e 5f 6c 73 68 69 66 74 20 5f 5f 4d 50 4e 28 6c  n_lshift __MPN(l
d200: 73 68 69 66 74 29 0a 5f 5f 47 4d 50 5f 44 45 43  shift).__GMP_DEC
d210: 4c 53 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20  LSPEC mp_limb_t 
d220: 6d 70 6e 5f 6c 73 68 69 66 74 20 5f 5f 47 4d 50  mpn_lshift __GMP
d230: 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c  _PROTO ((mp_ptr,
d240: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
d250: 69 7a 65 5f 74 2c 20 75 6e 73 69 67 6e 65 64 20  ize_t, unsigned 
d260: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
d270: 6d 70 6e 5f 6d 6f 64 5f 31 20 5f 5f 4d 50 4e 28  mpn_mod_1 __MPN(
d280: 6d 6f 64 5f 31 29 0a 5f 5f 47 4d 50 5f 44 45 43  mod_1).__GMP_DEC
d290: 4c 53 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20  LSPEC mp_limb_t 
d2a0: 6d 70 6e 5f 6d 6f 64 5f 31 20 5f 5f 47 4d 50 5f  mpn_mod_1 __GMP_
d2b0: 50 52 4f 54 4f 20 28 28 6d 70 5f 73 72 63 70 74  PROTO ((mp_srcpt
d2c0: 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70  r, mp_size_t, mp
d2d0: 5f 6c 69 6d 62 5f 74 29 29 20 5f 5f 47 4d 50 5f  _limb_t)) __GMP_
d2e0: 41 54 54 52 49 42 55 54 45 5f 50 55 52 45 3b 0a  ATTRIBUTE_PURE;.
d2f0: 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 6d 75 6c  .#define mpn_mul
d300: 20 5f 5f 4d 50 4e 28 6d 75 6c 29 0a 5f 5f 47 4d   __MPN(mul).__GM
d310: 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c 69  P_DECLSPEC mp_li
d320: 6d 62 5f 74 20 6d 70 6e 5f 6d 75 6c 20 5f 5f 47  mb_t mpn_mul __G
d330: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74  MP_PROTO ((mp_pt
d340: 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70  r, mp_srcptr, mp
d350: 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 73 72 63 70  _size_t, mp_srcp
d360: 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b  tr, mp_size_t));
d370: 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 6d 75  ..#define mpn_mu
d380: 6c 5f 31 20 5f 5f 4d 50 4e 28 6d 75 6c 5f 31 29  l_1 __MPN(mul_1)
d390: 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20  .__GMP_DECLSPEC 
d3a0: 6d 70 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 6d 75  mp_limb_t mpn_mu
d3b0: 6c 5f 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20  l_1 __GMP_PROTO 
d3c0: 28 28 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 72 63  ((mp_ptr, mp_src
d3d0: 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20  ptr, mp_size_t, 
d3e0: 6d 70 5f 6c 69 6d 62 5f 74 29 29 3b 0a 0a 23 64  mp_limb_t));..#d
d3f0: 65 66 69 6e 65 20 6d 70 6e 5f 6d 75 6c 5f 6e 20  efine mpn_mul_n 
d400: 5f 5f 4d 50 4e 28 6d 75 6c 5f 6e 29 0a 5f 5f 47  __MPN(mul_n).__G
d410: 4d 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64  MP_DECLSPEC void
d420: 20 6d 70 6e 5f 6d 75 6c 5f 6e 20 5f 5f 47 4d 50   mpn_mul_n __GMP
d430: 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c  _PROTO ((mp_ptr,
d440: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
d450: 72 63 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74  rcptr, mp_size_t
d460: 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e  ));..#define mpn
d470: 5f 70 65 72 66 65 63 74 5f 73 71 75 61 72 65 5f  _perfect_square_
d480: 70 20 5f 5f 4d 50 4e 28 70 65 72 66 65 63 74 5f  p __MPN(perfect_
d490: 73 71 75 61 72 65 5f 70 29 0a 5f 5f 47 4d 50 5f  square_p).__GMP_
d4a0: 44 45 43 4c 53 50 45 43 20 69 6e 74 20 6d 70 6e  DECLSPEC int mpn
d4b0: 5f 70 65 72 66 65 63 74 5f 73 71 75 61 72 65 5f  _perfect_square_
d4c0: 70 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  p __GMP_PROTO ((
d4d0: 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 69  mp_srcptr, mp_si
d4e0: 7a 65 5f 74 29 29 20 5f 5f 47 4d 50 5f 41 54 54  ze_t)) __GMP_ATT
d4f0: 52 49 42 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64  RIBUTE_PURE;..#d
d500: 65 66 69 6e 65 20 6d 70 6e 5f 70 6f 70 63 6f 75  efine mpn_popcou
d510: 6e 74 20 5f 5f 4d 50 4e 28 70 6f 70 63 6f 75 6e  nt __MPN(popcoun
d520: 74 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  t).__GMP_DECLSPE
d530: 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20  C unsigned long 
d540: 69 6e 74 20 6d 70 6e 5f 70 6f 70 63 6f 75 6e 74  int mpn_popcount
d550: 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d   __GMP_PROTO ((m
d560: 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73 69 7a  p_srcptr, mp_siz
d570: 65 5f 74 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  e_t)) __GMP_NOTH
d580: 52 4f 57 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  ROW __GMP_ATTRIB
d590: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
d5a0: 6e 65 20 6d 70 6e 5f 70 6f 77 5f 31 20 5f 5f 4d  ne mpn_pow_1 __M
d5b0: 50 4e 28 70 6f 77 5f 31 29 0a 5f 5f 47 4d 50 5f  PN(pow_1).__GMP_
d5c0: 44 45 43 4c 53 50 45 43 20 6d 70 5f 73 69 7a 65  DECLSPEC mp_size
d5d0: 5f 74 20 6d 70 6e 5f 70 6f 77 5f 31 20 5f 5f 47  _t mpn_pow_1 __G
d5e0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74  MP_PROTO ((mp_pt
d5f0: 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70  r, mp_srcptr, mp
d600: 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 6c 69 6d 62  _size_t, mp_limb
d610: 5f 74 2c 20 6d 70 5f 70 74 72 29 29 3b 0a 0a 2f  _t, mp_ptr));../
d620: 2a 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 6e  * undocumented n
d630: 6f 77 2c 20 62 75 74 20 72 65 74 61 69 6e 65 64  ow, but retained
d640: 20 68 65 72 65 20 66 6f 72 20 75 70 77 61 72 64   here for upward
d650: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 2a   compatibility *
d660: 2f 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f 70 72  /.#define mpn_pr
d670: 65 69 6e 76 5f 6d 6f 64 5f 31 20 5f 5f 4d 50 4e  einv_mod_1 __MPN
d680: 28 70 72 65 69 6e 76 5f 6d 6f 64 5f 31 29 0a 5f  (preinv_mod_1)._
d690: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70  _GMP_DECLSPEC mp
d6a0: 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 70 72 65 69  _limb_t mpn_prei
d6b0: 6e 76 5f 6d 6f 64 5f 31 20 5f 5f 47 4d 50 5f 50  nv_mod_1 __GMP_P
d6c0: 52 4f 54 4f 20 28 28 6d 70 5f 73 72 63 70 74 72  ROTO ((mp_srcptr
d6d0: 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f  , mp_size_t, mp_
d6e0: 6c 69 6d 62 5f 74 2c 20 6d 70 5f 6c 69 6d 62 5f  limb_t, mp_limb_
d6f0: 74 29 29 20 5f 5f 47 4d 50 5f 41 54 54 52 49 42  t)) __GMP_ATTRIB
d700: 55 54 45 5f 50 55 52 45 3b 0a 0a 23 64 65 66 69  UTE_PURE;..#defi
d710: 6e 65 20 6d 70 6e 5f 72 61 6e 64 6f 6d 20 5f 5f  ne mpn_random __
d720: 4d 50 4e 28 72 61 6e 64 6f 6d 29 0a 5f 5f 47 4d  MPN(random).__GM
d730: 50 5f 44 45 43 4c 53 50 45 43 20 76 6f 69 64 20  P_DECLSPEC void 
d740: 6d 70 6e 5f 72 61 6e 64 6f 6d 20 5f 5f 47 4d 50  mpn_random __GMP
d750: 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c  _PROTO ((mp_ptr,
d760: 20 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a 23   mp_size_t));..#
d770: 64 65 66 69 6e 65 20 6d 70 6e 5f 72 61 6e 64 6f  define mpn_rando
d780: 6d 32 20 5f 5f 4d 50 4e 28 72 61 6e 64 6f 6d 32  m2 __MPN(random2
d790: 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  ).__GMP_DECLSPEC
d7a0: 20 76 6f 69 64 20 6d 70 6e 5f 72 61 6e 64 6f 6d   void mpn_random
d7b0: 32 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  2 __GMP_PROTO ((
d7c0: 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f  mp_ptr, mp_size_
d7d0: 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  t));..#define mp
d7e0: 6e 5f 72 73 68 69 66 74 20 5f 5f 4d 50 4e 28 72  n_rshift __MPN(r
d7f0: 73 68 69 66 74 29 0a 5f 5f 47 4d 50 5f 44 45 43  shift).__GMP_DEC
d800: 4c 53 50 45 43 20 6d 70 5f 6c 69 6d 62 5f 74 20  LSPEC mp_limb_t 
d810: 6d 70 6e 5f 72 73 68 69 66 74 20 5f 5f 47 4d 50  mpn_rshift __GMP
d820: 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72 2c  _PROTO ((mp_ptr,
d830: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
d840: 69 7a 65 5f 74 2c 20 75 6e 73 69 67 6e 65 64 20  ize_t, unsigned 
d850: 69 6e 74 29 29 3b 0a 0a 23 64 65 66 69 6e 65 20  int));..#define 
d860: 6d 70 6e 5f 73 63 61 6e 30 20 5f 5f 4d 50 4e 28  mpn_scan0 __MPN(
d870: 73 63 61 6e 30 29 0a 5f 5f 47 4d 50 5f 44 45 43  scan0).__GMP_DEC
d880: 4c 53 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c  LSPEC unsigned l
d890: 6f 6e 67 20 69 6e 74 20 6d 70 6e 5f 73 63 61 6e  ong int mpn_scan
d8a0: 30 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  0 __GMP_PROTO ((
d8b0: 6d 70 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67  mp_srcptr, unsig
d8c0: 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f  ned long int)) _
d8d0: 5f 47 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50  _GMP_ATTRIBUTE_P
d8e0: 55 52 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70  URE;..#define mp
d8f0: 6e 5f 73 63 61 6e 31 20 5f 5f 4d 50 4e 28 73 63  n_scan1 __MPN(sc
d900: 61 6e 31 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53  an1).__GMP_DECLS
d910: 50 45 43 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e  PEC unsigned lon
d920: 67 20 69 6e 74 20 6d 70 6e 5f 73 63 61 6e 31 20  g int mpn_scan1 
d930: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
d940: 5f 73 72 63 70 74 72 2c 20 75 6e 73 69 67 6e 65  _srcptr, unsigne
d950: 64 20 6c 6f 6e 67 20 69 6e 74 29 29 20 5f 5f 47  d long int)) __G
d960: 4d 50 5f 41 54 54 52 49 42 55 54 45 5f 50 55 52  MP_ATTRIBUTE_PUR
d970: 45 3b 0a 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f  E;..#define mpn_
d980: 73 65 74 5f 73 74 72 20 5f 5f 4d 50 4e 28 73 65  set_str __MPN(se
d990: 74 5f 73 74 72 29 0a 5f 5f 47 4d 50 5f 44 45 43  t_str).__GMP_DEC
d9a0: 4c 53 50 45 43 20 6d 70 5f 73 69 7a 65 5f 74 20  LSPEC mp_size_t 
d9b0: 6d 70 6e 5f 73 65 74 5f 73 74 72 20 5f 5f 47 4d  mpn_set_str __GM
d9c0: 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74 72  P_PROTO ((mp_ptr
d9d0: 2c 20 5f 5f 67 6d 70 5f 63 6f 6e 73 74 20 75 6e  , __gmp_const un
d9e0: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 2c 20 73  signed char *, s
d9f0: 69 7a 65 5f 74 2c 20 69 6e 74 29 29 3b 0a 0a 23  ize_t, int));..#
da00: 64 65 66 69 6e 65 20 6d 70 6e 5f 73 71 72 74 72  define mpn_sqrtr
da10: 65 6d 20 5f 5f 4d 50 4e 28 73 71 72 74 72 65 6d  em __MPN(sqrtrem
da20: 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  ).__GMP_DECLSPEC
da30: 20 6d 70 5f 73 69 7a 65 5f 74 20 6d 70 6e 5f 73   mp_size_t mpn_s
da40: 71 72 74 72 65 6d 20 5f 5f 47 4d 50 5f 50 52 4f  qrtrem __GMP_PRO
da50: 54 4f 20 28 28 6d 70 5f 70 74 72 2c 20 6d 70 5f  TO ((mp_ptr, mp_
da60: 70 74 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20  ptr, mp_srcptr, 
da70: 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a 0a 23 64  mp_size_t));..#d
da80: 65 66 69 6e 65 20 6d 70 6e 5f 73 75 62 20 5f 5f  efine mpn_sub __
da90: 4d 50 4e 28 73 75 62 29 0a 23 69 66 20 5f 5f 47  MPN(sub).#if __G
daa0: 4d 50 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54  MP_INLINE_PROTOT
dab0: 59 50 45 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f  YPES || __GMP_FO
dac0: 52 43 45 5f 6d 70 6e 5f 73 75 62 0a 5f 5f 47 4d  RCE_mpn_sub.__GM
dad0: 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c 69  P_DECLSPEC mp_li
dae0: 6d 62 5f 74 20 6d 70 6e 5f 73 75 62 20 5f 5f 47  mb_t mpn_sub __G
daf0: 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f 70 74  MP_PROTO ((mp_pt
db00: 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70  r, mp_srcptr, mp
db10: 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 73 72 63 70  _size_t, mp_srcp
db20: 74 72 2c 6d 70 5f 73 69 7a 65 5f 74 29 29 3b 0a  tr,mp_size_t));.
db30: 23 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20  #endif..#define 
db40: 6d 70 6e 5f 73 75 62 5f 31 20 5f 5f 4d 50 4e 28  mpn_sub_1 __MPN(
db50: 73 75 62 5f 31 29 0a 23 69 66 20 5f 5f 47 4d 50  sub_1).#if __GMP
db60: 5f 49 4e 4c 49 4e 45 5f 50 52 4f 54 4f 54 59 50  _INLINE_PROTOTYP
db70: 45 53 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43  ES || __GMP_FORC
db80: 45 5f 6d 70 6e 5f 73 75 62 5f 31 0a 5f 5f 47 4d  E_mpn_sub_1.__GM
db90: 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c 69  P_DECLSPEC mp_li
dba0: 6d 62 5f 74 20 6d 70 6e 5f 73 75 62 5f 31 20 5f  mb_t mpn_sub_1 _
dbb0: 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70 5f  _GMP_PROTO ((mp_
dbc0: 70 74 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c 20  ptr, mp_srcptr, 
dbd0: 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 6c 69  mp_size_t, mp_li
dbe0: 6d 62 5f 74 29 29 20 5f 5f 47 4d 50 5f 4e 4f 54  mb_t)) __GMP_NOT
dbf0: 48 52 4f 57 3b 0a 23 65 6e 64 69 66 0a 0a 23 64  HROW;.#endif..#d
dc00: 65 66 69 6e 65 20 6d 70 6e 5f 73 75 62 5f 6e 20  efine mpn_sub_n 
dc10: 5f 5f 4d 50 4e 28 73 75 62 5f 6e 29 0a 5f 5f 47  __MPN(sub_n).__G
dc20: 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70 5f 6c  MP_DECLSPEC mp_l
dc30: 69 6d 62 5f 74 20 6d 70 6e 5f 73 75 62 5f 6e 20  imb_t mpn_sub_n 
dc40: 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28 6d 70  __GMP_PROTO ((mp
dc50: 5f 70 74 72 2c 20 6d 70 5f 73 72 63 70 74 72 2c  _ptr, mp_srcptr,
dc60: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
dc70: 69 7a 65 5f 74 29 29 3b 0a 0a 23 64 65 66 69 6e  ize_t));..#defin
dc80: 65 20 6d 70 6e 5f 73 75 62 6d 75 6c 5f 31 20 5f  e mpn_submul_1 _
dc90: 5f 4d 50 4e 28 73 75 62 6d 75 6c 5f 31 29 0a 5f  _MPN(submul_1)._
dca0: 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43 20 6d 70  _GMP_DECLSPEC mp
dcb0: 5f 6c 69 6d 62 5f 74 20 6d 70 6e 5f 73 75 62 6d  _limb_t mpn_subm
dcc0: 75 6c 5f 31 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f  ul_1 __GMP_PROTO
dcd0: 20 28 28 6d 70 5f 70 74 72 2c 20 6d 70 5f 73 72   ((mp_ptr, mp_sr
dce0: 63 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c  cptr, mp_size_t,
dcf0: 20 6d 70 5f 6c 69 6d 62 5f 74 29 29 3b 0a 0a 23   mp_limb_t));..#
dd00: 64 65 66 69 6e 65 20 6d 70 6e 5f 74 64 69 76 5f  define mpn_tdiv_
dd10: 71 72 20 5f 5f 4d 50 4e 28 74 64 69 76 5f 71 72  qr __MPN(tdiv_qr
dd20: 29 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  ).__GMP_DECLSPEC
dd30: 20 76 6f 69 64 20 6d 70 6e 5f 74 64 69 76 5f 71   void mpn_tdiv_q
dd40: 72 20 5f 5f 47 4d 50 5f 50 52 4f 54 4f 20 28 28  r __GMP_PROTO ((
dd50: 6d 70 5f 70 74 72 2c 20 6d 70 5f 70 74 72 2c 20  mp_ptr, mp_ptr, 
dd60: 6d 70 5f 73 69 7a 65 5f 74 2c 20 6d 70 5f 73 72  mp_size_t, mp_sr
dd70: 63 70 74 72 2c 20 6d 70 5f 73 69 7a 65 5f 74 2c  cptr, mp_size_t,
dd80: 20 6d 70 5f 73 72 63 70 74 72 2c 20 6d 70 5f 73   mp_srcptr, mp_s
dd90: 69 7a 65 5f 74 29 29 3b 0a 0a 0a 2f 2a 2a 2a 2a  ize_t));.../****
dda0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 6d 70 7a  ************ mpz
ddb0: 20 69 6e 6c 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a   inlines *******
ddc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 54  *********/../* T
ddd0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 65  he following are
dde0: 20 70 72 6f 76 69 64 65 64 20 61 73 20 69 6e 6c   provided as inl
ddf0: 69 6e 65 73 20 77 68 65 72 65 20 70 6f 73 73 69  ines where possi
de00: 62 6c 65 2c 20 62 75 74 20 61 6c 77 61 79 73 20  ble, but always 
de10: 65 78 69 73 74 20 61 73 0a 20 20 20 6c 69 62 72  exist as.   libr
de20: 61 72 79 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f  ary functions to
de30: 6f 2c 20 66 6f 72 20 62 69 6e 61 72 79 20 63 6f  o, for binary co
de40: 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 0a 20 20  mpatibility...  
de50: 20 57 69 74 68 69 6e 20 67 6d 70 20 69 74 73 65   Within gmp itse
de60: 6c 66 20 74 68 69 73 20 69 6e 6c 69 6e 69 6e 67  lf this inlining
de70: 20 67 65 6e 65 72 61 6c 6c 79 20 69 73 6e 27 74   generally isn't
de80: 20 72 65 6c 69 65 64 20 6f 6e 2c 20 73 69 6e 63   relied on, sinc
de90: 65 20 69 74 0a 20 20 20 64 6f 65 73 6e 27 74 20  e it.   doesn't 
dea0: 67 65 74 20 64 6f 6e 65 20 66 6f 72 20 61 6c 6c  get done for all
deb0: 20 63 6f 6d 70 69 6c 65 72 73 2c 20 77 68 65 72   compilers, wher
dec0: 65 61 73 20 69 66 20 73 6f 6d 65 74 68 69 6e 67  eas if something
ded0: 20 69 73 20 77 6f 72 74 68 0a 20 20 20 69 6e 6c   is worth.   inl
dee0: 69 6e 69 6e 67 20 74 68 65 6e 20 69 74 27 73 20  ining then it's 
def0: 77 6f 72 74 68 20 61 72 72 61 6e 67 69 6e 67 20  worth arranging 
df00: 61 6c 77 61 79 73 2e 0a 0a 20 20 20 54 68 65 72  always...   Ther
df10: 65 20 61 72 65 20 74 77 6f 20 73 74 79 6c 65 73  e are two styles
df20: 20 6f 66 20 69 6e 6c 69 6e 69 6e 67 20 68 65 72   of inlining her
df30: 65 2e 20 20 57 68 65 6e 20 74 68 65 20 73 61 6d  e.  When the sam
df40: 65 20 62 69 74 20 6f 66 20 63 6f 64 65 20 69 73  e bit of code is
df50: 0a 20 20 20 77 61 6e 74 65 64 20 66 6f 72 20 74  .   wanted for t
df60: 68 65 20 69 6e 6c 69 6e 65 20 61 73 20 66 6f 72  he inline as for
df70: 20 74 68 65 20 6c 69 62 72 61 72 79 20 76 65 72   the library ver
df80: 73 69 6f 6e 2c 20 74 68 65 6e 20 5f 5f 47 4d 50  sion, then __GMP
df90: 5f 46 4f 52 43 45 5f 66 6f 6f 0a 20 20 20 61 72  _FORCE_foo.   ar
dfa0: 72 61 6e 67 65 73 20 66 6f 72 20 74 68 61 74 20  ranges for that 
dfb0: 63 6f 64 65 20 74 6f 20 62 65 20 65 6d 69 74 74  code to be emitt
dfc0: 65 64 20 61 6e 64 20 74 68 65 20 5f 5f 47 4d 50  ed and the __GMP
dfd0: 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a 20  _EXTERN_INLINE. 
dfe0: 20 20 64 69 72 65 63 74 69 76 65 20 73 75 70 70    directive supp
dff0: 72 65 73 73 65 64 2c 20 65 67 2e 20 6d 70 7a 5f  ressed, eg. mpz_
e000: 66 69 74 73 5f 75 69 6e 74 5f 70 2e 20 20 57 68  fits_uint_p.  Wh
e010: 65 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 62  en a different b
e020: 69 74 20 6f 66 20 63 6f 64 65 0a 20 20 20 69 73  it of code.   is
e030: 20 77 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20   wanted for the 
e040: 69 6e 6c 69 6e 65 20 74 68 61 6e 20 66 6f 72 20  inline than for 
e050: 74 68 65 20 6c 69 62 72 61 72 79 20 76 65 72 73  the library vers
e060: 69 6f 6e 2c 20 74 68 65 6e 0a 20 20 20 5f 5f 47  ion, then.   __G
e070: 4d 50 5f 46 4f 52 43 45 5f 66 6f 6f 20 61 72 72  MP_FORCE_foo arr
e080: 61 6e 67 65 73 20 74 68 65 20 69 6e 6c 69 6e 65  anges the inline
e090: 20 74 6f 20 62 65 20 73 75 70 70 72 65 73 73 65   to be suppresse
e0a0: 64 2c 20 65 67 2e 20 6d 70 7a 5f 61 62 73 2e 20  d, eg. mpz_abs. 
e0b0: 20 2a 2f 0a 0a 23 69 66 20 64 65 66 69 6e 65 64   */..#if defined
e0c0: 20 28 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49   (__GMP_EXTERN_I
e0d0: 4e 4c 49 4e 45 29 20 26 26 20 21 20 5f 5f 47 4d  NLINE) && ! __GM
e0e0: 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 61 62 73 0a  P_FORCE_mpz_abs.
e0f0: 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c  __GMP_EXTERN_INL
e100: 49 4e 45 20 76 6f 69 64 0a 6d 70 7a 5f 61 62 73  INE void.mpz_abs
e110: 20 28 6d 70 7a 5f 70 74 72 20 5f 5f 67 6d 70 5f   (mpz_ptr __gmp_
e120: 77 2c 20 6d 70 7a 5f 73 72 63 70 74 72 20 5f 5f  w, mpz_srcptr __
e130: 67 6d 70 5f 75 29 0a 7b 0a 20 20 69 66 20 28 5f  gmp_u).{.  if (_
e140: 5f 67 6d 70 5f 77 20 21 3d 20 5f 5f 67 6d 70 5f  _gmp_w != __gmp_
e150: 75 29 0a 20 20 20 20 6d 70 7a 5f 73 65 74 20 28  u).    mpz_set (
e160: 5f 5f 67 6d 70 5f 77 2c 20 5f 5f 67 6d 70 5f 75  __gmp_w, __gmp_u
e170: 29 3b 0a 20 20 5f 5f 67 6d 70 5f 77 2d 3e 5f 6d  );.  __gmp_w->_m
e180: 70 5f 73 69 7a 65 20 3d 20 5f 5f 47 4d 50 5f 41  p_size = __GMP_A
e190: 42 53 20 28 5f 5f 67 6d 70 5f 77 2d 3e 5f 6d 70  BS (__gmp_w->_mp
e1a0: 5f 73 69 7a 65 29 3b 0a 7d 0a 23 65 6e 64 69 66  _size);.}.#endif
e1b0: 0a 0a 23 69 66 20 47 4d 50 5f 4e 41 49 4c 5f 42  ..#if GMP_NAIL_B
e1c0: 49 54 53 20 3d 3d 20 30 0a 23 64 65 66 69 6e 65  ITS == 0.#define
e1d0: 20 5f 5f 47 4d 50 5a 5f 46 49 54 53 5f 55 54 59   __GMPZ_FITS_UTY
e1e0: 50 45 5f 50 28 7a 2c 6d 61 78 76 61 6c 29 09 09  PE_P(z,maxval)..
e1f0: 09 09 09 5c 0a 20 20 6d 70 5f 73 69 7a 65 5f 74  ...\.  mp_size_t
e200: 20 20 5f 5f 67 6d 70 5f 6e 20 3d 20 7a 2d 3e 5f    __gmp_n = z->_
e210: 6d 70 5f 73 69 7a 65 3b 09 09 09 09 09 5c 0a 20  mp_size;.....\. 
e220: 20 6d 70 5f 70 74 72 20 20 5f 5f 67 6d 70 5f 70   mp_ptr  __gmp_p
e230: 20 3d 20 7a 2d 3e 5f 6d 70 5f 64 3b 09 09 09 09   = z->_mp_d;....
e240: 09 09 5c 0a 20 20 72 65 74 75 72 6e 20 28 5f 5f  ..\.  return (__
e250: 67 6d 70 5f 6e 20 3d 3d 20 30 20 7c 7c 20 28 5f  gmp_n == 0 || (_
e260: 5f 67 6d 70 5f 6e 20 3d 3d 20 31 20 26 26 20 5f  _gmp_n == 1 && _
e270: 5f 67 6d 70 5f 70 5b 30 5d 20 3c 3d 20 6d 61 78  _gmp_p[0] <= max
e280: 76 61 6c 29 29 3b 0a 23 65 6c 73 65 0a 23 64 65  val));.#else.#de
e290: 66 69 6e 65 20 5f 5f 47 4d 50 5a 5f 46 49 54 53  fine __GMPZ_FITS
e2a0: 5f 55 54 59 50 45 5f 50 28 7a 2c 6d 61 78 76 61  _UTYPE_P(z,maxva
e2b0: 6c 29 09 09 09 09 09 5c 0a 20 20 6d 70 5f 73 69  l).....\.  mp_si
e2c0: 7a 65 5f 74 20 20 5f 5f 67 6d 70 5f 6e 20 3d 20  ze_t  __gmp_n = 
e2d0: 7a 2d 3e 5f 6d 70 5f 73 69 7a 65 3b 09 09 09 09  z->_mp_size;....
e2e0: 09 5c 0a 20 20 6d 70 5f 70 74 72 20 20 5f 5f 67  .\.  mp_ptr  __g
e2f0: 6d 70 5f 70 20 3d 20 7a 2d 3e 5f 6d 70 5f 64 3b  mp_p = z->_mp_d;
e300: 09 09 09 09 09 09 5c 0a 20 20 72 65 74 75 72 6e  ......\.  return
e310: 20 28 5f 5f 67 6d 70 5f 6e 20 3d 3d 20 30 20 7c   (__gmp_n == 0 |
e320: 7c 20 28 5f 5f 67 6d 70 5f 6e 20 3d 3d 20 31 20  | (__gmp_n == 1 
e330: 26 26 20 5f 5f 67 6d 70 5f 70 5b 30 5d 20 3c 3d  && __gmp_p[0] <=
e340: 20 6d 61 78 76 61 6c 29 09 5c 0a 09 20 20 7c 7c   maxval).\..  ||
e350: 20 28 5f 5f 67 6d 70 5f 6e 20 3d 3d 20 32 20 26   (__gmp_n == 2 &
e360: 26 20 5f 5f 67 6d 70 5f 70 5b 31 5d 20 3c 3d 20  & __gmp_p[1] <= 
e370: 28 28 6d 70 5f 6c 69 6d 62 5f 74 29 20 6d 61 78  ((mp_limb_t) max
e380: 76 61 6c 20 3e 3e 20 47 4d 50 5f 4e 55 4d 42 5f  val >> GMP_NUMB_
e390: 42 49 54 53 29 29 29 3b 0a 23 65 6e 64 69 66 0a  BITS)));.#endif.
e3a0: 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 5f  .#if defined (__
e3b0: 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e  GMP_EXTERN_INLIN
e3c0: 45 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43  E) || __GMP_FORC
e3d0: 45 5f 6d 70 7a 5f 66 69 74 73 5f 75 69 6e 74 5f  E_mpz_fits_uint_
e3e0: 70 0a 23 69 66 20 21 20 5f 5f 47 4d 50 5f 46 4f  p.#if ! __GMP_FO
e3f0: 52 43 45 5f 6d 70 7a 5f 66 69 74 73 5f 75 69 6e  RCE_mpz_fits_uin
e400: 74 5f 70 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e  t_p.__GMP_EXTERN
e410: 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64 69 66 0a 69  _INLINE.#endif.i
e420: 6e 74 0a 6d 70 7a 5f 66 69 74 73 5f 75 69 6e 74  nt.mpz_fits_uint
e430: 5f 70 20 28 6d 70 7a 5f 73 72 63 70 74 72 20 5f  _p (mpz_srcptr _
e440: 5f 67 6d 70 5f 7a 29 20 5f 5f 47 4d 50 5f 4e 4f  _gmp_z) __GMP_NO
e450: 54 48 52 4f 57 0a 7b 0a 20 20 5f 5f 47 4d 50 5a  THROW.{.  __GMPZ
e460: 5f 46 49 54 53 5f 55 54 59 50 45 5f 50 20 28 5f  _FITS_UTYPE_P (_
e470: 5f 67 6d 70 5f 7a 2c 20 5f 5f 47 4d 50 5f 55 49  _gmp_z, __GMP_UI
e480: 4e 54 5f 4d 41 58 29 3b 0a 7d 0a 23 65 6e 64 69  NT_MAX);.}.#endi
e490: 66 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28  f..#if defined (
e4a0: 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c  __GMP_EXTERN_INL
e4b0: 49 4e 45 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f  INE) || __GMP_FO
e4c0: 52 43 45 5f 6d 70 7a 5f 66 69 74 73 5f 75 6c 6f  RCE_mpz_fits_ulo
e4d0: 6e 67 5f 70 0a 23 69 66 20 21 20 5f 5f 47 4d 50  ng_p.#if ! __GMP
e4e0: 5f 46 4f 52 43 45 5f 6d 70 7a 5f 66 69 74 73 5f  _FORCE_mpz_fits_
e4f0: 75 6c 6f 6e 67 5f 70 0a 5f 5f 47 4d 50 5f 45 58  ulong_p.__GMP_EX
e500: 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64  TERN_INLINE.#end
e510: 69 66 0a 69 6e 74 0a 6d 70 7a 5f 66 69 74 73 5f  if.int.mpz_fits_
e520: 75 6c 6f 6e 67 5f 70 20 28 6d 70 7a 5f 73 72 63  ulong_p (mpz_src
e530: 70 74 72 20 5f 5f 67 6d 70 5f 7a 29 20 5f 5f 47  ptr __gmp_z) __G
e540: 4d 50 5f 4e 4f 54 48 52 4f 57 0a 7b 0a 20 20 5f  MP_NOTHROW.{.  _
e550: 5f 47 4d 50 5a 5f 46 49 54 53 5f 55 54 59 50 45  _GMPZ_FITS_UTYPE
e560: 5f 50 20 28 5f 5f 67 6d 70 5f 7a 2c 20 5f 5f 47  _P (__gmp_z, __G
e570: 4d 50 5f 55 4c 4f 4e 47 5f 4d 41 58 29 3b 0a 7d  MP_ULONG_MAX);.}
e580: 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66  .#endif..#if def
e590: 69 6e 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45  ined (__GMP_EXTE
e5a0: 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c 7c 20 5f 5f  RN_INLINE) || __
e5b0: 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 66 69  GMP_FORCE_mpz_fi
e5c0: 74 73 5f 75 73 68 6f 72 74 5f 70 0a 23 69 66 20  ts_ushort_p.#if 
e5d0: 21 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70  ! __GMP_FORCE_mp
e5e0: 7a 5f 66 69 74 73 5f 75 73 68 6f 72 74 5f 70 0a  z_fits_ushort_p.
e5f0: 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c  __GMP_EXTERN_INL
e600: 49 4e 45 0a 23 65 6e 64 69 66 0a 69 6e 74 0a 6d  INE.#endif.int.m
e610: 70 7a 5f 66 69 74 73 5f 75 73 68 6f 72 74 5f 70  pz_fits_ushort_p
e620: 20 28 6d 70 7a 5f 73 72 63 70 74 72 20 5f 5f 67   (mpz_srcptr __g
e630: 6d 70 5f 7a 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  mp_z) __GMP_NOTH
e640: 52 4f 57 0a 7b 0a 20 20 5f 5f 47 4d 50 5a 5f 46  ROW.{.  __GMPZ_F
e650: 49 54 53 5f 55 54 59 50 45 5f 50 20 28 5f 5f 67  ITS_UTYPE_P (__g
e660: 6d 70 5f 7a 2c 20 5f 5f 47 4d 50 5f 55 53 48 52  mp_z, __GMP_USHR
e670: 54 5f 4d 41 58 29 3b 0a 7d 0a 23 65 6e 64 69 66  T_MAX);.}.#endif
e680: 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f  ..#if defined (_
e690: 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49  _GMP_EXTERN_INLI
e6a0: 4e 45 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52  NE) || __GMP_FOR
e6b0: 43 45 5f 6d 70 7a 5f 67 65 74 5f 75 69 0a 23 69  CE_mpz_get_ui.#i
e6c0: 66 20 21 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f  f ! __GMP_FORCE_
e6d0: 6d 70 7a 5f 67 65 74 5f 75 69 0a 5f 5f 47 4d 50  mpz_get_ui.__GMP
e6e0: 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a 23  _EXTERN_INLINE.#
e6f0: 65 6e 64 69 66 0a 75 6e 73 69 67 6e 65 64 20 6c  endif.unsigned l
e700: 6f 6e 67 0a 6d 70 7a 5f 67 65 74 5f 75 69 20 28  ong.mpz_get_ui (
e710: 6d 70 7a 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70  mpz_srcptr __gmp
e720: 5f 7a 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f  _z) __GMP_NOTHRO
e730: 57 0a 7b 0a 20 20 6d 70 5f 70 74 72 20 5f 5f 67  W.{.  mp_ptr __g
e740: 6d 70 5f 70 20 3d 20 5f 5f 67 6d 70 5f 7a 2d 3e  mp_p = __gmp_z->
e750: 5f 6d 70 5f 64 3b 0a 20 20 6d 70 5f 73 69 7a 65  _mp_d;.  mp_size
e760: 5f 74 20 5f 5f 67 6d 70 5f 6e 20 3d 20 5f 5f 67  _t __gmp_n = __g
e770: 6d 70 5f 7a 2d 3e 5f 6d 70 5f 73 69 7a 65 3b 0a  mp_z->_mp_size;.
e780: 20 20 6d 70 5f 6c 69 6d 62 5f 74 20 5f 5f 67 6d    mp_limb_t __gm
e790: 70 5f 6c 20 3d 20 5f 5f 67 6d 70 5f 70 5b 30 5d  p_l = __gmp_p[0]
e7a0: 3b 0a 20 20 69 66 20 28 5f 5f 47 4d 50 5f 55 4c  ;.  if (__GMP_UL
e7b0: 4f 4e 47 5f 4d 41 58 20 3c 3d 20 47 4d 50 5f 4e  ONG_MAX <= GMP_N
e7c0: 55 4d 42 5f 4d 41 53 4b 29 0a 20 20 20 20 72 65  UMB_MASK).    re
e7d0: 74 75 72 6e 20 5f 5f 67 6d 70 5f 6c 20 26 20 28  turn __gmp_l & (
e7e0: 2d 28 6d 70 5f 6c 69 6d 62 5f 74 29 20 28 5f 5f  -(mp_limb_t) (__
e7f0: 67 6d 70 5f 6e 20 21 3d 20 30 29 29 3b 0a 23 69  gmp_n != 0));.#i
e800: 66 20 47 4d 50 5f 4e 41 49 4c 5f 42 49 54 53 20  f GMP_NAIL_BITS 
e810: 21 3d 20 30 09 2f 2a 20 72 65 64 75 6e 64 61 6e  != 0./* redundan
e820: 74 20 23 69 66 2c 20 73 68 75 74 73 20 75 70 20  t #if, shuts up 
e830: 63 6f 6d 70 69 6c 65 72 20 77 61 72 6e 69 6e 67  compiler warning
e840: 73 20 2a 2f 0a 20 20 65 6c 73 65 09 09 09 2f 2a  s */.  else.../*
e850: 20 68 61 70 70 65 6e 73 20 66 6f 72 20 6e 61 69   happens for nai
e860: 6c 73 2c 20 62 75 74 20 6e 6f 74 20 69 66 20 4c  ls, but not if L
e870: 4f 4e 47 5f 4c 4f 4e 47 5f 4c 49 4d 42 20 2a 2f  ONG_LONG_LIMB */
e880: 0a 20 20 20 20 7b 09 09 09 2f 2a 20 61 73 73 75  .    {.../* assu
e890: 6d 65 20 74 77 6f 20 6c 69 6d 62 73 20 61 72 65  me two limbs are
e8a0: 20 65 6e 6f 75 67 68 20 74 6f 20 66 69 6c 6c 20   enough to fill 
e8b0: 61 6e 20 75 6c 6f 6e 67 20 2a 2f 0a 20 20 20 20  an ulong */.    
e8c0: 20 20 5f 5f 67 6d 70 5f 6e 20 3d 20 5f 5f 47 4d    __gmp_n = __GM
e8d0: 50 5f 41 42 53 20 28 5f 5f 67 6d 70 5f 6e 29 3b  P_ABS (__gmp_n);
e8e0: 0a 20 20 20 20 20 20 69 66 20 28 5f 5f 67 6d 70  .      if (__gmp
e8f0: 5f 6e 20 3c 3d 20 31 29 0a 09 72 65 74 75 72 6e  _n <= 1)..return
e900: 20 5f 5f 67 6d 70 5f 6c 20 26 20 28 2d 28 6d 70   __gmp_l & (-(mp
e910: 5f 6c 69 6d 62 5f 74 29 20 28 5f 5f 67 6d 70 5f  _limb_t) (__gmp_
e920: 6e 20 21 3d 20 30 29 29 3b 0a 20 20 20 20 20 20  n != 0));.      
e930: 65 6c 73 65 0a 09 72 65 74 75 72 6e 20 5f 5f 67  else..return __g
e940: 6d 70 5f 6c 20 2b 20 28 5f 5f 67 6d 70 5f 70 5b  mp_l + (__gmp_p[
e950: 31 5d 20 3c 3c 20 47 4d 50 5f 4e 55 4d 42 5f 42  1] << GMP_NUMB_B
e960: 49 54 53 29 3b 0a 20 20 20 20 7d 0a 23 65 6e 64  ITS);.    }.#end
e970: 69 66 0a 7d 0a 23 65 6e 64 69 66 0a 0a 23 69 66  if.}.#endif..#if
e980: 20 64 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f   defined (__GMP_
e990: 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c  EXTERN_INLINE) |
e9a0: 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70  | __GMP_FORCE_mp
e9b0: 7a 5f 67 65 74 6c 69 6d 62 6e 0a 23 69 66 20 21  z_getlimbn.#if !
e9c0: 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a   __GMP_FORCE_mpz
e9d0: 5f 67 65 74 6c 69 6d 62 6e 0a 5f 5f 47 4d 50 5f  _getlimbn.__GMP_
e9e0: 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a 23 65  EXTERN_INLINE.#e
e9f0: 6e 64 69 66 0a 6d 70 5f 6c 69 6d 62 5f 74 0a 6d  ndif.mp_limb_t.m
ea00: 70 7a 5f 67 65 74 6c 69 6d 62 6e 20 28 6d 70 7a  pz_getlimbn (mpz
ea10: 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70 5f 7a 2c  _srcptr __gmp_z,
ea20: 20 6d 70 5f 73 69 7a 65 5f 74 20 5f 5f 67 6d 70   mp_size_t __gmp
ea30: 5f 6e 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f  _n) __GMP_NOTHRO
ea40: 57 0a 7b 0a 20 20 69 66 20 28 5f 5f 47 4d 50 5f  W.{.  if (__GMP_
ea50: 41 42 53 20 28 5f 5f 67 6d 70 5f 7a 2d 3e 5f 6d  ABS (__gmp_z->_m
ea60: 70 5f 73 69 7a 65 29 20 3c 3d 20 5f 5f 67 6d 70  p_size) <= __gmp
ea70: 5f 6e 20 7c 7c 20 5f 5f 67 6d 70 5f 6e 20 3c 20  _n || __gmp_n < 
ea80: 30 29 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b  0).    return 0;
ea90: 0a 20 20 65 6c 73 65 0a 20 20 20 20 72 65 74 75  .  else.    retu
eaa0: 72 6e 20 5f 5f 67 6d 70 5f 7a 2d 3e 5f 6d 70 5f  rn __gmp_z->_mp_
eab0: 64 5b 5f 5f 67 6d 70 5f 6e 5d 3b 0a 7d 0a 23 65  d[__gmp_n];.}.#e
eac0: 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 69 6e 65  ndif..#if define
ead0: 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f  d (__GMP_EXTERN_
eae0: 49 4e 4c 49 4e 45 29 20 26 26 20 21 20 5f 5f 47  INLINE) && ! __G
eaf0: 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 6e 65 67  MP_FORCE_mpz_neg
eb00: 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e  .__GMP_EXTERN_IN
eb10: 4c 49 4e 45 20 76 6f 69 64 0a 6d 70 7a 5f 6e 65  LINE void.mpz_ne
eb20: 67 20 28 6d 70 7a 5f 70 74 72 20 5f 5f 67 6d 70  g (mpz_ptr __gmp
eb30: 5f 77 2c 20 6d 70 7a 5f 73 72 63 70 74 72 20 5f  _w, mpz_srcptr _
eb40: 5f 67 6d 70 5f 75 29 0a 7b 0a 20 20 69 66 20 28  _gmp_u).{.  if (
eb50: 5f 5f 67 6d 70 5f 77 20 21 3d 20 5f 5f 67 6d 70  __gmp_w != __gmp
eb60: 5f 75 29 0a 20 20 20 20 6d 70 7a 5f 73 65 74 20  _u).    mpz_set 
eb70: 28 5f 5f 67 6d 70 5f 77 2c 20 5f 5f 67 6d 70 5f  (__gmp_w, __gmp_
eb80: 75 29 3b 0a 20 20 5f 5f 67 6d 70 5f 77 2d 3e 5f  u);.  __gmp_w->_
eb90: 6d 70 5f 73 69 7a 65 20 3d 20 2d 20 5f 5f 67 6d  mp_size = - __gm
eba0: 70 5f 77 2d 3e 5f 6d 70 5f 73 69 7a 65 3b 0a 7d  p_w->_mp_size;.}
ebb0: 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66  .#endif..#if def
ebc0: 69 6e 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45  ined (__GMP_EXTE
ebd0: 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c 7c 20 5f 5f  RN_INLINE) || __
ebe0: 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 70 65  GMP_FORCE_mpz_pe
ebf0: 72 66 65 63 74 5f 73 71 75 61 72 65 5f 70 0a 23  rfect_square_p.#
ec00: 69 66 20 21 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  if ! __GMP_FORCE
ec10: 5f 6d 70 7a 5f 70 65 72 66 65 63 74 5f 73 71 75  _mpz_perfect_squ
ec20: 61 72 65 5f 70 0a 5f 5f 47 4d 50 5f 45 58 54 45  are_p.__GMP_EXTE
ec30: 52 4e 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64 69 66  RN_INLINE.#endif
ec40: 0a 69 6e 74 0a 6d 70 7a 5f 70 65 72 66 65 63 74  .int.mpz_perfect
ec50: 5f 73 71 75 61 72 65 5f 70 20 28 6d 70 7a 5f 73  _square_p (mpz_s
ec60: 72 63 70 74 72 20 5f 5f 67 6d 70 5f 61 29 0a 7b  rcptr __gmp_a).{
ec70: 0a 20 20 6d 70 5f 73 69 7a 65 5f 74 20 5f 5f 67  .  mp_size_t __g
ec80: 6d 70 5f 61 73 69 7a 65 20 3d 20 5f 5f 67 6d 70  mp_asize = __gmp
ec90: 5f 61 2d 3e 5f 6d 70 5f 73 69 7a 65 3b 0a 20 20  _a->_mp_size;.  
eca0: 69 66 20 28 5f 5f 67 6d 70 5f 61 73 69 7a 65 20  if (__gmp_asize 
ecb0: 3c 3d 20 30 29 0a 20 20 20 20 72 65 74 75 72 6e  <= 0).    return
ecc0: 20 28 5f 5f 67 6d 70 5f 61 73 69 7a 65 20 3d 3d   (__gmp_asize ==
ecd0: 20 30 29 3b 20 20 2f 2a 20 7a 65 72 6f 20 69 73   0);  /* zero is
ece0: 20 61 20 73 71 75 61 72 65 2c 20 6e 65 67 61 74   a square, negat
ecf0: 69 76 65 73 20 61 72 65 20 6e 6f 74 20 2a 2f 0a  ives are not */.
ed00: 20 20 65 6c 73 65 0a 20 20 20 20 72 65 74 75 72    else.    retur
ed10: 6e 20 6d 70 6e 5f 70 65 72 66 65 63 74 5f 73 71  n mpn_perfect_sq
ed20: 75 61 72 65 5f 70 20 28 5f 5f 67 6d 70 5f 61 2d  uare_p (__gmp_a-
ed30: 3e 5f 6d 70 5f 64 2c 20 5f 5f 67 6d 70 5f 61 73  >_mp_d, __gmp_as
ed40: 69 7a 65 29 3b 0a 7d 0a 23 65 6e 64 69 66 0a 0a  ize);.}.#endif..
ed50: 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 5f 47  #if defined (__G
ed60: 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45  MP_EXTERN_INLINE
ed70: 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  ) || __GMP_FORCE
ed80: 5f 6d 70 7a 5f 70 6f 70 63 6f 75 6e 74 0a 23 69  _mpz_popcount.#i
ed90: 66 20 21 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f  f ! __GMP_FORCE_
eda0: 6d 70 7a 5f 70 6f 70 63 6f 75 6e 74 0a 5f 5f 47  mpz_popcount.__G
edb0: 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45  MP_EXTERN_INLINE
edc0: 0a 23 65 6e 64 69 66 0a 75 6e 73 69 67 6e 65 64  .#endif.unsigned
edd0: 20 6c 6f 6e 67 0a 6d 70 7a 5f 70 6f 70 63 6f 75   long.mpz_popcou
ede0: 6e 74 20 28 6d 70 7a 5f 73 72 63 70 74 72 20 5f  nt (mpz_srcptr _
edf0: 5f 67 6d 70 5f 75 29 20 5f 5f 47 4d 50 5f 4e 4f  _gmp_u) __GMP_NO
ee00: 54 48 52 4f 57 0a 7b 0a 20 20 6d 70 5f 73 69 7a  THROW.{.  mp_siz
ee10: 65 5f 74 20 5f 5f 67 6d 70 5f 75 73 69 7a 65 20  e_t __gmp_usize 
ee20: 3d 20 5f 5f 67 6d 70 5f 75 2d 3e 5f 6d 70 5f 73  = __gmp_u->_mp_s
ee30: 69 7a 65 3b 0a 0a 20 20 69 66 20 28 5f 5f 67 6d  ize;..  if (__gm
ee40: 70 5f 75 73 69 7a 65 20 3c 3d 20 30 29 0a 20 20  p_usize <= 0).  
ee50: 20 20 72 65 74 75 72 6e 20 28 5f 5f 67 6d 70 5f    return (__gmp_
ee60: 75 73 69 7a 65 20 3c 20 30 20 3f 20 5f 5f 47 4d  usize < 0 ? __GM
ee70: 50 5f 55 4c 4f 4e 47 5f 4d 41 58 20 3a 20 30 29  P_ULONG_MAX : 0)
ee80: 3b 0a 20 20 65 6c 73 65 0a 20 20 20 20 72 65 74  ;.  else.    ret
ee90: 75 72 6e 20 6d 70 6e 5f 70 6f 70 63 6f 75 6e 74  urn mpn_popcount
eea0: 20 28 5f 5f 67 6d 70 5f 75 2d 3e 5f 6d 70 5f 64   (__gmp_u->_mp_d
eeb0: 2c 20 5f 5f 67 6d 70 5f 75 73 69 7a 65 29 3b 0a  , __gmp_usize);.
eec0: 7d 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65  }.#endif..#if de
eed0: 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54  fined (__GMP_EXT
eee0: 45 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c 7c 20 5f  ERN_INLINE) || _
eef0: 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a 5f 73  _GMP_FORCE_mpz_s
ef00: 65 74 5f 71 0a 23 69 66 20 21 20 5f 5f 47 4d 50  et_q.#if ! __GMP
ef10: 5f 46 4f 52 43 45 5f 6d 70 7a 5f 73 65 74 5f 71  _FORCE_mpz_set_q
ef20: 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e  .__GMP_EXTERN_IN
ef30: 4c 49 4e 45 0a 23 65 6e 64 69 66 0a 76 6f 69 64  LINE.#endif.void
ef40: 0a 6d 70 7a 5f 73 65 74 5f 71 20 28 6d 70 7a 5f  .mpz_set_q (mpz_
ef50: 70 74 72 20 5f 5f 67 6d 70 5f 77 2c 20 6d 70 71  ptr __gmp_w, mpq
ef60: 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70 5f 75 29  _srcptr __gmp_u)
ef70: 0a 7b 0a 20 20 6d 70 7a 5f 74 64 69 76 5f 71 20  .{.  mpz_tdiv_q 
ef80: 28 5f 5f 67 6d 70 5f 77 2c 20 6d 70 71 5f 6e 75  (__gmp_w, mpq_nu
ef90: 6d 72 65 66 20 28 5f 5f 67 6d 70 5f 75 29 2c 20  mref (__gmp_u), 
efa0: 6d 70 71 5f 64 65 6e 72 65 66 20 28 5f 5f 67 6d  mpq_denref (__gm
efb0: 70 5f 75 29 29 3b 0a 7d 0a 23 65 6e 64 69 66 0a  p_u));.}.#endif.
efc0: 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 5f  .#if defined (__
efd0: 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e  GMP_EXTERN_INLIN
efe0: 45 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43  E) || __GMP_FORC
eff0: 45 5f 6d 70 7a 5f 73 69 7a 65 0a 23 69 66 20 21  E_mpz_size.#if !
f000: 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 7a   __GMP_FORCE_mpz
f010: 5f 73 69 7a 65 0a 5f 5f 47 4d 50 5f 45 58 54 45  _size.__GMP_EXTE
f020: 52 4e 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64 69 66  RN_INLINE.#endif
f030: 0a 73 69 7a 65 5f 74 0a 6d 70 7a 5f 73 69 7a 65  .size_t.mpz_size
f040: 20 28 6d 70 7a 5f 73 72 63 70 74 72 20 5f 5f 67   (mpz_srcptr __g
f050: 6d 70 5f 7a 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48  mp_z) __GMP_NOTH
f060: 52 4f 57 0a 7b 0a 20 20 72 65 74 75 72 6e 20 5f  ROW.{.  return _
f070: 5f 47 4d 50 5f 41 42 53 20 28 5f 5f 67 6d 70 5f  _GMP_ABS (__gmp_
f080: 7a 2d 3e 5f 6d 70 5f 73 69 7a 65 29 3b 0a 7d 0a  z->_mp_size);.}.
f090: 23 65 6e 64 69 66 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a  #endif.../******
f0a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 6d 70 71 20 69  ********** mpq i
f0b0: 6e 6c 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  nlines *********
f0c0: 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 23 69 66 20 64 65  *******/..#if de
f0d0: 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54  fined (__GMP_EXT
f0e0: 45 52 4e 5f 49 4e 4c 49 4e 45 29 20 26 26 20 21  ERN_INLINE) && !
f0f0: 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 71   __GMP_FORCE_mpq
f100: 5f 61 62 73 0a 5f 5f 47 4d 50 5f 45 58 54 45 52  _abs.__GMP_EXTER
f110: 4e 5f 49 4e 4c 49 4e 45 20 76 6f 69 64 0a 6d 70  N_INLINE void.mp
f120: 71 5f 61 62 73 20 28 6d 70 71 5f 70 74 72 20 5f  q_abs (mpq_ptr _
f130: 5f 67 6d 70 5f 77 2c 20 6d 70 71 5f 73 72 63 70  _gmp_w, mpq_srcp
f140: 74 72 20 5f 5f 67 6d 70 5f 75 29 0a 7b 0a 20 20  tr __gmp_u).{.  
f150: 69 66 20 28 5f 5f 67 6d 70 5f 77 20 21 3d 20 5f  if (__gmp_w != _
f160: 5f 67 6d 70 5f 75 29 0a 20 20 20 20 6d 70 71 5f  _gmp_u).    mpq_
f170: 73 65 74 20 28 5f 5f 67 6d 70 5f 77 2c 20 5f 5f  set (__gmp_w, __
f180: 67 6d 70 5f 75 29 3b 0a 20 20 5f 5f 67 6d 70 5f  gmp_u);.  __gmp_
f190: 77 2d 3e 5f 6d 70 5f 6e 75 6d 2e 5f 6d 70 5f 73  w->_mp_num._mp_s
f1a0: 69 7a 65 20 3d 20 5f 5f 47 4d 50 5f 41 42 53 20  ize = __GMP_ABS 
f1b0: 28 5f 5f 67 6d 70 5f 77 2d 3e 5f 6d 70 5f 6e 75  (__gmp_w->_mp_nu
f1c0: 6d 2e 5f 6d 70 5f 73 69 7a 65 29 3b 0a 7d 0a 23  m._mp_size);.}.#
f1d0: 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 69 6e  endif..#if defin
f1e0: 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45 52 4e  ed (__GMP_EXTERN
f1f0: 5f 49 4e 4c 49 4e 45 29 20 26 26 20 21 20 5f 5f  _INLINE) && ! __
f200: 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 71 5f 6e 65  GMP_FORCE_mpq_ne
f210: 67 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49  g.__GMP_EXTERN_I
f220: 4e 4c 49 4e 45 20 76 6f 69 64 0a 6d 70 71 5f 6e  NLINE void.mpq_n
f230: 65 67 20 28 6d 70 71 5f 70 74 72 20 5f 5f 67 6d  eg (mpq_ptr __gm
f240: 70 5f 77 2c 20 6d 70 71 5f 73 72 63 70 74 72 20  p_w, mpq_srcptr 
f250: 5f 5f 67 6d 70 5f 75 29 0a 7b 0a 20 20 69 66 20  __gmp_u).{.  if 
f260: 28 5f 5f 67 6d 70 5f 77 20 21 3d 20 5f 5f 67 6d  (__gmp_w != __gm
f270: 70 5f 75 29 0a 20 20 20 20 6d 70 71 5f 73 65 74  p_u).    mpq_set
f280: 20 28 5f 5f 67 6d 70 5f 77 2c 20 5f 5f 67 6d 70   (__gmp_w, __gmp
f290: 5f 75 29 3b 0a 20 20 5f 5f 67 6d 70 5f 77 2d 3e  _u);.  __gmp_w->
f2a0: 5f 6d 70 5f 6e 75 6d 2e 5f 6d 70 5f 73 69 7a 65  _mp_num._mp_size
f2b0: 20 3d 20 2d 20 5f 5f 67 6d 70 5f 77 2d 3e 5f 6d   = - __gmp_w->_m
f2c0: 70 5f 6e 75 6d 2e 5f 6d 70 5f 73 69 7a 65 3b 0a  p_num._mp_size;.
f2d0: 7d 0a 23 65 6e 64 69 66 0a 0a 0a 2f 2a 2a 2a 2a  }.#endif.../****
f2e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 6d 70 6e  ************ mpn
f2f0: 20 69 6e 6c 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a   inlines *******
f300: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 54  *********/../* T
f310: 68 65 20 63 6f 6d 6d 65 6e 74 73 20 77 69 74 68  he comments with
f320: 20 5f 5f 47 4d 50 4e 5f 41 44 44 5f 31 20 62 65   __GMPN_ADD_1 be
f330: 6c 6f 77 20 61 70 70 6c 79 20 68 65 72 65 20 74  low apply here t
f340: 6f 6f 2e 0a 0a 20 20 20 54 68 65 20 74 65 73 74  oo...   The test
f350: 20 66 6f 72 20 46 55 4e 43 54 49 4f 4e 20 72 65   for FUNCTION re
f360: 74 75 72 6e 69 6e 67 20 30 20 73 68 6f 75 6c 64  turning 0 should
f370: 20 70 72 65 64 69 63 74 20 77 65 6c 6c 2e 20 20   predict well.  
f380: 49 66 20 69 74 27 73 20 61 73 73 75 6d 65 64 0a  If it's assumed.
f390: 20 20 20 7b 79 70 2c 79 73 69 7a 65 7d 20 77 69     {yp,ysize} wi
f3a0: 6c 6c 20 75 73 75 61 6c 6c 79 20 68 61 76 65 20  ll usually have 
f3b0: 61 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20  a random number 
f3c0: 6f 66 20 62 69 74 73 20 74 68 65 6e 20 74 68 65  of bits then the
f3d0: 20 68 69 67 68 20 6c 69 6d 62 0a 20 20 20 77 6f   high limb.   wo
f3e0: 6e 27 74 20 62 65 20 66 75 6c 6c 20 61 6e 64 20  n't be full and 
f3f0: 61 20 63 61 72 72 79 20 6f 75 74 20 77 69 6c 6c  a carry out will
f400: 20 6f 63 63 75 72 20 61 20 67 6f 6f 64 20 64 65   occur a good de
f410: 61 6c 20 6c 65 73 73 20 74 68 61 6e 20 35 30 25  al less than 50%
f420: 20 6f 66 20 74 68 65 0a 20 20 20 74 69 6d 65 2e   of the.   time.
f430: 0a 0a 20 20 20 79 73 69 7a 65 3d 3d 30 20 69 73  ..   ysize==0 is
f440: 6e 27 74 20 61 20 64 6f 63 75 6d 65 6e 74 65 64  n't a documented
f450: 20 66 65 61 74 75 72 65 2c 20 62 75 74 20 69 73   feature, but is
f460: 20 75 73 65 64 20 69 6e 74 65 72 6e 61 6c 6c 79   used internally
f470: 20 69 6e 20 61 20 66 65 77 0a 20 20 20 70 6c 61   in a few.   pla
f480: 63 65 73 2e 0a 0a 20 20 20 50 72 6f 64 75 63 69  ces...   Produci
f490: 6e 67 20 63 6f 75 74 20 6c 61 73 74 20 73 74 6f  ng cout last sto
f4a0: 70 73 20 69 74 20 75 73 69 6e 67 20 75 70 20 61  ps it using up a
f4b0: 20 72 65 67 69 73 74 65 72 20 64 75 72 69 6e 67   register during
f4c0: 20 74 68 65 20 6d 61 69 6e 20 70 61 72 74 20 6f   the main part o
f4d0: 66 0a 20 20 20 74 68 65 20 63 61 6c 63 75 6c 61  f.   the calcula
f4e0: 74 69 6f 6e 2c 20 74 68 6f 75 67 68 20 67 63 63  tion, though gcc
f4f0: 20 28 61 73 20 6f 66 20 33 2e 30 29 20 6f 6e 20   (as of 3.0) on 
f500: 61 6e 20 22 69 66 20 28 6d 70 6e 5f 61 64 64 20  an "if (mpn_add 
f510: 28 2e 2e 2e 29 29 22 0a 20 20 20 64 6f 65 73 6e  (...))".   doesn
f520: 27 74 20 73 65 65 6d 20 61 62 6c 65 20 74 6f 20  't seem able to 
f530: 6d 6f 76 65 20 74 68 65 20 74 72 75 65 20 61 6e  move the true an
f540: 64 20 66 61 6c 73 65 20 6c 65 67 73 20 6f 66 20  d false legs of 
f550: 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20  the conditional 
f560: 75 70 0a 20 20 20 74 6f 20 74 68 65 20 74 77 6f  up.   to the two
f570: 20 70 6c 61 63 65 73 20 63 6f 75 74 20 69 73 20   places cout is 
f580: 67 65 6e 65 72 61 74 65 64 2e 20 20 2a 2f 0a 0a  generated.  */..
f590: 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 4e 5f 41  #define __GMPN_A
f5a0: 4f 52 53 28 63 6f 75 74 2c 20 77 70 2c 20 78 70  ORS(cout, wp, xp
f5b0: 2c 20 78 73 69 7a 65 2c 20 79 70 2c 20 79 73 69  , xsize, yp, ysi
f5c0: 7a 65 2c 20 46 55 4e 43 54 49 4f 4e 2c 20 54 45  ze, FUNCTION, TE
f5d0: 53 54 29 20 20 20 20 20 5c 0a 20 20 64 6f 20 7b  ST)     \.  do {
f5e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f620: 20 20 5c 0a 20 20 20 20 6d 70 5f 73 69 7a 65 5f    \.    mp_size_
f630: 74 20 20 5f 5f 67 6d 70 5f 69 3b 20 20 20 20 20  t  __gmp_i;     
f640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f660: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
f670: 20 20 6d 70 5f 6c 69 6d 62 5f 74 20 20 5f 5f 67    mp_limb_t  __g
f680: 6d 70 5f 78 3b 20 20 20 20 20 20 20 20 20 20 20  mp_x;           
f690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6b0: 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20        \.        
f6c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f700: 5c 0a 20 20 20 20 2f 2a 20 41 53 53 45 52 54 20  \.    /* ASSERT 
f710: 28 28 79 73 69 7a 65 29 20 3e 3d 20 30 29 3b 20  ((ysize) >= 0); 
f720: 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20  */              
f730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f740: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20            \.    
f750: 2f 2a 20 41 53 53 45 52 54 20 28 28 78 73 69 7a  /* ASSERT ((xsiz
f760: 65 29 20 3e 3d 20 28 79 73 69 7a 65 29 29 3b 20  e) >= (ysize)); 
f770: 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20  */              
f780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f790: 20 20 20 20 5c 0a 20 20 20 20 2f 2a 20 41 53 53      \.    /* ASS
f7a0: 45 52 54 20 28 4d 50 4e 5f 53 41 4d 45 5f 4f 52  ERT (MPN_SAME_OR
f7b0: 5f 53 45 50 41 52 41 54 45 32 5f 50 20 28 77 70  _SEPARATE2_P (wp
f7c0: 2c 20 78 73 69 7a 65 2c 20 78 70 2c 20 78 73 69  , xsize, xp, xsi
f7d0: 7a 65 29 29 3b 20 2a 2f 20 20 20 20 20 20 5c 0a  ze)); */      \.
f7e0: 20 20 20 20 2f 2a 20 41 53 53 45 52 54 20 28 4d      /* ASSERT (M
f7f0: 50 4e 5f 53 41 4d 45 5f 4f 52 5f 53 45 50 41 52  PN_SAME_OR_SEPAR
f800: 41 54 45 32 5f 50 20 28 77 70 2c 20 78 73 69 7a  ATE2_P (wp, xsiz
f810: 65 2c 20 79 70 2c 20 79 73 69 7a 65 29 29 3b 20  e, yp, ysize)); 
f820: 2a 2f 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20  */      \.      
f830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f870: 20 20 5c 0a 20 20 20 20 5f 5f 67 6d 70 5f 69 20    \.    __gmp_i 
f880: 3d 20 28 79 73 69 7a 65 29 3b 20 20 20 20 20 20  = (ysize);      
f890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f8a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f8b0: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
f8c0: 20 20 69 66 20 28 5f 5f 67 6d 70 5f 69 20 21 3d    if (__gmp_i !=
f8d0: 20 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20   0)             
f8e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f8f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f900: 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 7b 20        \.      { 
f910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f950: 5c 0a 20 20 20 20 20 20 20 20 69 66 20 28 46 55  \.        if (FU
f960: 4e 43 54 49 4f 4e 20 28 77 70 2c 20 78 70 2c 20  NCTION (wp, xp, 
f970: 79 70 2c 20 5f 5f 67 6d 70 5f 69 29 29 20 20 20  yp, __gmp_i))   
f980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f990: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20            \.    
f9a0: 20 20 20 20 20 20 7b 20 20 20 20 20 20 20 20 20        {         
f9b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f9c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f9d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f9e0: 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20      \.          
f9f0: 20 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 20    do            
fa00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
fa30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20                { 
fa40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa70: 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20          \.      
fa80: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 5f 5f            if (__
fa90: 67 6d 70 5f 69 20 3e 3d 20 28 78 73 69 7a 65 29  gmp_i >= (xsize)
faa0: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  )               
fab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fac0: 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20    \.            
fad0: 20 20 20 20 20 20 7b 20 20 20 20 20 20 20 20 20        {         
fae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
faf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb00: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
fb10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb20: 20 20 28 63 6f 75 74 29 20 3d 20 31 3b 20 20 20    (cout) = 1;   
fb30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb50: 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20        \.        
fb60: 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f              goto
fb70: 20 5f 5f 67 6d 70 5f 64 6f 6e 65 3b 20 20 20 20   __gmp_done;    
fb80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fba0: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  \.              
fbb0: 20 20 20 20 7d 20 20 20 20 20 20 20 20 20 20 20      }           
fbc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fbd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fbe0: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20            \.    
fbf0: 20 20 20 20 20 20 20 20 20 20 20 20 5f 5f 67 6d              __gm
fc00: 70 5f 78 20 3d 20 28 78 70 29 5b 5f 5f 67 6d 70  p_x = (xp)[__gmp
fc10: 5f 69 5d 3b 20 20 20 20 20 20 20 20 20 20 20 20  _i];            
fc20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fc30: 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20      \.          
fc40: 20 20 20 20 7d 20 20 20 20 20 20 20 20 20 20 20      }           
fc50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fc60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fc70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
fc80: 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c              whil
fc90: 65 20 28 54 45 53 54 29 3b 20 20 20 20 20 20 20  e (TEST);       
fca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fcb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fcc0: 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20          \.      
fcd0: 20 20 20 20 7d 20 20 20 20 20 20 20 20 20 20 20      }           
fce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fcf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd10: 20 20 5c 0a 20 20 20 20 20 20 7d 20 20 20 20 20    \.      }     
fd20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd50: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
fd60: 20 20 69 66 20 28 28 77 70 29 20 21 3d 20 28 78    if ((wp) != (x
fd70: 70 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20  p))             
fd80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fda0: 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 5f 5f        \.      __
fdb0: 47 4d 50 4e 5f 43 4f 50 59 5f 52 45 53 54 20 28  GMPN_COPY_REST (
fdc0: 77 70 2c 20 78 70 2c 20 78 73 69 7a 65 2c 20 5f  wp, xp, xsize, _
fdd0: 5f 67 6d 70 5f 69 29 3b 20 20 20 20 20 20 20 20  _gmp_i);        
fde0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fdf0: 5c 0a 20 20 20 20 28 63 6f 75 74 29 20 3d 20 30  \.    (cout) = 0
fe00: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
fe10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe30: 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 5f 5f            \.  __
fe40: 67 6d 70 5f 64 6f 6e 65 3a 20 20 20 20 20 20 20  gmp_done:       
fe50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe80: 20 20 20 20 5c 0a 20 20 20 20 3b 20 20 20 20 20      \.    ;     
fe90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
feb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
fed0: 20 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 0a 23    } while (0)..#
fee0: 64 65 66 69 6e 65 20 5f 5f 47 4d 50 4e 5f 41 44  define __GMPN_AD
fef0: 44 28 63 6f 75 74 2c 20 77 70 2c 20 78 70 2c 20  D(cout, wp, xp, 
ff00: 78 73 69 7a 65 2c 20 79 70 2c 20 79 73 69 7a 65  xsize, yp, ysize
ff10: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c  )              \
ff20: 0a 20 20 5f 5f 47 4d 50 4e 5f 41 4f 52 53 20 28  .  __GMPN_AORS (
ff30: 63 6f 75 74 2c 20 77 70 2c 20 78 70 2c 20 78 73  cout, wp, xp, xs
ff40: 69 7a 65 2c 20 79 70 2c 20 79 73 69 7a 65 2c 20  ize, yp, ysize, 
ff50: 6d 70 6e 5f 61 64 64 5f 6e 2c 20 20 20 20 20 20  mpn_add_n,      
ff60: 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   \.             
ff70: 20 20 28 28 28 77 70 29 5b 5f 5f 67 6d 70 5f 69    (((wp)[__gmp_i
ff80: 2b 2b 5d 20 3d 20 28 5f 5f 67 6d 70 5f 78 20 2b  ++] = (__gmp_x +
ff90: 20 31 29 20 26 20 47 4d 50 5f 4e 55 4d 42 5f 4d   1) & GMP_NUMB_M
ffa0: 41 53 4b 29 20 3d 3d 20 30 29 29 0a 23 64 65 66  ASK) == 0)).#def
ffb0: 69 6e 65 20 5f 5f 47 4d 50 4e 5f 53 55 42 28 63  ine __GMPN_SUB(c
ffc0: 6f 75 74 2c 20 77 70 2c 20 78 70 2c 20 78 73 69  out, wp, xp, xsi
ffd0: 7a 65 2c 20 79 70 2c 20 79 73 69 7a 65 29 20 20  ze, yp, ysize)  
ffe0: 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
fff0: 5f 5f 47 4d 50 4e 5f 41 4f 52 53 20 28 63 6f 75  __GMPN_AORS (cou
10000 74 2c 20 77 70 2c 20 78 70 2c 20 78 73 69 7a 65  t, wp, xp, xsize
10010 2c 20 79 70 2c 20 79 73 69 7a 65 2c 20 6d 70 6e  , yp, ysize, mpn
10020 5f 73 75 62 5f 6e 2c 20 20 20 20 20 20 20 5c 0a  _sub_n,       \.
10030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
10040 28 28 77 70 29 5b 5f 5f 67 6d 70 5f 69 2b 2b 5d  ((wp)[__gmp_i++]
10050 20 3d 20 28 5f 5f 67 6d 70 5f 78 20 2d 20 31 29   = (__gmp_x - 1)
10060 20 26 20 47 4d 50 5f 4e 55 4d 42 5f 4d 41 53 4b   & GMP_NUMB_MASK
10070 29 2c 20 5f 5f 67 6d 70 5f 78 20 3d 3d 20 30 29  ), __gmp_x == 0)
10080 29 0a 0a 0a 2f 2a 20 54 68 65 20 75 73 65 20 6f  ).../* The use o
10090 66 20 5f 5f 67 6d 70 5f 69 20 69 6e 64 65 78 69  f __gmp_i indexi
100a0 6e 67 20 69 73 20 64 65 73 69 67 6e 65 64 20 74  ng is designed t
100b0 6f 20 65 6e 73 75 72 65 20 61 20 63 6f 6d 70 69  o ensure a compi
100c0 6c 65 20 74 69 6d 65 20 73 72 63 3d 3d 64 73 74  le time src==dst
100d0 0a 20 20 20 72 65 6d 61 69 6e 73 20 6e 69 63 65  .   remains nice
100e0 20 61 6e 64 20 63 6c 65 61 72 20 74 6f 20 74 68   and clear to th
100f0 65 20 63 6f 6d 70 69 6c 65 72 2c 20 73 6f 20 74  e compiler, so t
10100 68 61 74 20 5f 5f 47 4d 50 4e 5f 43 4f 50 59 5f  hat __GMPN_COPY_
10110 52 45 53 54 20 63 61 6e 0a 20 20 20 64 69 73 61  REST can.   disa
10120 70 70 65 61 72 2c 20 61 6e 64 20 74 68 65 20 6c  ppear, and the l
10130 6f 61 64 2f 61 64 64 2f 73 74 6f 72 65 20 67 65  oad/add/store ge
10140 74 73 20 61 20 63 68 61 6e 63 65 20 74 6f 20 62  ts a chance to b
10150 65 63 6f 6d 65 20 61 0a 20 20 20 72 65 61 64 2d  ecome a.   read-
10160 6d 6f 64 69 66 79 2d 77 72 69 74 65 20 6f 6e 20  modify-write on 
10170 43 49 53 43 20 43 50 55 73 2e 0a 0a 20 20 20 41  CISC CPUs...   A
10180 6c 74 65 72 6e 61 74 69 76 65 73 3a 0a 0a 20 20  lternatives:..  
10190 20 55 73 69 6e 67 20 61 20 70 61 69 72 20 6f 66   Using a pair of
101a0 20 70 6f 69 6e 74 65 72 73 20 69 6e 73 74 65 61   pointers instea
101b0 64 20 6f 66 20 69 6e 64 65 78 69 6e 67 20 77 6f  d of indexing wo
101c0 75 6c 64 20 62 65 20 70 6f 73 73 69 62 6c 65 2c  uld be possible,
101d0 20 62 75 74 20 67 63 63 0a 20 20 20 69 73 6e 27   but gcc.   isn'
101e0 74 20 61 62 6c 65 20 74 6f 20 72 65 63 6f 67 6e  t able to recogn
101f0 69 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65  ise compile-time
10200 20 73 72 63 3d 3d 64 73 74 20 69 6e 20 74 68 61   src==dst in tha
10210 74 20 63 61 73 65 2c 20 65 76 65 6e 20 77 68 65  t case, even whe
10220 6e 20 74 68 65 0a 20 20 20 70 6f 69 6e 74 65 72  n the.   pointer
10230 73 20 61 72 65 20 69 6e 63 72 65 6d 65 6e 74 65  s are incremente
10240 64 20 6d 6f 72 65 20 6f 72 20 6c 65 73 73 20 74  d more or less t
10250 6f 67 65 74 68 65 72 2e 20 20 4f 74 68 65 72 20  ogether.  Other 
10260 63 6f 6d 70 69 6c 65 72 73 20 77 6f 75 6c 64 0a  compilers would.
10270 20 20 20 76 65 72 79 20 6c 69 6b 65 6c 79 20 68     very likely h
10280 61 76 65 20 73 69 6d 69 6c 61 72 20 64 69 66 66  ave similar diff
10290 69 63 75 6c 74 79 2e 0a 0a 20 20 20 67 63 63 20  iculty...   gcc 
102a0 63 6f 75 6c 64 20 75 73 65 20 22 69 66 20 28 5f  could use "if (_
102b0 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e 73 74 61 6e  _builtin_constan
102c0 74 5f 70 28 73 72 63 3d 3d 64 73 74 29 20 26 26  t_p(src==dst) &&
102d0 20 73 72 63 3d 3d 64 73 74 29 22 20 6f 72 0a 20   src==dst)" or. 
102e0 20 20 73 69 6d 69 6c 61 72 20 74 6f 20 64 65 74    similar to det
102f0 65 63 74 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69  ect a compile-ti
10300 6d 65 20 73 72 63 3d 3d 64 73 74 2e 20 20 54 68  me src==dst.  Th
10310 69 73 20 77 6f 72 6b 73 20 6e 69 63 65 6c 79 20  is works nicely 
10320 6f 6e 20 67 63 63 0a 20 20 20 32 2e 39 35 2e 78  on gcc.   2.95.x
10330 2c 20 69 74 27 73 20 6e 6f 74 20 67 6f 6f 64 20  , it's not good 
10340 6f 6e 20 67 63 63 20 33 2e 30 20 77 68 65 72 65  on gcc 3.0 where
10350 20 5f 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e 73 74   __builtin_const
10360 61 6e 74 5f 70 28 70 3d 3d 70 29 20 73 65 65 6d  ant_p(p==p) seem
10370 73 0a 20 20 20 74 6f 20 62 65 20 61 6c 77 61 79  s.   to be alway
10380 73 20 66 61 6c 73 65 2c 20 66 6f 72 20 61 20 70  s false, for a p
10390 6f 69 6e 74 65 72 20 70 2e 20 20 42 75 74 20 74  ointer p.  But t
103a0 68 65 20 63 75 72 72 65 6e 74 20 63 6f 64 65 20  he current code 
103b0 66 6f 72 6d 20 73 65 65 6d 73 0a 20 20 20 67 6f  form seems.   go
103c0 6f 64 20 65 6e 6f 75 67 68 20 66 6f 72 20 73 72  od enough for sr
103d0 63 3d 3d 64 73 74 20 61 6e 79 77 61 79 2e 0a 0a  c==dst anyway...
103e0 20 20 20 67 63 63 20 6f 6e 20 78 38 36 20 61 73     gcc on x86 as
103f0 20 75 73 75 61 6c 20 64 6f 65 73 6e 27 74 20 67   usual doesn't g
10400 69 76 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79  ive particularly
10410 20 67 6f 6f 64 20 66 6c 61 67 73 20 68 61 6e 64   good flags hand
10420 6c 69 6e 67 20 66 6f 72 20 74 68 65 0a 20 20 20  ling for the.   
10430 63 61 72 72 79 2f 62 6f 72 72 6f 77 20 64 65 74  carry/borrow det
10440 65 63 74 69 6f 6e 2e 20 20 49 74 27 73 20 74 65  ection.  It's te
10450 6d 70 74 69 6e 67 20 74 6f 20 77 61 6e 74 20 73  mpting to want s
10460 6f 6d 65 20 6d 75 6c 74 69 20 69 6e 73 74 72 75  ome multi instru
10470 63 74 69 6f 6e 20 61 73 6d 0a 20 20 20 62 6c 6f  ction asm.   blo
10480 63 6b 73 20 74 6f 20 68 65 6c 70 20 69 74 2c 20  cks to help it, 
10490 61 6e 64 20 74 68 69 73 20 77 61 73 20 74 72 69  and this was tri
104a0 65 64 2c 20 62 75 74 20 69 6e 20 74 72 75 74 68  ed, but in truth
104b0 20 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 20   there's only a 
104c0 66 65 77 0a 20 20 20 69 6e 73 74 72 75 63 74 69  few.   instructi
104d0 6f 6e 73 20 74 6f 20 73 61 76 65 20 61 6e 64 20  ons to save and 
104e0 61 6e 79 20 67 61 69 6e 20 69 73 20 61 6c 6c 20  any gain is all 
104f0 74 6f 6f 20 65 61 73 69 6c 79 20 6c 6f 73 74 20  too easily lost 
10500 62 79 20 72 65 67 69 73 74 65 72 0a 20 20 20 6a  by register.   j
10510 75 67 67 6c 69 6e 67 20 73 65 74 74 69 6e 67 20  uggling setting 
10520 75 70 20 66 6f 72 20 74 68 65 20 61 73 6d 2e 20  up for the asm. 
10530 20 2a 2f 0a 0a 23 69 66 20 47 4d 50 5f 4e 41 49   */..#if GMP_NAI
10540 4c 5f 42 49 54 53 20 3d 3d 20 30 0a 23 64 65 66  L_BITS == 0.#def
10550 69 6e 65 20 5f 5f 47 4d 50 4e 5f 41 4f 52 53 5f  ine __GMPN_AORS_
10560 31 28 63 6f 75 74 2c 20 64 73 74 2c 20 73 72 63  1(cout, dst, src
10570 2c 20 6e 2c 20 76 2c 20 4f 50 2c 20 43 42 29 09  , n, v, OP, CB).
10580 09 5c 0a 20 20 64 6f 20 7b 09 09 09 09 09 09 09  .\.  do {.......
10590 09 5c 0a 20 20 20 20 6d 70 5f 73 69 7a 65 5f 74  .\.    mp_size_t
105a0 20 20 5f 5f 67 6d 70 5f 69 3b 09 09 09 09 09 09    __gmp_i;......
105b0 5c 0a 20 20 20 20 6d 70 5f 6c 69 6d 62 5f 74 20  \.    mp_limb_t 
105c0 20 5f 5f 67 6d 70 5f 78 2c 20 5f 5f 67 6d 70 5f   __gmp_x, __gmp_
105d0 72 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  r;              
105e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
105f0 20 20 5c 0a 09 09 09 09 09 09 09 09 5c 0a 20 20    \.........\.  
10600 20 20 2f 2a 20 41 53 53 45 52 54 20 28 28 6e 29    /* ASSERT ((n)
10610 20 3e 3d 20 31 29 3b 20 2a 2f 09 09 09 09 09 5c   >= 1); */.....\
10620 0a 20 20 20 20 2f 2a 20 41 53 53 45 52 54 20 28  .    /* ASSERT (
10630 4d 50 4e 5f 53 41 4d 45 5f 4f 52 5f 53 45 50 41  MPN_SAME_OR_SEPA
10640 52 41 54 45 5f 50 20 28 64 73 74 2c 20 73 72 63  RATE_P (dst, src
10650 2c 20 6e 29 29 3b 20 2a 2f 09 5c 0a 09 09 09 09  , n)); */.\.....
10660 09 09 09 09 5c 0a 20 20 20 20 5f 5f 67 6d 70 5f  ....\.    __gmp_
10670 78 20 3d 20 28 73 72 63 29 5b 30 5d 3b 09 09 09  x = (src)[0];...
10680 09 09 09 5c 0a 20 20 20 20 5f 5f 67 6d 70 5f 72  ...\.    __gmp_r
10690 20 3d 20 5f 5f 67 6d 70 5f 78 20 4f 50 20 28 76   = __gmp_x OP (v
106a0 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  );              
106b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
106c0 20 20 20 20 20 5c 0a 20 20 20 20 28 64 73 74 29       \.    (dst)
106d0 5b 30 5d 20 3d 20 5f 5f 67 6d 70 5f 72 3b 09 09  [0] = __gmp_r;..
106e0 09 09 09 09 5c 0a 20 20 20 20 69 66 20 28 43 42  ....\.    if (CB
106f0 20 28 5f 5f 67 6d 70 5f 72 2c 20 5f 5f 67 6d 70   (__gmp_r, __gmp
10700 5f 78 2c 20 28 76 29 29 29 20 20 20 20 20 20 20  _x, (v)))       
10710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10720 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 7b 09        \.      {.
10730 09 09 09 09 09 09 09 5c 0a 09 28 63 6f 75 74 29  .......\..(cout)
10740 20 3d 20 31 3b 09 09 09 09 09 09 5c 0a 09 66 6f   = 1;......\..fo
10750 72 20 28 5f 5f 67 6d 70 5f 69 20 3d 20 31 3b 20  r (__gmp_i = 1; 
10760 5f 5f 67 6d 70 5f 69 20 3c 20 28 6e 29 3b 29 20  __gmp_i < (n);) 
10770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10780 20 20 20 20 20 20 5c 0a 09 20 20 7b 09 09 09 09        \..  {....
10790 09 09 09 5c 0a 09 20 20 20 20 5f 5f 67 6d 70 5f  ...\..    __gmp_
107a0 78 20 3d 20 28 73 72 63 29 5b 5f 5f 67 6d 70 5f  x = (src)[__gmp_
107b0 69 5d 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  i];             
107c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
107d0 09 20 20 20 20 5f 5f 67 6d 70 5f 72 20 3d 20 5f  .    __gmp_r = _
107e0 5f 67 6d 70 5f 78 20 4f 50 20 31 3b 20 20 20 20  _gmp_x OP 1;    
107f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10800 20 20 20 20 20 20 20 20 20 5c 0a 09 20 20 20 20           \..    
10810 28 64 73 74 29 5b 5f 5f 67 6d 70 5f 69 5d 20 3d  (dst)[__gmp_i] =
10820 20 5f 5f 67 6d 70 5f 72 3b 20 20 20 20 20 20 20   __gmp_r;       
10830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10840 20 20 20 20 5c 0a 09 20 20 20 20 2b 2b 5f 5f 67      \..    ++__g
10850 6d 70 5f 69 3b 09 09 09 09 09 09 5c 0a 09 20 20  mp_i;......\..  
10860 20 20 69 66 20 28 21 43 42 20 28 5f 5f 67 6d 70    if (!CB (__gmp
10870 5f 72 2c 20 5f 5f 67 6d 70 5f 78 2c 20 31 29 29  _r, __gmp_x, 1))
10880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10890 20 20 20 20 20 20 5c 0a 09 20 20 20 20 20 20 7b        \..      {
108a0 09 09 09 09 09 09 09 5c 0a 09 09 69 66 20 28 28  .......\...if ((
108b0 73 72 63 29 20 21 3d 20 28 64 73 74 29 29 09 09  src) != (dst))..
108c0 09 09 5c 0a 09 09 20 20 5f 5f 47 4d 50 4e 5f 43  ..\...  __GMPN_C
108d0 4f 50 59 5f 52 45 53 54 20 28 64 73 74 2c 20 73  OPY_REST (dst, s
108e0 72 63 2c 20 6e 2c 20 5f 5f 67 6d 70 5f 69 29 3b  rc, n, __gmp_i);
108f0 20 20 20 20 20 20 5c 0a 09 09 28 63 6f 75 74 29        \...(cout)
10900 20 3d 20 30 3b 09 09 09 09 09 5c 0a 09 09 62 72   = 0;.....\...br
10910 65 61 6b 3b 09 09 09 09 09 09 5c 0a 09 20 20 20  eak;......\..   
10920 20 20 20 7d 09 09 09 09 09 09 09 5c 0a 09 20 20     }.......\..  
10930 7d 09 09 09 09 09 09 09 5c 0a 20 20 20 20 20 20  }.......\.      
10940 7d 09 09 09 09 09 09 09 09 5c 0a 20 20 20 20 65  }........\.    e
10950 6c 73 65 09 09 09 09 09 09 09 5c 0a 20 20 20 20  lse.......\.    
10960 20 20 7b 09 09 09 09 09 09 09 09 5c 0a 09 69 66    {........\..if
10970 20 28 28 73 72 63 29 20 21 3d 20 28 64 73 74 29   ((src) != (dst)
10980 29 09 09 09 09 09 5c 0a 09 20 20 5f 5f 47 4d 50  ).....\..  __GMP
10990 4e 5f 43 4f 50 59 5f 52 45 53 54 20 28 64 73 74  N_COPY_REST (dst
109a0 2c 20 73 72 63 2c 20 6e 2c 20 31 29 3b 09 09 09  , src, n, 1);...
109b0 5c 0a 09 28 63 6f 75 74 29 20 3d 20 30 3b 09 09  \..(cout) = 0;..
109c0 09 09 09 09 5c 0a 20 20 20 20 20 20 7d 09 09 09  ....\.      }...
109d0 09 09 09 09 09 5c 0a 20 20 7d 20 77 68 69 6c 65  .....\.  } while
109e0 20 28 30 29 0a 23 65 6e 64 69 66 0a 0a 23 69 66   (0).#endif..#if
109f0 20 47 4d 50 5f 4e 41 49 4c 5f 42 49 54 53 20 3e   GMP_NAIL_BITS >
10a00 3d 20 31 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d  = 1.#define __GM
10a10 50 4e 5f 41 4f 52 53 5f 31 28 63 6f 75 74 2c 20  PN_AORS_1(cout, 
10a20 64 73 74 2c 20 73 72 63 2c 20 6e 2c 20 76 2c 20  dst, src, n, v, 
10a30 4f 50 2c 20 43 42 29 09 09 5c 0a 20 20 64 6f 20  OP, CB)..\.  do 
10a40 7b 09 09 09 09 09 09 09 09 5c 0a 20 20 20 20 6d  {........\.    m
10a50 70 5f 73 69 7a 65 5f 74 20 20 5f 5f 67 6d 70 5f  p_size_t  __gmp_
10a60 69 3b 09 09 09 09 09 09 5c 0a 20 20 20 20 6d 70  i;......\.    mp
10a70 5f 6c 69 6d 62 5f 74 20 20 5f 5f 67 6d 70 5f 78  _limb_t  __gmp_x
10a80 2c 20 5f 5f 67 6d 70 5f 72 3b 09 09 09 09 5c 0a  , __gmp_r;....\.
10a90 09 09 09 09 09 09 09 09 5c 0a 20 20 20 20 2f 2a  ........\.    /*
10aa0 20 41 53 53 45 52 54 20 28 28 6e 29 20 3e 3d 20   ASSERT ((n) >= 
10ab0 31 29 3b 20 2a 2f 09 09 09 09 09 5c 0a 20 20 20  1); */.....\.   
10ac0 20 2f 2a 20 41 53 53 45 52 54 20 28 4d 50 4e 5f   /* ASSERT (MPN_
10ad0 53 41 4d 45 5f 4f 52 5f 53 45 50 41 52 41 54 45  SAME_OR_SEPARATE
10ae0 5f 50 20 28 64 73 74 2c 20 73 72 63 2c 20 6e 29  _P (dst, src, n)
10af0 29 3b 20 2a 2f 09 5c 0a 09 09 09 09 09 09 09 09  ); */.\.........
10b00 5c 0a 20 20 20 20 5f 5f 67 6d 70 5f 78 20 3d 20  \.    __gmp_x = 
10b10 28 73 72 63 29 5b 30 5d 3b 09 09 09 09 09 09 5c  (src)[0];......\
10b20 0a 20 20 20 20 5f 5f 67 6d 70 5f 72 20 3d 20 5f  .    __gmp_r = _
10b30 5f 67 6d 70 5f 78 20 4f 50 20 28 76 29 3b 09 09  _gmp_x OP (v);..
10b40 09 09 09 5c 0a 20 20 20 20 28 64 73 74 29 5b 30  ...\.    (dst)[0
10b50 5d 20 3d 20 5f 5f 67 6d 70 5f 72 20 26 20 47 4d  ] = __gmp_r & GM
10b60 50 5f 4e 55 4d 42 5f 4d 41 53 4b 3b 09 09 09 09  P_NUMB_MASK;....
10b70 5c 0a 20 20 20 20 69 66 20 28 5f 5f 67 6d 70 5f  \.    if (__gmp_
10b80 72 20 3e 3e 20 47 4d 50 5f 4e 55 4d 42 5f 42 49  r >> GMP_NUMB_BI
10b90 54 53 20 21 3d 20 30 29 09 09 09 09 5c 0a 20 20  TS != 0)....\.  
10ba0 20 20 20 20 7b 09 09 09 09 09 09 09 09 5c 0a 09      {........\..
10bb0 28 63 6f 75 74 29 20 3d 20 31 3b 09 09 09 09 09  (cout) = 1;.....
10bc0 09 5c 0a 09 66 6f 72 20 28 5f 5f 67 6d 70 5f 69  .\..for (__gmp_i
10bd0 20 3d 20 31 3b 20 5f 5f 67 6d 70 5f 69 20 3c 20   = 1; __gmp_i < 
10be0 28 6e 29 3b 29 09 09 09 5c 0a 09 20 20 7b 09 09  (n);)...\..  {..
10bf0 09 09 09 09 09 5c 0a 09 20 20 20 20 5f 5f 67 6d  .....\..    __gm
10c00 70 5f 78 20 3d 20 28 73 72 63 29 5b 5f 5f 67 6d  p_x = (src)[__gm
10c10 70 5f 69 5d 3b 09 09 09 09 5c 0a 09 20 20 20 20  p_i];....\..    
10c20 5f 5f 67 6d 70 5f 72 20 3d 20 5f 5f 67 6d 70 5f  __gmp_r = __gmp_
10c30 78 20 4f 50 20 31 3b 09 09 09 09 5c 0a 09 20 20  x OP 1;....\..  
10c40 20 20 28 64 73 74 29 5b 5f 5f 67 6d 70 5f 69 5d    (dst)[__gmp_i]
10c50 20 3d 20 5f 5f 67 6d 70 5f 72 20 26 20 47 4d 50   = __gmp_r & GMP
10c60 5f 4e 55 4d 42 5f 4d 41 53 4b 3b 09 09 5c 0a 09  _NUMB_MASK;..\..
10c70 20 20 20 20 2b 2b 5f 5f 67 6d 70 5f 69 3b 09 09      ++__gmp_i;..
10c80 09 09 09 09 5c 0a 09 20 20 20 20 69 66 20 28 5f  ....\..    if (_
10c90 5f 67 6d 70 5f 72 20 3e 3e 20 47 4d 50 5f 4e 55  _gmp_r >> GMP_NU
10ca0 4d 42 5f 42 49 54 53 20 3d 3d 20 30 29 09 09 09  MB_BITS == 0)...
10cb0 5c 0a 09 20 20 20 20 20 20 7b 09 09 09 09 09 09  \..      {......
10cc0 09 5c 0a 09 09 69 66 20 28 28 73 72 63 29 20 21  .\...if ((src) !
10cd0 3d 20 28 64 73 74 29 29 09 09 09 09 5c 0a 09 09  = (dst))....\...
10ce0 20 20 5f 5f 47 4d 50 4e 5f 43 4f 50 59 5f 52 45    __GMPN_COPY_RE
10cf0 53 54 20 28 64 73 74 2c 20 73 72 63 2c 20 6e 2c  ST (dst, src, n,
10d00 20 5f 5f 67 6d 70 5f 69 29 3b 09 5c 0a 09 09 28   __gmp_i);.\...(
10d10 63 6f 75 74 29 20 3d 20 30 3b 09 09 09 09 09 5c  cout) = 0;.....\
10d20 0a 09 09 62 72 65 61 6b 3b 09 09 09 09 09 09 5c  ...break;......\
10d30 0a 09 20 20 20 20 20 20 7d 09 09 09 09 09 09 09  ..      }.......
10d40 5c 0a 09 20 20 7d 09 09 09 09 09 09 09 5c 0a 20  \..  }.......\. 
10d50 20 20 20 20 20 7d 09 09 09 09 09 09 09 09 5c 0a       }........\.
10d60 20 20 20 20 65 6c 73 65 09 09 09 09 09 09 09 5c      else.......\
10d70 0a 20 20 20 20 20 20 7b 09 09 09 09 09 09 09 09  .      {........
10d80 5c 0a 09 69 66 20 28 28 73 72 63 29 20 21 3d 20  \..if ((src) != 
10d90 28 64 73 74 29 29 09 09 09 09 09 5c 0a 09 20 20  (dst)).....\..  
10da0 5f 5f 47 4d 50 4e 5f 43 4f 50 59 5f 52 45 53 54  __GMPN_COPY_REST
10db0 20 28 64 73 74 2c 20 73 72 63 2c 20 6e 2c 20 31   (dst, src, n, 1
10dc0 29 3b 09 09 09 5c 0a 09 28 63 6f 75 74 29 20 3d  );...\..(cout) =
10dd0 20 30 3b 09 09 09 09 09 09 5c 0a 20 20 20 20 20   0;......\.     
10de0 20 7d 09 09 09 09 09 09 09 09 5c 0a 20 20 7d 20   }........\.  } 
10df0 77 68 69 6c 65 20 28 30 29 0a 23 65 6e 64 69 66  while (0).#endif
10e00 0a 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50 4e  ..#define __GMPN
10e10 5f 41 44 44 43 42 28 72 2c 78 2c 79 29 20 28 28  _ADDCB(r,x,y) ((
10e20 72 29 20 3c 20 28 79 29 29 0a 23 64 65 66 69 6e  r) < (y)).#defin
10e30 65 20 5f 5f 47 4d 50 4e 5f 53 55 42 43 42 28 72  e __GMPN_SUBCB(r
10e40 2c 78 2c 79 29 20 28 28 78 29 20 3c 20 28 79 29  ,x,y) ((x) < (y)
10e50 29 0a 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50  )..#define __GMP
10e60 4e 5f 41 44 44 5f 31 28 63 6f 75 74 2c 20 64 73  N_ADD_1(cout, ds
10e70 74 2c 20 73 72 63 2c 20 6e 2c 20 76 29 09 20 20  t, src, n, v).  
10e80 20 20 20 5c 0a 20 20 5f 5f 47 4d 50 4e 5f 41 4f     \.  __GMPN_AO
10e90 52 53 5f 31 28 63 6f 75 74 2c 20 64 73 74 2c 20  RS_1(cout, dst, 
10ea0 73 72 63 2c 20 6e 2c 20 76 2c 20 2b 2c 20 5f 5f  src, n, v, +, __
10eb0 47 4d 50 4e 5f 41 44 44 43 42 29 0a 23 64 65 66  GMPN_ADDCB).#def
10ec0 69 6e 65 20 5f 5f 47 4d 50 4e 5f 53 55 42 5f 31  ine __GMPN_SUB_1
10ed0 28 63 6f 75 74 2c 20 64 73 74 2c 20 73 72 63 2c  (cout, dst, src,
10ee0 20 6e 2c 20 76 29 09 20 20 20 20 20 5c 0a 20 20   n, v).     \.  
10ef0 5f 5f 47 4d 50 4e 5f 41 4f 52 53 5f 31 28 63 6f  __GMPN_AORS_1(co
10f00 75 74 2c 20 64 73 74 2c 20 73 72 63 2c 20 6e 2c  ut, dst, src, n,
10f10 20 76 2c 20 2d 2c 20 5f 5f 47 4d 50 4e 5f 53 55   v, -, __GMPN_SU
10f20 42 43 42 29 0a 0a 0a 2f 2a 20 43 6f 6d 70 61 72  BCB).../* Compar
10f30 65 20 7b 78 70 2c 73 69 7a 65 7d 20 61 6e 64 20  e {xp,size} and 
10f40 7b 79 70 2c 73 69 7a 65 7d 2c 20 73 65 74 74 69  {yp,size}, setti
10f50 6e 67 20 22 72 65 73 75 6c 74 22 20 74 6f 20 70  ng "result" to p
10f60 6f 73 69 74 69 76 65 2c 20 7a 65 72 6f 20 6f 72  ositive, zero or
10f70 0a 20 20 20 6e 65 67 61 74 69 76 65 2e 20 20 73  .   negative.  s
10f80 69 7a 65 3d 3d 30 20 69 73 20 61 6c 6c 6f 77 65  ize==0 is allowe
10f90 64 2e 20 20 4f 6e 20 72 61 6e 64 6f 6d 20 64 61  d.  On random da
10fa0 74 61 20 75 73 75 61 6c 6c 79 20 6f 6e 6c 79 20  ta usually only 
10fb0 6f 6e 65 20 6c 69 6d 62 20 77 69 6c 6c 0a 20 20  one limb will.  
10fc0 20 6e 65 65 64 20 74 6f 20 62 65 20 65 78 61 6d   need to be exam
10fd0 69 6e 65 64 20 74 6f 20 67 65 74 20 61 20 72 65  ined to get a re
10fe0 73 75 6c 74 2c 20 73 6f 20 69 74 27 73 20 77 6f  sult, so it's wo
10ff0 72 74 68 20 68 61 76 69 6e 67 20 69 74 20 69 6e  rth having it in
11000 6c 69 6e 65 2e 20 20 2a 2f 0a 23 64 65 66 69 6e  line.  */.#defin
11010 65 20 5f 5f 47 4d 50 4e 5f 43 4d 50 28 72 65 73  e __GMPN_CMP(res
11020 75 6c 74 2c 20 78 70 2c 20 79 70 2c 20 73 69 7a  ult, xp, yp, siz
11030 65 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e)              
11040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11050 20 20 5c 0a 20 20 64 6f 20 7b 20 20 20 20 20 20    \.  do {      
11060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11090 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
110a0 20 20 6d 70 5f 73 69 7a 65 5f 74 20 20 5f 5f 67    mp_size_t  __g
110b0 6d 70 5f 69 3b 20 20 20 20 20 20 20 20 20 20 20  mp_i;           
110c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
110d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
110e0 20 20 20 20 20 20 5c 0a 20 20 20 20 6d 70 5f 6c        \.    mp_l
110f0 69 6d 62 5f 74 20 20 5f 5f 67 6d 70 5f 78 2c 20  imb_t  __gmp_x, 
11100 5f 5f 67 6d 70 5f 79 3b 20 20 20 20 20 20 20 20  __gmp_y;        
11110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11130 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  \.              
11140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11170 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20            \.    
11180 2f 2a 20 41 53 53 45 52 54 20 28 28 73 69 7a 65  /* ASSERT ((size
11190 29 20 3e 3d 20 30 29 3b 20 2a 2f 20 20 20 20 20  ) >= 0); */     
111a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111c0 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20      \.          
111d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
11210 20 20 20 20 28 72 65 73 75 6c 74 29 20 3d 20 30      (result) = 0
11220 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
11230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11250 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 5f 5f          \.    __
11260 67 6d 70 5f 69 20 3d 20 28 73 69 7a 65 29 3b 20  gmp_i = (size); 
11270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
112a0 20 20 5c 0a 20 20 20 20 77 68 69 6c 65 20 28 2d    \.    while (-
112b0 2d 5f 5f 67 6d 70 5f 69 20 3e 3d 20 30 29 20 20  -__gmp_i >= 0)  
112c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
112d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
112e0 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
112f0 20 20 20 20 7b 20 20 20 20 20 20 20 20 20 20 20      {           
11300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11330 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20        \.        
11340 5f 5f 67 6d 70 5f 78 20 3d 20 28 78 70 29 5b 5f  __gmp_x = (xp)[_
11350 5f 67 6d 70 5f 69 5d 3b 20 20 20 20 20 20 20 20  _gmp_i];        
11360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11380 5c 0a 20 20 20 20 20 20 20 20 5f 5f 67 6d 70 5f  \.        __gmp_
11390 79 20 3d 20 28 79 70 29 5b 5f 5f 67 6d 70 5f 69  y = (yp)[__gmp_i
113a0 5d 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ];              
113b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
113c0 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20            \.    
113d0 20 20 20 20 69 66 20 28 5f 5f 67 6d 70 5f 78 20      if (__gmp_x 
113e0 21 3d 20 5f 5f 67 6d 70 5f 79 29 20 20 20 20 20  != __gmp_y)     
113f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11410 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20      \.          
11420 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {               
11430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a                \.
11460 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 43              /* C
11470 61 6e 6e 6f 74 20 75 73 65 20 5f 5f 67 6d 70 5f  annot use __gmp_
11480 78 20 2d 20 5f 5f 67 6d 70 5f 79 2c 20 6d 61 79  x - __gmp_y, may
11490 20 6f 76 65 72 66 6c 6f 77 20 61 6e 20 22 69 6e   overflow an "in
114a0 74 22 20 2a 2f 20 20 20 5c 0a 20 20 20 20 20 20  t" */   \.      
114b0 20 20 20 20 20 20 28 72 65 73 75 6c 74 29 20 3d        (result) =
114c0 20 28 5f 5f 67 6d 70 5f 78 20 3e 20 5f 5f 67 6d   (__gmp_x > __gm
114d0 70 5f 79 20 3f 20 31 20 3a 20 2d 31 29 3b 20 20  p_y ? 1 : -1);  
114e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
114f0 20 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20    \.            
11500 62 72 65 61 6b 3b 20 20 20 20 20 20 20 20 20 20  break;          
11510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11530 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20              \.  
11540 20 20 20 20 20 20 20 20 7d 20 20 20 20 20 20 20          }       
11550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11580 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 7d 20        \.      } 
11590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115d0 5c 0a 20 20 7d 20 77 68 69 6c 65 20 28 30 29 0a  \.  } while (0).
115e0 0a 0a 2f 2a 20 46 6f 72 20 70 6f 77 65 72 20 61  ../* For power a
115f0 6e 64 20 70 6f 77 65 72 70 63 20 77 65 20 77 61  nd powerpc we wa
11600 6e 74 20 61 6e 20 69 6e 6c 69 6e 65 20 6c 64 75  nt an inline ldu
11610 2f 73 74 75 2f 62 64 6e 7a 20 6c 6f 6f 70 20 66  /stu/bdnz loop f
11620 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 20 20 20 4f  or copying..   O
11630 6e 20 70 70 63 36 33 30 20 66 6f 72 20 69 6e 73  n ppc630 for ins
11640 74 61 6e 63 65 20 74 68 69 73 20 69 73 20 6f 70  tance this is op
11650 74 69 6d 61 6c 20 73 69 6e 63 65 20 69 74 20 63  timal since it c
11660 61 6e 20 73 75 73 74 61 69 6e 20 6f 6e 6c 79 20  an sustain only 
11670 31 20 73 74 6f 72 65 0a 20 20 20 70 65 72 20 63  1 store.   per c
11680 79 63 6c 65 2e 0a 0a 20 20 20 67 63 63 20 32 2e  ycle...   gcc 2.
11690 39 35 2e 78 20 28 70 6f 77 65 72 70 63 36 34 20  95.x (powerpc64 
116a0 2d 6d 61 69 78 36 34 2c 20 6f 72 20 70 6f 77 65  -maix64, or powe
116b0 72 70 63 33 32 29 20 64 6f 65 73 6e 27 74 20 72  rpc32) doesn't r
116c0 65 63 6f 67 6e 69 73 65 20 74 68 65 20 22 66 6f  ecognise the "fo
116d0 72 22 0a 20 20 20 6c 6f 6f 70 20 69 6e 20 74 68  r".   loop in th
116e0 65 20 67 65 6e 65 72 69 63 20 63 6f 64 65 20 62  e generic code b
116f0 65 6c 6f 77 20 63 61 6e 20 62 65 63 6f 6d 65 20  elow can become 
11700 6c 64 75 2f 73 74 75 2f 62 64 6e 7a 2e 20 20 54  ldu/stu/bdnz.  T
11710 68 65 20 64 6f 2f 77 68 69 6c 65 0a 20 20 20 68  he do/while.   h
11720 65 72 65 20 68 65 6c 70 73 20 69 74 20 67 65 74  ere helps it get
11730 20 74 6f 20 74 68 61 74 2e 0a 0a 20 20 20 49 6e   to that...   In
11740 20 67 63 63 20 2d 6d 70 6f 77 65 72 70 63 36 34   gcc -mpowerpc64
11750 20 6d 6f 64 65 2c 20 77 69 74 68 6f 75 74 20 2d   mode, without -
11760 6d 61 69 78 36 34 2c 20 5f 5f 73 69 7a 65 20 73  maix64, __size s
11770 65 65 6d 73 20 74 6f 20 77 61 6e 74 20 74 6f 20  eems to want to 
11780 62 65 20 61 6e 0a 20 20 20 6d 70 5f 6c 69 6d 62  be an.   mp_limb
11790 5f 74 20 74 6f 20 67 65 74 20 69 6e 74 6f 20 74  _t to get into t
117a0 68 65 20 63 74 72 20 72 65 67 69 73 74 65 72 2c  he ctr register,
117b0 20 61 6e 64 20 65 76 65 6e 20 74 68 65 6e 20 74   and even then t
117c0 68 65 20 6c 6f 6f 70 20 69 73 20 61 0a 20 20 20  he loop is a.   
117d0 63 75 72 69 6f 75 73 20 6c 64 75 2f 73 74 75 2f  curious ldu/stu/
117e0 62 64 7a 2f 62 2e 20 20 42 75 74 20 6c 65 74 27  bdz/b.  But let'
117f0 73 20 6e 6f 74 20 77 6f 72 72 79 20 61 62 6f 75  s not worry abou
11800 74 20 74 68 61 74 20 75 6e 6c 65 73 73 20 74 68  t that unless th
11810 65 72 65 27 73 20 61 0a 20 20 20 73 79 73 74 65  ere's a.   syste
11820 6d 20 75 73 69 6e 67 20 74 68 69 73 2e 20 20 41  m using this.  A
11830 6e 20 61 73 6d 20 62 6c 6f 63 6b 20 63 6f 75 6c  n asm block coul
11840 64 20 66 6f 72 63 65 20 77 68 61 74 20 77 65 20  d force what we 
11850 77 61 6e 74 20 69 66 20 6e 65 63 65 73 73 61 72  want if necessar
11860 79 2e 0a 0a 20 20 20 78 6c 63 20 33 2e 31 20 61  y...   xlc 3.1 a
11870 6c 72 65 61 64 79 20 67 65 6e 65 72 61 74 65 73  lready generates
11880 20 6c 64 75 2f 73 74 75 2f 62 64 6e 7a 20 66 72   ldu/stu/bdnz fr
11890 6f 6d 20 74 68 65 20 67 65 6e 65 72 69 63 20 43  om the generic C
118a0 2c 20 61 6e 64 20 64 6f 65 73 20 73 6f 0a 20 20  , and does so.  
118b0 20 66 72 6f 6d 20 74 68 69 73 20 6c 6f 6f 70 20   from this loop 
118c0 74 6f 6f 2e 20 20 2a 2f 0a 0a 23 69 66 20 5f 5f  too.  */..#if __
118d0 47 4d 50 5f 48 41 56 45 5f 48 4f 53 54 5f 43 50  GMP_HAVE_HOST_CP
118e0 55 5f 46 41 4d 49 4c 59 5f 70 6f 77 65 72 20 7c  U_FAMILY_power |
118f0 7c 20 5f 5f 47 4d 50 5f 48 41 56 45 5f 48 4f 53  | __GMP_HAVE_HOS
11900 54 5f 43 50 55 5f 46 41 4d 49 4c 59 5f 70 6f 77  T_CPU_FAMILY_pow
11910 65 72 70 63 0a 23 64 65 66 69 6e 65 20 5f 5f 47  erpc.#define __G
11920 4d 50 4e 5f 43 4f 50 59 5f 49 4e 43 52 28 64 73  MPN_COPY_INCR(ds
11930 74 2c 20 73 72 63 2c 20 73 69 7a 65 29 20 20 20  t, src, size)   
11940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11950 20 20 20 20 20 5c 0a 20 20 64 6f 20 7b 20 20 20       \.  do {   
11960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11990 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f 2a 20         \.    /* 
119a0 41 53 53 45 52 54 20 28 28 73 69 7a 65 29 20 3e  ASSERT ((size) >
119b0 3d 20 30 29 3b 20 2a 2f 20 20 20 20 20 20 20 20  = 0); */        
119c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
119d0 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f           \.    /
119e0 2a 20 41 53 53 45 52 54 20 28 4d 50 4e 5f 53 41  * ASSERT (MPN_SA
119f0 4d 45 5f 4f 52 5f 49 4e 43 52 5f 50 20 28 64 73  ME_OR_INCR_P (ds
11a00 74 2c 20 73 72 63 2c 20 73 69 7a 65 29 29 3b 20  t, src, size)); 
11a10 2a 2f 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20  */         \.   
11a20 20 69 66 20 28 28 73 69 7a 65 29 20 21 3d 20 30   if ((size) != 0
11a30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  )               
11a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a50 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20               \. 
11a60 20 20 20 20 20 7b 20 20 20 20 20 20 20 20 20 20       {          
11a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c                 \
11aa0 0a 20 20 20 20 20 20 20 20 6d 70 5f 70 74 72 20  .        mp_ptr 
11ab0 20 20 20 20 5f 5f 67 6d 70 5f 63 6f 70 79 5f 69      __gmp_copy_i
11ac0 6e 63 72 5f 64 73 74 20 3d 20 28 64 73 74 29 20  ncr_dst = (dst) 
11ad0 2d 20 31 3b 20 20 20 20 20 20 20 20 20 20 20 20  - 1;            
11ae0 20 5c 0a 20 20 20 20 20 20 20 20 6d 70 5f 73 72   \.        mp_sr
11af0 63 70 74 72 20 20 5f 5f 67 6d 70 5f 63 6f 70 79  cptr  __gmp_copy
11b00 5f 69 6e 63 72 5f 73 72 63 20 3d 20 28 73 72 63  _incr_src = (src
11b10 29 20 2d 20 31 3b 20 20 20 20 20 20 20 20 20 20  ) - 1;          
11b20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 6d 70 5f     \.        mp_
11b30 73 69 7a 65 5f 74 20 20 5f 5f 67 6d 70 5f 63 6f  size_t  __gmp_co
11b40 70 79 5f 69 6e 63 72 5f 73 69 7a 65 20 3d 20 28  py_incr_size = (
11b50 73 69 7a 65 29 3b 20 20 20 20 20 20 20 20 20 20  size);          
11b60 20 20 20 20 20 5c 0a 20 20 20 20 20 20 20 20 64       \.        d
11b70 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  o               
11b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ba0 20 20 20 20 20 20 20 5c 0a 20 20 20 20 20 20 20         \.       
11bb0 20 20 20 2a 2b 2b 5f 5f 67 6d 70 5f 63 6f 70 79     *++__gmp_copy
11bc0 5f 69 6e 63 72 5f 64 73 74 20 3d 20 2a 2b 2b 5f  _incr_dst = *++_
11bd0 5f 67 6d 70 5f 63 6f 70 79 5f 69 6e 63 72 5f 73  _gmp_copy_incr_s
11be0 72 63 3b 20 20 20 20 20 20 5c 0a 20 20 20 20 20  rc;      \.     
11bf0 20 20 20 77 68 69 6c 65 20 28 2d 2d 5f 5f 67 6d     while (--__gm
11c00 70 5f 63 6f 70 79 5f 69 6e 63 72 5f 73 69 7a 65  p_copy_incr_size
11c10 20 21 3d 20 30 29 3b 20 20 20 20 20 20 20 20 20   != 0);         
11c20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20             \.   
11c30 20 20 20 7d 20 20 20 20 20 20 20 20 20 20 20 20     }            
11c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11c60 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20               \. 
11c70 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 64 65   } while (0).#de
11c80 66 69 6e 65 20 5f 5f 47 4d 50 4e 5f 43 4f 50 59  fine __GMPN_COPY
11c90 28 64 73 74 2c 20 73 72 63 2c 20 73 69 7a 65 29  (dst, src, size)
11ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20               \. 
11cc0 20 64 6f 20 7b 20 20 20 20 20 20 20 20 20 20 20   do {           
11cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c                 \
11d00 0a 20 20 20 20 2f 2a 20 41 53 53 45 52 54 20 28  .    /* ASSERT (
11d10 4d 50 4e 5f 53 41 4d 45 5f 4f 52 5f 53 45 50 41  MPN_SAME_OR_SEPA
11d20 52 41 54 45 5f 50 20 28 64 73 74 2c 20 73 72 63  RATE_P (dst, src
11d30 2c 20 73 69 7a 65 29 29 3b 20 2a 2f 20 20 20 20  , size)); */    
11d40 20 5c 0a 20 20 20 20 5f 5f 47 4d 50 4e 5f 43 4f   \.    __GMPN_CO
11d50 50 59 5f 49 4e 43 52 20 28 64 73 74 2c 20 73 72  PY_INCR (dst, sr
11d60 63 2c 20 73 69 7a 65 29 3b 20 20 20 20 20 20 20  c, size);       
11d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d80 20 20 20 5c 0a 20 20 7d 20 77 68 69 6c 65 20 28     \.  } while (
11d90 30 29 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64  0).#endif..#if d
11da0 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50 4e 5f 43  efined (__GMPN_C
11db0 4f 50 59 29 20 26 26 20 21 20 64 65 66 69 6e 65  OPY) && ! define
11dc0 64 20 28 5f 5f 47 4d 50 4e 5f 43 4f 50 59 5f 52  d (__GMPN_COPY_R
11dd0 45 53 54 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47  EST).#define __G
11de0 4d 50 4e 5f 43 4f 50 59 5f 52 45 53 54 28 64 73  MPN_COPY_REST(ds
11df0 74 2c 20 73 72 63 2c 20 73 69 7a 65 2c 20 73 74  t, src, size, st
11e00 61 72 74 29 20 20 20 20 20 20 20 20 20 20 20 20  art)            
11e10 20 20 20 20 20 5c 0a 20 20 64 6f 20 7b 20 20 20       \.  do {   
11e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e50 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f 2a 20         \.    /* 
11e60 41 53 53 45 52 54 20 28 28 73 74 61 72 74 29 20  ASSERT ((start) 
11e70 3e 3d 20 30 29 3b 20 2a 2f 20 20 20 20 20 20 20  >= 0); */       
11e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e90 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f           \.    /
11ea0 2a 20 41 53 53 45 52 54 20 28 28 73 74 61 72 74  * ASSERT ((start
11eb0 29 20 3c 3d 20 28 73 69 7a 65 29 29 3b 20 2a 2f  ) <= (size)); */
11ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ed0 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20             \.   
11ee0 20 5f 5f 47 4d 50 4e 5f 43 4f 50 59 20 28 28 64   __GMPN_COPY ((d
11ef0 73 74 29 2b 28 73 74 61 72 74 29 2c 20 28 73 72  st)+(start), (sr
11f00 63 29 2b 28 73 74 61 72 74 29 2c 20 28 73 69 7a  c)+(start), (siz
11f10 65 29 2d 28 73 74 61 72 74 29 29 3b 20 5c 0a 20  e)-(start)); \. 
11f20 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 65 6e   } while (0).#en
11f30 64 69 66 0a 0a 2f 2a 20 43 6f 70 79 20 7b 73 72  dif../* Copy {sr
11f40 63 2c 73 69 7a 65 7d 20 74 6f 20 7b 64 73 74 2c  c,size} to {dst,
11f50 73 69 7a 65 7d 2c 20 73 74 61 72 74 69 6e 67 20  size}, starting 
11f60 61 74 20 22 73 74 61 72 74 22 2e 20 20 54 68 69  at "start".  Thi
11f70 73 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f  s is designed to
11f80 0a 20 20 20 6b 65 65 70 20 74 68 65 20 69 6e 64  .   keep the ind
11f90 65 78 69 6e 67 20 64 73 74 5b 6a 5d 20 61 6e 64  exing dst[j] and
11fa0 20 73 72 63 5b 6a 5d 20 6e 69 63 65 20 61 6e 64   src[j] nice and
11fb0 20 73 69 6d 70 6c 65 20 66 6f 72 20 5f 5f 47 4d   simple for __GM
11fc0 50 4e 5f 41 44 44 5f 31 2c 0a 20 20 20 5f 5f 47  PN_ADD_1,.   __G
11fd0 4d 50 4e 5f 41 44 44 2c 20 65 74 63 2e 20 20 2a  MPN_ADD, etc.  *
11fe0 2f 0a 23 69 66 20 21 20 64 65 66 69 6e 65 64 20  /.#if ! defined 
11ff0 28 5f 5f 47 4d 50 4e 5f 43 4f 50 59 5f 52 45 53  (__GMPN_COPY_RES
12000 54 29 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d 50  T).#define __GMP
12010 4e 5f 43 4f 50 59 5f 52 45 53 54 28 64 73 74 2c  N_COPY_REST(dst,
12020 20 73 72 63 2c 20 73 69 7a 65 2c 20 73 74 61 72   src, size, star
12030 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20  t)              
12040 20 20 20 5c 0a 20 20 64 6f 20 7b 20 20 20 20 20     \.  do {     
12050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12080 20 20 20 20 20 5c 0a 20 20 20 20 6d 70 5f 73 69       \.    mp_si
12090 7a 65 5f 74 20 5f 5f 67 6d 70 5f 6a 3b 20 20 20  ze_t __gmp_j;   
120a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
120b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
120c0 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f 2a 20         \.    /* 
120d0 41 53 53 45 52 54 20 28 28 73 69 7a 65 29 20 3e  ASSERT ((size) >
120e0 3d 20 30 29 3b 20 2a 2f 20 20 20 20 20 20 20 20  = 0); */        
120f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12100 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20 20 2f           \.    /
12110 2a 20 41 53 53 45 52 54 20 28 28 73 74 61 72 74  * ASSERT ((start
12120 29 20 3e 3d 20 30 29 3b 20 2a 2f 20 20 20 20 20  ) >= 0); */     
12130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12140 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20 20 20             \.   
12150 20 2f 2a 20 41 53 53 45 52 54 20 28 28 73 74 61   /* ASSERT ((sta
12160 72 74 29 20 3c 3d 20 28 73 69 7a 65 29 29 3b 20  rt) <= (size)); 
12170 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20  */              
12180 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 0a 20               \. 
12190 20 20 20 2f 2a 20 41 53 53 45 52 54 20 28 4d 50     /* ASSERT (MP
121a0 4e 5f 53 41 4d 45 5f 4f 52 5f 53 45 50 41 52 41  N_SAME_OR_SEPARA
121b0 54 45 5f 50 20 28 64 73 74 2c 20 73 72 63 2c 20  TE_P (dst, src, 
121c0 73 69 7a 65 29 29 3b 20 2a 2f 20 20 20 20 20 5c  size)); */     \
121d0 0a 20 20 20 20 66 6f 72 20 28 5f 5f 67 6d 70 5f  .    for (__gmp_
121e0 6a 20 3d 20 28 73 74 61 72 74 29 3b 20 5f 5f 67  j = (start); __g
121f0 6d 70 5f 6a 20 3c 20 28 73 69 7a 65 29 3b 20 5f  mp_j < (size); _
12200 5f 67 6d 70 5f 6a 2b 2b 29 20 20 20 20 20 20 20  _gmp_j++)       
12210 20 5c 0a 20 20 20 20 20 20 28 64 73 74 29 5b 5f   \.      (dst)[_
12220 5f 67 6d 70 5f 6a 5d 20 3d 20 28 73 72 63 29 5b  _gmp_j] = (src)[
12230 5f 5f 67 6d 70 5f 6a 5d 3b 20 20 20 20 20 20 20  __gmp_j];       
12240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12250 20 20 20 5c 0a 20 20 7d 20 77 68 69 6c 65 20 28     \.  } while (
12260 30 29 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 45 6e  0).#endif../* En
12270 68 61 6e 63 65 6d 65 6e 74 3a 20 55 73 65 20 73  hancement: Use s
12280 6f 6d 65 20 6f 66 20 74 68 65 20 73 6d 61 72 74  ome of the smart
12290 65 72 20 63 6f 64 65 20 66 72 6f 6d 20 67 6d 70  er code from gmp
122a0 2d 69 6d 70 6c 2e 68 2e 20 20 4d 61 79 62 65 20  -impl.h.  Maybe 
122b0 75 73 65 0a 20 20 20 6d 70 6e 5f 63 6f 70 79 69  use.   mpn_copyi
122c0 20 69 66 20 74 68 65 72 65 27 73 20 61 20 6e 61   if there's a na
122d0 74 69 76 65 20 76 65 72 73 69 6f 6e 2c 20 61 6e  tive version, an
122e0 64 20 69 66 20 77 65 20 64 6f 6e 27 74 20 6d 69  d if we don't mi
122f0 6e 64 20 64 65 6d 61 6e 64 69 6e 67 0a 20 20 20  nd demanding.   
12300 62 69 6e 61 72 79 20 63 6f 6d 70 61 74 69 62 69  binary compatibi
12310 6c 69 74 79 20 66 6f 72 20 69 74 20 28 6f 6e 20  lity for it (on 
12320 74 61 72 67 65 74 73 20 77 68 69 63 68 20 75 73  targets which us
12330 65 20 69 74 29 2e 20 20 2a 2f 0a 0a 23 69 66 20  e it).  */..#if 
12340 21 20 64 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50  ! defined (__GMP
12350 4e 5f 43 4f 50 59 29 0a 23 64 65 66 69 6e 65 20  N_COPY).#define 
12360 5f 5f 47 4d 50 4e 5f 43 4f 50 59 28 64 73 74 2c  __GMPN_COPY(dst,
12370 20 73 72 63 2c 20 73 69 7a 65 29 20 20 20 5f 5f   src, size)   __
12380 47 4d 50 4e 5f 43 4f 50 59 5f 52 45 53 54 20 28  GMPN_COPY_REST (
12390 64 73 74 2c 20 73 72 63 2c 20 73 69 7a 65 2c 20  dst, src, size, 
123a0 30 29 0a 23 65 6e 64 69 66 0a 0a 0a 23 69 66 20  0).#endif...#if 
123b0 64 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f 45  defined (__GMP_E
123c0 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c 7c  XTERN_INLINE) ||
123d0 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 6e   __GMP_FORCE_mpn
123e0 5f 61 64 64 0a 23 69 66 20 21 20 5f 5f 47 4d 50  _add.#if ! __GMP
123f0 5f 46 4f 52 43 45 5f 6d 70 6e 5f 61 64 64 0a 5f  _FORCE_mpn_add._
12400 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49  _GMP_EXTERN_INLI
12410 4e 45 0a 23 65 6e 64 69 66 0a 6d 70 5f 6c 69 6d  NE.#endif.mp_lim
12420 62 5f 74 0a 6d 70 6e 5f 61 64 64 20 28 6d 70 5f  b_t.mpn_add (mp_
12430 70 74 72 20 5f 5f 67 6d 70 5f 77 70 2c 20 6d 70  ptr __gmp_wp, mp
12440 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70 5f 78 70  _srcptr __gmp_xp
12450 2c 20 6d 70 5f 73 69 7a 65 5f 74 20 5f 5f 67 6d  , mp_size_t __gm
12460 70 5f 78 73 69 7a 65 2c 20 6d 70 5f 73 72 63 70  p_xsize, mp_srcp
12470 74 72 20 5f 5f 67 6d 70 5f 79 70 2c 20 6d 70 5f  tr __gmp_yp, mp_
12480 73 69 7a 65 5f 74 20 5f 5f 67 6d 70 5f 79 73 69  size_t __gmp_ysi
12490 7a 65 29 0a 7b 0a 20 20 6d 70 5f 6c 69 6d 62 5f  ze).{.  mp_limb_
124a0 74 20 20 5f 5f 67 6d 70 5f 63 3b 0a 20 20 5f 5f  t  __gmp_c;.  __
124b0 47 4d 50 4e 5f 41 44 44 20 28 5f 5f 67 6d 70 5f  GMPN_ADD (__gmp_
124c0 63 2c 20 5f 5f 67 6d 70 5f 77 70 2c 20 5f 5f 67  c, __gmp_wp, __g
124d0 6d 70 5f 78 70 2c 20 5f 5f 67 6d 70 5f 78 73 69  mp_xp, __gmp_xsi
124e0 7a 65 2c 20 5f 5f 67 6d 70 5f 79 70 2c 20 5f 5f  ze, __gmp_yp, __
124f0 67 6d 70 5f 79 73 69 7a 65 29 3b 0a 20 20 72 65  gmp_ysize);.  re
12500 74 75 72 6e 20 5f 5f 67 6d 70 5f 63 3b 0a 7d 0a  turn __gmp_c;.}.
12510 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 69  #endif..#if defi
12520 6e 65 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45 52  ned (__GMP_EXTER
12530 4e 5f 49 4e 4c 49 4e 45 29 20 7c 7c 20 5f 5f 47  N_INLINE) || __G
12540 4d 50 5f 46 4f 52 43 45 5f 6d 70 6e 5f 61 64 64  MP_FORCE_mpn_add
12550 5f 31 0a 23 69 66 20 21 20 5f 5f 47 4d 50 5f 46  _1.#if ! __GMP_F
12560 4f 52 43 45 5f 6d 70 6e 5f 61 64 64 5f 31 0a 5f  ORCE_mpn_add_1._
12570 5f 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49  _GMP_EXTERN_INLI
12580 4e 45 0a 23 65 6e 64 69 66 0a 6d 70 5f 6c 69 6d  NE.#endif.mp_lim
12590 62 5f 74 0a 6d 70 6e 5f 61 64 64 5f 31 20 28 6d  b_t.mpn_add_1 (m
125a0 70 5f 70 74 72 20 5f 5f 67 6d 70 5f 64 73 74 2c  p_ptr __gmp_dst,
125b0 20 6d 70 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70   mp_srcptr __gmp
125c0 5f 73 72 63 2c 20 6d 70 5f 73 69 7a 65 5f 74 20  _src, mp_size_t 
125d0 5f 5f 67 6d 70 5f 73 69 7a 65 2c 20 6d 70 5f 6c  __gmp_size, mp_l
125e0 69 6d 62 5f 74 20 5f 5f 67 6d 70 5f 6e 29 20 5f  imb_t __gmp_n) _
125f0 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 0a 7b 0a 20  _GMP_NOTHROW.{. 
12600 20 6d 70 5f 6c 69 6d 62 5f 74 20 20 5f 5f 67 6d   mp_limb_t  __gm
12610 70 5f 63 3b 0a 20 20 5f 5f 47 4d 50 4e 5f 41 44  p_c;.  __GMPN_AD
12620 44 5f 31 20 28 5f 5f 67 6d 70 5f 63 2c 20 5f 5f  D_1 (__gmp_c, __
12630 67 6d 70 5f 64 73 74 2c 20 5f 5f 67 6d 70 5f 73  gmp_dst, __gmp_s
12640 72 63 2c 20 5f 5f 67 6d 70 5f 73 69 7a 65 2c 20  rc, __gmp_size, 
12650 5f 5f 67 6d 70 5f 6e 29 3b 0a 20 20 72 65 74 75  __gmp_n);.  retu
12660 72 6e 20 5f 5f 67 6d 70 5f 63 3b 0a 7d 0a 23 65  rn __gmp_c;.}.#e
12670 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 69 6e 65  ndif..#if define
12680 64 20 28 5f 5f 47 4d 50 5f 45 58 54 45 52 4e 5f  d (__GMP_EXTERN_
12690 49 4e 4c 49 4e 45 29 20 7c 7c 20 5f 5f 47 4d 50  INLINE) || __GMP
126a0 5f 46 4f 52 43 45 5f 6d 70 6e 5f 63 6d 70 0a 23  _FORCE_mpn_cmp.#
126b0 69 66 20 21 20 5f 5f 47 4d 50 5f 46 4f 52 43 45  if ! __GMP_FORCE
126c0 5f 6d 70 6e 5f 63 6d 70 0a 5f 5f 47 4d 50 5f 45  _mpn_cmp.__GMP_E
126d0 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 0a 23 65 6e  XTERN_INLINE.#en
126e0 64 69 66 0a 69 6e 74 0a 6d 70 6e 5f 63 6d 70 20  dif.int.mpn_cmp 
126f0 28 6d 70 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70  (mp_srcptr __gmp
12700 5f 78 70 2c 20 6d 70 5f 73 72 63 70 74 72 20 5f  _xp, mp_srcptr _
12710 5f 67 6d 70 5f 79 70 2c 20 6d 70 5f 73 69 7a 65  _gmp_yp, mp_size
12720 5f 74 20 5f 5f 67 6d 70 5f 73 69 7a 65 29 20 5f  _t __gmp_size) _
12730 5f 47 4d 50 5f 4e 4f 54 48 52 4f 57 0a 7b 0a 20  _GMP_NOTHROW.{. 
12740 20 69 6e 74 20 5f 5f 67 6d 70 5f 72 65 73 75 6c   int __gmp_resul
12750 74 3b 0a 20 20 5f 5f 47 4d 50 4e 5f 43 4d 50 20  t;.  __GMPN_CMP 
12760 28 5f 5f 67 6d 70 5f 72 65 73 75 6c 74 2c 20 5f  (__gmp_result, _
12770 5f 67 6d 70 5f 78 70 2c 20 5f 5f 67 6d 70 5f 79  _gmp_xp, __gmp_y
12780 70 2c 20 5f 5f 67 6d 70 5f 73 69 7a 65 29 3b 0a  p, __gmp_size);.
12790 20 20 72 65 74 75 72 6e 20 5f 5f 67 6d 70 5f 72    return __gmp_r
127a0 65 73 75 6c 74 3b 0a 7d 0a 23 65 6e 64 69 66 0a  esult;.}.#endif.
127b0 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28 5f 5f  .#if defined (__
127c0 47 4d 50 5f 45 58 54 45 52 4e 5f 49 4e 4c 49 4e  GMP_EXTERN_INLIN
127d0 45 29 20 7c 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43  E) || __GMP_FORC
127e0 45 5f 6d 70 6e 5f 73 75 62 0a 23 69 66 20 21 20  E_mpn_sub.#if ! 
127f0 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 6e 5f  __GMP_FORCE_mpn_
12800 73 75 62 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e  sub.__GMP_EXTERN
12810 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64 69 66 0a 6d  _INLINE.#endif.m
12820 70 5f 6c 69 6d 62 5f 74 0a 6d 70 6e 5f 73 75 62  p_limb_t.mpn_sub
12830 20 28 6d 70 5f 70 74 72 20 5f 5f 67 6d 70 5f 77   (mp_ptr __gmp_w
12840 70 2c 20 6d 70 5f 73 72 63 70 74 72 20 5f 5f 67  p, mp_srcptr __g
12850 6d 70 5f 78 70 2c 20 6d 70 5f 73 69 7a 65 5f 74  mp_xp, mp_size_t
12860 20 5f 5f 67 6d 70 5f 78 73 69 7a 65 2c 20 6d 70   __gmp_xsize, mp
12870 5f 73 72 63 70 74 72 20 5f 5f 67 6d 70 5f 79 70  _srcptr __gmp_yp
12880 2c 20 6d 70 5f 73 69 7a 65 5f 74 20 5f 5f 67 6d  , mp_size_t __gm
12890 70 5f 79 73 69 7a 65 29 0a 7b 0a 20 20 6d 70 5f  p_ysize).{.  mp_
128a0 6c 69 6d 62 5f 74 20 20 5f 5f 67 6d 70 5f 63 3b  limb_t  __gmp_c;
128b0 0a 20 20 5f 5f 47 4d 50 4e 5f 53 55 42 20 28 5f  .  __GMPN_SUB (_
128c0 5f 67 6d 70 5f 63 2c 20 5f 5f 67 6d 70 5f 77 70  _gmp_c, __gmp_wp
128d0 2c 20 5f 5f 67 6d 70 5f 78 70 2c 20 5f 5f 67 6d  , __gmp_xp, __gm
128e0 70 5f 78 73 69 7a 65 2c 20 5f 5f 67 6d 70 5f 79  p_xsize, __gmp_y
128f0 70 2c 20 5f 5f 67 6d 70 5f 79 73 69 7a 65 29 3b  p, __gmp_ysize);
12900 0a 20 20 72 65 74 75 72 6e 20 5f 5f 67 6d 70 5f  .  return __gmp_
12910 63 3b 0a 7d 0a 23 65 6e 64 69 66 0a 0a 23 69 66  c;.}.#endif..#if
12920 20 64 65 66 69 6e 65 64 20 28 5f 5f 47 4d 50 5f   defined (__GMP_
12930 45 58 54 45 52 4e 5f 49 4e 4c 49 4e 45 29 20 7c  EXTERN_INLINE) |
12940 7c 20 5f 5f 47 4d 50 5f 46 4f 52 43 45 5f 6d 70  | __GMP_FORCE_mp
12950 6e 5f 73 75 62 5f 31 0a 23 69 66 20 21 20 5f 5f  n_sub_1.#if ! __
12960 47 4d 50 5f 46 4f 52 43 45 5f 6d 70 6e 5f 73 75  GMP_FORCE_mpn_su
12970 62 5f 31 0a 5f 5f 47 4d 50 5f 45 58 54 45 52 4e  b_1.__GMP_EXTERN
12980 5f 49 4e 4c 49 4e 45 0a 23 65 6e 64 69 66 0a 6d  _INLINE.#endif.m
12990 70 5f 6c 69 6d 62 5f 74 0a 6d 70 6e 5f 73 75 62  p_limb_t.mpn_sub
129a0 5f 31 20 28 6d 70 5f 70 74 72 20 5f 5f 67 6d 70  _1 (mp_ptr __gmp
129b0 5f 64 73 74 2c 20 6d 70 5f 73 72 63 70 74 72 20  _dst, mp_srcptr 
129c0 5f 5f 67 6d 70 5f 73 72 63 2c 20 6d 70 5f 73 69  __gmp_src, mp_si
129d0 7a 65 5f 74 20 5f 5f 67 6d 70 5f 73 69 7a 65 2c  ze_t __gmp_size,
129e0 20 6d 70 5f 6c 69 6d 62 5f 74 20 5f 5f 67 6d 70   mp_limb_t __gmp
129f0 5f 6e 29 20 5f 5f 47 4d 50 5f 4e 4f 54 48 52 4f  _n) __GMP_NOTHRO
12a00 57 0a 7b 0a 20 20 6d 70 5f 6c 69 6d 62 5f 74 20  W.{.  mp_limb_t 
12a10 20 5f 5f 67 6d 70 5f 63 3b 0a 20 20 5f 5f 47 4d   __gmp_c;.  __GM
12a20 50 4e 5f 53 55 42 5f 31 20 28 5f 5f 67 6d 70 5f  PN_SUB_1 (__gmp_
12a30 63 2c 20 5f 5f 67 6d 70 5f 64 73 74 2c 20 5f 5f  c, __gmp_dst, __
12a40 67 6d 70 5f 73 72 63 2c 20 5f 5f 67 6d 70 5f 73  gmp_src, __gmp_s
12a50 69 7a 65 2c 20 5f 5f 67 6d 70 5f 6e 29 3b 0a 20  ize, __gmp_n);. 
12a60 20 72 65 74 75 72 6e 20 5f 5f 67 6d 70 5f 63 3b   return __gmp_c;
12a70 0a 7d 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64  .}.#endif..#if d
12a80 65 66 69 6e 65 64 20 28 5f 5f 63 70 6c 75 73 70  efined (__cplusp
12a90 6c 75 73 29 0a 7d 0a 23 65 6e 64 69 66 0a 0a 0a  lus).}.#endif...
12aa0 2f 2a 20 41 6c 6c 6f 77 20 66 61 73 74 65 72 20  /* Allow faster 
12ab0 74 65 73 74 69 6e 67 20 66 6f 72 20 6e 65 67 61  testing for nega
12ac0 74 69 76 65 2c 20 7a 65 72 6f 2c 20 61 6e 64 20  tive, zero, and 
12ad0 70 6f 73 69 74 69 76 65 2e 20 20 2a 2f 0a 23 64  positive.  */.#d
12ae0 65 66 69 6e 65 20 6d 70 7a 5f 73 67 6e 28 5a 29  efine mpz_sgn(Z)
12af0 20 28 28 5a 29 2d 3e 5f 6d 70 5f 73 69 7a 65 20   ((Z)->_mp_size 
12b00 3c 20 30 20 3f 20 2d 31 20 3a 20 28 5a 29 2d 3e  < 0 ? -1 : (Z)->
12b10 5f 6d 70 5f 73 69 7a 65 20 3e 20 30 29 0a 23 64  _mp_size > 0).#d
12b20 65 66 69 6e 65 20 6d 70 66 5f 73 67 6e 28 46 29  efine mpf_sgn(F)
12b30 20 28 28 46 29 2d 3e 5f 6d 70 5f 73 69 7a 65 20   ((F)->_mp_size 
12b40 3c 20 30 20 3f 20 2d 31 20 3a 20 28 46 29 2d 3e  < 0 ? -1 : (F)->
12b50 5f 6d 70 5f 73 69 7a 65 20 3e 20 30 29 0a 23 64  _mp_size > 0).#d
12b60 65 66 69 6e 65 20 6d 70 71 5f 73 67 6e 28 51 29  efine mpq_sgn(Q)
12b70 20 28 28 51 29 2d 3e 5f 6d 70 5f 6e 75 6d 2e 5f   ((Q)->_mp_num._
12b80 6d 70 5f 73 69 7a 65 20 3c 20 30 20 3f 20 2d 31  mp_size < 0 ? -1
12b90 20 3a 20 28 51 29 2d 3e 5f 6d 70 5f 6e 75 6d 2e   : (Q)->_mp_num.
12ba0 5f 6d 70 5f 73 69 7a 65 20 3e 20 30 29 0a 0a 2f  _mp_size > 0)../
12bb0 2a 20 57 68 65 6e 20 75 73 69 6e 67 20 47 43 43  * When using GCC
12bc0 2c 20 6f 70 74 69 6d 69 7a 65 20 63 65 72 74 61  , optimize certa
12bd0 69 6e 20 63 6f 6d 6d 6f 6e 20 63 6f 6d 70 61 72  in common compar
12be0 69 73 6f 6e 73 2e 20 20 2a 2f 0a 23 69 66 20 64  isons.  */.#if d
12bf0 65 66 69 6e 65 64 20 28 5f 5f 47 4e 55 43 5f 5f  efined (__GNUC__
12c00 29 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63 6d  ).#define mpz_cm
12c10 70 5f 75 69 28 5a 2c 55 49 29 20 5c 0a 20 20 28  p_ui(Z,UI) \.  (
12c20 5f 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e 73 74 61  __builtin_consta
12c30 6e 74 5f 70 20 28 55 49 29 20 26 26 20 28 55 49  nt_p (UI) && (UI
12c40 29 20 3d 3d 20 30 09 09 09 09 5c 0a 20 20 20 3f  ) == 0....\.   ?
12c50 20 6d 70 7a 5f 73 67 6e 20 28 5a 29 20 3a 20 5f   mpz_sgn (Z) : _
12c60 6d 70 7a 5f 63 6d 70 5f 75 69 20 28 5a 2c 55 49  mpz_cmp_ui (Z,UI
12c70 29 29 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 63  )).#define mpz_c
12c80 6d 70 5f 73 69 28 5a 2c 53 49 29 20 5c 0a 20 20  mp_si(Z,SI) \.  
12c90 28 5f 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e 73 74  (__builtin_const
12ca0 61 6e 74 5f 70 20 28 53 49 29 20 26 26 20 28 53  ant_p (SI) && (S
12cb0 49 29 20 3d 3d 20 30 20 3f 20 6d 70 7a 5f 73 67  I) == 0 ? mpz_sg
12cc0 6e 20 28 5a 29 09 09 09 5c 0a 20 20 20 3a 20 5f  n (Z)...\.   : _
12cd0 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e 73 74 61 6e  _builtin_constan
12ce0 74 5f 70 20 28 53 49 29 20 26 26 20 28 53 49 29  t_p (SI) && (SI)
12cf0 20 3e 20 30 09 09 09 09 5c 0a 20 20 20 20 3f 20   > 0....\.    ? 
12d00 5f 6d 70 7a 5f 63 6d 70 5f 75 69 20 28 5a 2c 20  _mpz_cmp_ui (Z, 
12d10 28 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69  (unsigned long i
12d20 6e 74 29 20 53 49 29 09 09 09 09 5c 0a 20 20 20  nt) SI)....\.   
12d30 3a 20 5f 6d 70 7a 5f 63 6d 70 5f 73 69 20 28 5a  : _mpz_cmp_si (Z
12d40 2c 53 49 29 29 0a 23 64 65 66 69 6e 65 20 6d 70  ,SI)).#define mp
12d50 71 5f 63 6d 70 5f 75 69 28 51 2c 4e 55 49 2c 44  q_cmp_ui(Q,NUI,D
12d60 55 49 29 20 5c 0a 20 20 28 5f 5f 62 75 69 6c 74  UI) \.  (__built
12d70 69 6e 5f 63 6f 6e 73 74 61 6e 74 5f 70 20 28 4e  in_constant_p (N
12d80 55 49 29 20 26 26 20 28 4e 55 49 29 20 3d 3d 20  UI) && (NUI) == 
12d90 30 09 09 09 09 5c 0a 20 20 20 3f 20 6d 70 71 5f  0....\.   ? mpq_
12da0 73 67 6e 20 28 51 29 20 3a 20 5f 6d 70 71 5f 63  sgn (Q) : _mpq_c
12db0 6d 70 5f 75 69 20 28 51 2c 4e 55 49 2c 44 55 49  mp_ui (Q,NUI,DUI
12dc0 29 29 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 63  )).#define mpq_c
12dd0 6d 70 5f 73 69 28 71 2c 6e 2c 64 29 20 20 20 20  mp_si(q,n,d)    
12de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12df0 20 20 20 5c 0a 20 20 28 5f 5f 62 75 69 6c 74 69     \.  (__builti
12e00 6e 5f 63 6f 6e 73 74 61 6e 74 5f 70 20 28 28 6e  n_constant_p ((n
12e10 29 20 3e 3d 20 30 29 20 26 26 20 28 6e 29 20 3e  ) >= 0) && (n) >
12e20 3d 20 30 20 20 5c 0a 20 20 20 3f 20 6d 70 71 5f  = 0  \.   ? mpq_
12e30 63 6d 70 5f 75 69 20 28 71 2c 20 28 75 6e 73 69  cmp_ui (q, (unsi
12e40 67 6e 65 64 20 6c 6f 6e 67 29 20 28 6e 29 2c 20  gned long) (n), 
12e50 64 29 20 20 20 20 20 5c 0a 20 20 20 3a 20 5f 6d  d)     \.   : _m
12e60 70 71 5f 63 6d 70 5f 73 69 20 28 71 2c 20 6e 2c  pq_cmp_si (q, n,
12e70 20 64 29 29 0a 23 65 6c 73 65 0a 23 64 65 66 69   d)).#else.#defi
12e80 6e 65 20 6d 70 7a 5f 63 6d 70 5f 75 69 28 5a 2c  ne mpz_cmp_ui(Z,
12e90 55 49 29 20 5f 6d 70 7a 5f 63 6d 70 5f 75 69 20  UI) _mpz_cmp_ui 
12ea0 28 5a 2c 55 49 29 0a 23 64 65 66 69 6e 65 20 6d  (Z,UI).#define m
12eb0 70 7a 5f 63 6d 70 5f 73 69 28 5a 2c 55 49 29 20  pz_cmp_si(Z,UI) 
12ec0 5f 6d 70 7a 5f 63 6d 70 5f 73 69 20 28 5a 2c 55  _mpz_cmp_si (Z,U
12ed0 49 29 0a 23 64 65 66 69 6e 65 20 6d 70 71 5f 63  I).#define mpq_c
12ee0 6d 70 5f 75 69 28 51 2c 4e 55 49 2c 44 55 49 29  mp_ui(Q,NUI,DUI)
12ef0 20 5f 6d 70 71 5f 63 6d 70 5f 75 69 20 28 51 2c   _mpq_cmp_ui (Q,
12f00 4e 55 49 2c 44 55 49 29 0a 23 64 65 66 69 6e 65  NUI,DUI).#define
12f10 20 6d 70 71 5f 63 6d 70 5f 73 69 28 71 2c 6e 2c   mpq_cmp_si(q,n,
12f20 64 29 20 20 5f 6d 70 71 5f 63 6d 70 5f 73 69 28  d)  _mpq_cmp_si(
12f30 71 2c 6e 2c 64 29 0a 23 65 6e 64 69 66 0a 0a 0a  q,n,d).#endif...
12f40 2f 2a 20 55 73 69 6e 67 20 22 26 22 20 72 61 74  /* Using "&" rat
12f50 68 65 72 20 74 68 61 6e 20 22 26 26 22 20 6d 65  her than "&&" me
12f60 61 6e 73 20 74 68 65 73 65 20 63 61 6e 20 63 6f  ans these can co
12f70 6d 65 20 6f 75 74 20 62 72 61 6e 63 68 2d 66 72  me out branch-fr
12f80 65 65 2e 20 20 45 76 65 72 79 0a 20 20 20 6d 70  ee.  Every.   mp
12f90 7a 5f 74 20 68 61 73 20 61 74 20 6c 65 61 73 74  z_t has at least
12fa0 20 6f 6e 65 20 6c 69 6d 62 20 61 6c 6c 6f 63 61   one limb alloca
12fb0 74 65 64 2c 20 73 6f 20 66 65 74 63 68 69 6e 67  ted, so fetching
12fc0 20 74 68 65 20 6c 6f 77 20 6c 69 6d 62 20 69 73   the low limb is
12fd0 20 61 6c 77 61 79 73 0a 20 20 20 61 6c 6c 6f 77   always.   allow
12fe0 65 64 2e 20 20 2a 2f 0a 23 64 65 66 69 6e 65 20  ed.  */.#define 
12ff0 6d 70 7a 5f 6f 64 64 5f 70 28 7a 29 20 20 20 28  mpz_odd_p(z)   (
13000 28 69 6e 74 29 20 28 28 7a 29 2d 3e 5f 6d 70 5f  (int) ((z)->_mp_
13010 73 69 7a 65 20 21 3d 20 30 29 20 26 20 28 69 6e  size != 0) & (in
13020 74 29 20 28 7a 29 2d 3e 5f 6d 70 5f 64 5b 30 5d  t) (z)->_mp_d[0]
13030 29 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 65 76  ).#define mpz_ev
13040 65 6e 5f 70 28 7a 29 20 20 28 21 20 6d 70 7a 5f  en_p(z)  (! mpz_
13050 6f 64 64 5f 70 20 28 7a 29 29 0a 0a 0a 2f 2a 2a  odd_p (z)).../**
13060 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 43  ************** C
13070 2b 2b 20 72 6f 75 74 69 6e 65 73 20 2a 2a 2a 2a  ++ routines ****
13080 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 23  ************/..#
13090 69 66 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75  ifdef __cplusplu
130a0 73 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45 43  s.__GMP_DECLSPEC
130b0 5f 58 58 20 73 74 64 3a 3a 6f 73 74 72 65 61 6d  _XX std::ostream
130c0 26 20 6f 70 65 72 61 74 6f 72 3c 3c 20 28 73 74  & operator<< (st
130d0 64 3a 3a 6f 73 74 72 65 61 6d 20 26 2c 20 6d 70  d::ostream &, mp
130e0 7a 5f 73 72 63 70 74 72 29 3b 0a 5f 5f 47 4d 50  z_srcptr);.__GMP
130f0 5f 44 45 43 4c 53 50 45 43 5f 58 58 20 73 74 64  _DECLSPEC_XX std
13100 3a 3a 6f 73 74 72 65 61 6d 26 20 6f 70 65 72 61  ::ostream& opera
13110 74 6f 72 3c 3c 20 28 73 74 64 3a 3a 6f 73 74 72  tor<< (std::ostr
13120 65 61 6d 20 26 2c 20 6d 70 71 5f 73 72 63 70 74  eam &, mpq_srcpt
13130 72 29 3b 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50  r);.__GMP_DECLSP
13140 45 43 5f 58 58 20 73 74 64 3a 3a 6f 73 74 72 65  EC_XX std::ostre
13150 61 6d 26 20 6f 70 65 72 61 74 6f 72 3c 3c 20 28  am& operator<< (
13160 73 74 64 3a 3a 6f 73 74 72 65 61 6d 20 26 2c 20  std::ostream &, 
13170 6d 70 66 5f 73 72 63 70 74 72 29 3b 0a 5f 5f 47  mpf_srcptr);.__G
13180 4d 50 5f 44 45 43 4c 53 50 45 43 5f 58 58 20 73  MP_DECLSPEC_XX s
13190 74 64 3a 3a 69 73 74 72 65 61 6d 26 20 6f 70 65  td::istream& ope
131a0 72 61 74 6f 72 3e 3e 20 28 73 74 64 3a 3a 69 73  rator>> (std::is
131b0 74 72 65 61 6d 20 26 2c 20 6d 70 7a 5f 70 74 72  tream &, mpz_ptr
131c0 29 3b 0a 5f 5f 47 4d 50 5f 44 45 43 4c 53 50 45  );.__GMP_DECLSPE
131d0 43 5f 58 58 20 73 74 64 3a 3a 69 73 74 72 65 61  C_XX std::istrea
131e0 6d 26 20 6f 70 65 72 61 74 6f 72 3e 3e 20 28 73  m& operator>> (s
131f0 74 64 3a 3a 69 73 74 72 65 61 6d 20 26 2c 20 6d  td::istream &, m
13200 70 71 5f 70 74 72 29 3b 0a 5f 5f 47 4d 50 5f 44  pq_ptr);.__GMP_D
13210 45 43 4c 53 50 45 43 5f 58 58 20 73 74 64 3a 3a  ECLSPEC_XX std::
13220 69 73 74 72 65 61 6d 26 20 6f 70 65 72 61 74 6f  istream& operato
13230 72 3e 3e 20 28 73 74 64 3a 3a 69 73 74 72 65 61  r>> (std::istrea
13240 6d 20 26 2c 20 6d 70 66 5f 70 74 72 29 3b 0a 23  m &, mpf_ptr);.#
13250 65 6e 64 69 66 0a 0a 0a 2f 2a 20 43 6f 6d 70 61  endif.../* Compa
13260 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 47 4d  tibility with GM
13270 50 20 32 20 61 6e 64 20 65 61 72 6c 69 65 72 2e  P 2 and earlier.
13280 20 2a 2f 0a 23 64 65 66 69 6e 65 20 6d 70 6e 5f   */.#define mpn_
13290 64 69 76 6d 6f 64 28 71 70 2c 6e 70 2c 6e 73 69  divmod(qp,np,nsi
132a0 7a 65 2c 64 70 2c 64 73 69 7a 65 29 20 5c 0a 20  ze,dp,dsize) \. 
132b0 20 6d 70 6e 5f 64 69 76 72 65 6d 20 28 71 70 2c   mpn_divrem (qp,
132c0 20 28 6d 70 5f 73 69 7a 65 5f 74 29 20 30 2c 20   (mp_size_t) 0, 
132d0 6e 70 2c 20 6e 73 69 7a 65 2c 20 64 70 2c 20 64  np, nsize, dp, d
132e0 73 69 7a 65 29 0a 0a 2f 2a 20 43 6f 6d 70 61 74  size)../* Compat
132f0 69 62 69 6c 69 74 79 20 77 69 74 68 20 47 4d 50  ibility with GMP
13300 20 31 2e 20 20 2a 2f 0a 23 64 65 66 69 6e 65 20   1.  */.#define 
13310 6d 70 7a 5f 6d 64 69 76 09 6d 70 7a 5f 66 64 69  mpz_mdiv.mpz_fdi
13320 76 5f 71 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  v_q.#define mpz_
13330 6d 64 69 76 6d 6f 64 09 6d 70 7a 5f 66 64 69 76  mdivmod.mpz_fdiv
13340 5f 71 72 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  _qr.#define mpz_
13350 6d 6d 6f 64 09 6d 70 7a 5f 66 64 69 76 5f 72 0a  mmod.mpz_fdiv_r.
13360 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6d 64 69 76  #define mpz_mdiv
13370 5f 75 69 09 6d 70 7a 5f 66 64 69 76 5f 71 5f 75  _ui.mpz_fdiv_q_u
13380 69 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 6d 64  i.#define mpz_md
13390 69 76 6d 6f 64 5f 75 69 28 71 2c 72 2c 6e 2c 64  ivmod_ui(q,r,n,d
133a0 29 20 5c 0a 20 20 28 28 72 20 3d 3d 20 30 29 20  ) \.  ((r == 0) 
133b0 3f 20 6d 70 7a 5f 66 64 69 76 5f 71 5f 75 69 20  ? mpz_fdiv_q_ui 
133c0 28 71 2c 6e 2c 64 29 20 3a 20 6d 70 7a 5f 66 64  (q,n,d) : mpz_fd
133d0 69 76 5f 71 72 5f 75 69 20 28 71 2c 72 2c 6e 2c  iv_qr_ui (q,r,n,
133e0 64 29 29 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  d)).#define mpz_
133f0 6d 6d 6f 64 5f 75 69 28 72 2c 6e 2c 64 29 20 5c  mmod_ui(r,n,d) \
13400 0a 20 20 28 28 72 20 3d 3d 20 30 29 20 3f 20 6d  .  ((r == 0) ? m
13410 70 7a 5f 66 64 69 76 5f 75 69 20 28 6e 2c 64 29  pz_fdiv_ui (n,d)
13420 20 3a 20 6d 70 7a 5f 66 64 69 76 5f 72 5f 75 69   : mpz_fdiv_r_ui
13430 20 28 72 2c 6e 2c 64 29 29 0a 0a 2f 2a 20 55 73   (r,n,d))../* Us
13440 65 66 75 6c 20 73 79 6e 6f 6e 79 6d 73 2c 20 62  eful synonyms, b
13450 75 74 20 6e 6f 74 20 71 75 69 74 65 20 63 6f 6d  ut not quite com
13460 70 61 74 69 62 6c 65 20 77 69 74 68 20 47 4d 50  patible with GMP
13470 20 31 2e 20 20 2a 2f 0a 23 64 65 66 69 6e 65 20   1.  */.#define 
13480 6d 70 7a 5f 64 69 76 09 09 6d 70 7a 5f 66 64 69  mpz_div..mpz_fdi
13490 76 5f 71 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  v_q.#define mpz_
134a0 64 69 76 6d 6f 64 09 6d 70 7a 5f 66 64 69 76 5f  divmod.mpz_fdiv_
134b0 71 72 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f 64  qr.#define mpz_d
134c0 69 76 5f 75 69 09 6d 70 7a 5f 66 64 69 76 5f 71  iv_ui.mpz_fdiv_q
134d0 5f 75 69 0a 23 64 65 66 69 6e 65 20 6d 70 7a 5f  _ui.#define mpz_
134e0 64 69 76 6d 6f 64 5f 75 69 09 6d 70 7a 5f 66 64  divmod_ui.mpz_fd
134f0 69 76 5f 71 72 5f 75 69 0a 23 64 65 66 69 6e 65  iv_qr_ui.#define
13500 20 6d 70 7a 5f 6d 6f 64 5f 75 69 09 6d 70 7a 5f   mpz_mod_ui.mpz_
13510 66 64 69 76 5f 72 5f 75 69 0a 23 64 65 66 69 6e  fdiv_r_ui.#defin
13520 65 20 6d 70 7a 5f 64 69 76 5f 32 65 78 70 09 6d  e mpz_div_2exp.m
13530 70 7a 5f 66 64 69 76 5f 71 5f 32 65 78 70 0a 23  pz_fdiv_q_2exp.#
13540 64 65 66 69 6e 65 20 6d 70 7a 5f 6d 6f 64 5f 32  define mpz_mod_2
13550 65 78 70 09 6d 70 7a 5f 66 64 69 76 5f 72 5f 32  exp.mpz_fdiv_r_2
13560 65 78 70 0a 0a 65 6e 75 6d 0a 7b 0a 20 20 47 4d  exp..enum.{.  GM
13570 50 5f 45 52 52 4f 52 5f 4e 4f 4e 45 20 3d 20 30  P_ERROR_NONE = 0
13580 2c 0a 20 20 47 4d 50 5f 45 52 52 4f 52 5f 55 4e  ,.  GMP_ERROR_UN
13590 53 55 50 50 4f 52 54 45 44 5f 41 52 47 55 4d 45  SUPPORTED_ARGUME
135a0 4e 54 20 3d 20 31 2c 0a 20 20 47 4d 50 5f 45 52  NT = 1,.  GMP_ER
135b0 52 4f 52 5f 44 49 56 49 53 49 4f 4e 5f 42 59 5f  ROR_DIVISION_BY_
135c0 5a 45 52 4f 20 3d 20 32 2c 0a 20 20 47 4d 50 5f  ZERO = 2,.  GMP_
135d0 45 52 52 4f 52 5f 53 51 52 54 5f 4f 46 5f 4e 45  ERROR_SQRT_OF_NE
135e0 47 41 54 49 56 45 20 3d 20 34 2c 0a 20 20 47 4d  GATIVE = 4,.  GM
135f0 50 5f 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f  P_ERROR_INVALID_
13600 41 52 47 55 4d 45 4e 54 20 3d 20 38 2c 0a 20 20  ARGUMENT = 8,.  
13610 47 4d 50 5f 45 52 52 4f 52 5f 41 4c 4c 4f 43 41  GMP_ERROR_ALLOCA
13620 54 45 20 3d 20 31 36 2c 0a 20 20 47 4d 50 5f 45  TE = 16,.  GMP_E
13630 52 52 4f 52 5f 42 41 44 5f 53 54 52 49 4e 47 20  RROR_BAD_STRING 
13640 3d 20 33 32 2c 0a 20 20 47 4d 50 5f 45 52 52 4f  = 32,.  GMP_ERRO
13650 52 5f 55 4e 55 53 45 44 5f 45 52 52 4f 52 0a 7d  R_UNUSED_ERROR.}
13660 3b 0a 0a 2f 2a 20 4d 61 6a 6f 72 20 76 65 72 73  ;../* Major vers
13670 69 6f 6e 20 6e 75 6d 62 65 72 20 69 73 20 74 68  ion number is th
13680 65 20 76 61 6c 75 65 20 6f 66 20 5f 5f 47 4e 55  e value of __GNU
13690 5f 4d 50 5f 5f 20 74 6f 6f 2c 20 61 62 6f 76 65  _MP__ too, above
136a0 20 61 6e 64 20 69 6e 20 6d 70 2e 68 2e 20 2a 2f   and in mp.h. */
136b0 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4e 55 5f 4d  .#define __GNU_M
136c0 50 5f 56 45 52 53 49 4f 4e 20 34 0a 23 64 65 66  P_VERSION 4.#def
136d0 69 6e 65 20 5f 5f 47 4e 55 5f 4d 50 5f 56 45 52  ine __GNU_MP_VER
136e0 53 49 4f 4e 5f 4d 49 4e 4f 52 20 31 0a 23 64 65  SION_MINOR 1.#de
136f0 66 69 6e 65 20 5f 5f 47 4e 55 5f 4d 50 5f 56 45  fine __GNU_MP_VE
13700 52 53 49 4f 4e 5f 50 41 54 43 48 4c 45 56 45 4c  RSION_PATCHLEVEL
13710 20 32 0a 0a 23 64 65 66 69 6e 65 20 5f 5f 47 4d   2..#define __GM
13720 50 5f 48 5f 5f 0a 23 65 6e 64 69 66 20 2f 2a 20  P_H__.#endif /* 
13730 5f 5f 47 4d 50 5f 48 5f 5f 20 2a 2f 0a           __GMP_H__ */.