|
|
1.1 ! root 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! */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.