home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Atari / Gnu / gassrc04.zoo / bignum.h < prev    next >
C/C++ Source or Header  |  1991-01-24  |  2KB  |  49 lines

  1. /* bignum.h-arbitrary precision integers
  2.    Copyright (C) 1987 Free Software Foundation, Inc.
  3.  
  4. This file is part of GAS, the GNU Assembler.
  5.  
  6. GAS is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GAS is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /***********************************************************************\
  21. *                                    *
  22. *    Arbitrary-precision integer arithmetic.                *
  23. *    For speed, we work in groups of bits, even though this        *
  24. *    complicates algorithms.                        *
  25. *    Each group of bits is called a 'littlenum'.            *
  26. *    A bunch of littlenums representing a (possibly large)        *
  27. *    integer is called a 'bignum'.                    *
  28. *    Bignums are >= 0.                        *
  29. *                                    *
  30. \***********************************************************************/
  31.  
  32. #define    LITTLENUM_NUMBER_OF_BITS    (16)
  33. #define    LITTLENUM_RADIX            (1 << LITTLENUM_NUMBER_OF_BITS)
  34. #define    LITTLENUM_MASK            (0xFFFF)
  35. #define LITTLENUM_SHIFT            (1)
  36. #define CHARS_PER_LITTLENUM        (1 << LITTLENUM_SHIFT)
  37. #ifndef BITS_PER_CHAR
  38. #define BITS_PER_CHAR            (8)
  39. #endif
  40.  
  41. typedef unsigned short int    LITTLENUM_TYPE;
  42.  
  43.  
  44. /* JF truncated this to get around a problem with GCC */
  45. #define    LOG_TO_BASE_2_OF_10        (3.3219280948873623478703194294893901758651 )
  46.                 /* WARNING: I haven't checked that the trailing digits are correct! */
  47.  
  48. /* end: bignum.h */
  49.