BigNum: A Portable and Efficient Package for Arbitrary-Precision Arithmetic

Bernard Serpette, Jean E. Vuillemin · 1989

payment of fee is granted for non-profit educational and research purposes provided that all such whole or partial copies include the following: a notice that such copying is by joint permission of the Paris Research Laboratory of Digital Equipment Centre Technique Europe (Rueil-Malmaison, France) and of the Institut National de Recherche en Informatique et Automatique (Rocquencourt, France); an acknowledgement of the authors and individual contributors to the work; and all applicable portions of the copyright notice. All rights reserved. We describe a C package for arbitrary-precision integer arithmetic that is portable, yet efficient. Making the package run fast on a given computer involves re-writing a small kernel of our package in native assembly language. We provide such assembly code for VAX, 68020 and NS instruction sets, with good benchmarks. This package serves as a foundation for two arithmetic packages written in higher level languages LeLisp 1 and Modula2+. This package is available to non-commercial users. Résumé Nous décrivons un module C d’arithmétique entière àprécision arbitraire, portable, mais néanmoins efficace. La rapidité d’exécution de ce module est assujettie àlaréécriture en langage machine du noyau du module. Nous fournissons les codes assembleurs pour les machines VAX, Mips, 68020 et NS. Ce module sert comme base pour deux bibliothèques arithmétiques écrites en langages de haut niveau LeLisp 2 et Modula2+. Ce module est du domaine public pour toute utilisation non commerciale. 1 LeLisp is a registered trademark of INRIA. 2 LeLisp est une marque déposée par l’INRIA

Read the paper · More papers on PaperTik